diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-01 00:11:39 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-01 00:11:39 +0100 |
commit | 2f34a35722141aaee6c226c08fcd224ec3c1d04d (patch) | |
tree | cccdb5d09e7f69f36387a6bb00f1dc02355f53c4 /doc | |
parent | 491ded18983a4ae963ce9c29e8df5d5680873ccb (diff) |
i18n: Sync translations with Weblate
Diffstat (limited to 'doc')
-rw-r--r-- | doc/translations/es.po | 6 | ||||
-rw-r--r-- | doc/translations/fr.po | 129 | ||||
-rw-r--r-- | doc/translations/zh_CN.po | 4096 |
3 files changed, 4138 insertions, 93 deletions
diff --git a/doc/translations/es.po b/doc/translations/es.po index ad5cfe0ce7..69fe1e2aa2 100644 --- a/doc/translations/es.po +++ b/doc/translations/es.po @@ -8345,9 +8345,6 @@ msgstr "" "Si ha definido las variables de entrada en [method parse], puede especificar " "sus valores en el array de entradas, en el mismo orden." -msgid "Returns the error text if [method parse] has failed." -msgstr "Devuelve el texto de error si el [method parse] ha fallado." - msgid "Returns [code]true[/code] if [method execute] has failed." msgstr "Devuelve [code]true[/code] si [method execute] ha fallado." @@ -13022,9 +13019,6 @@ msgstr "Nodo que instancia mallas en un escenario." msgid "The [Mesh] resource for the instance." msgstr "El recurso [Mesh] para la instancia." -msgid "Sets the skin to be used by this instance." -msgstr "Establece la piel que se utilizará en esta instancia." - msgid "Library of meshes." msgstr "Biblioteca de mallas." diff --git a/doc/translations/fr.po b/doc/translations/fr.po index b7839a4c43..d4f1b5dbd7 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -62,13 +62,15 @@ # Alexis Coudert <coudert.alex@gmail.com>, 2022. # Callim Ethee <callimethee@gmail.com>, 2023. # Thalya Gauvrit <skar0ps.dev@gmail.com>, 2023. +# Hipolyte Ponthieu <7hip.po6@orange.fr>, 2023. +# Dricom Dragon <dev@jovian-hersemeule.eu>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-02-13 23:42+0000\n" -"Last-Translator: Thalya Gauvrit <skar0ps.dev@gmail.com>\n" +"PO-Revision-Date: 2023-02-28 17:36+0000\n" +"Last-Translator: Dricom Dragon <dev@jovian-hersemeule.eu>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/fr/>\n" "Language: fr\n" @@ -76,7 +78,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 4.16-rc\n" msgid "Description" msgstr "Description" @@ -87,6 +89,9 @@ msgstr "Tutoriels" msgid "Properties" msgstr "Propriétés" +msgid "Constructors" +msgstr "Constructeurs" + msgid "Methods" msgstr "Méthodes" @@ -108,9 +113,15 @@ msgstr "Constantes" msgid "Property Descriptions" msgstr "Description des propriétés" +msgid "Constructor Descriptions" +msgstr "Détails des constructeurs" + msgid "Method Descriptions" msgstr "Descriptions des méthodes" +msgid "Operator Descriptions" +msgstr "Détails des opérateurs" + msgid "Theme Property Descriptions" msgstr "Description des propriétés de thème" @@ -175,6 +186,109 @@ msgid "Built-in GDScript functions." msgstr "Fonctions intégrées à GDScript." msgid "" +"A list of GDScript-specific utility functions and annotations accessible " +"from any script.\n" +"For the list of the global functions and constants see [@GlobalScope]." +msgstr "" +"Une liste de fonctions utilitaires et d'annotations, utilisables depuis " +"n'importe quel script.\n" +"Cette liste est spécifique à GDScript, pour voir la liste des fonctions et " +"constantes globales voir [@GlobalScope]." + +msgid "GDScript exports" +msgstr "Exports GDScript" + +msgid "" +"Returns a [Color] constructed from red ([param r8]), green ([param g8]), " +"blue ([param b8]), and optionally alpha ([param a8]) integer channels, each " +"divided by [code]255.0[/code] for their final value.\n" +"[codeblock]\n" +"var red = Color8(255, 0, 0) # Same as Color(1, 0, 0).\n" +"var dark_blue = Color8(0, 0, 51) # Same as Color(0, 0, 0.2).\n" +"var my_color = Color8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, 0.4).\n" +"[/codeblock]" +msgstr "" +"Retourne une [Color] construite à partir des niveaux de rouge ([param r8]), " +"de vert ([param g8]), de bleu ([param b8]) et éventuellement de transparence " +"(ou alpha : [param a8]). Chaque niveau est représenté par un entier qui sera " +"divisé par [code]255.0[/code] pour obtenir la valeur de l'attribut associé.\n" +"[codeblock]\n" +"var red = Color8(255, 0, 0) # Meme effet que Color(1, 0, 0).\n" +"var dark_blue = Color8(0, 0, 51) # Meme effet que Color(0, 0, 0.2).\n" +"var my_color = Color8(306, 255, 0, 102) # Meme effet que Color(1.2, 1, 0, " +"0.4).\n" +"[/codeblock]" + +msgid "" +"Asserts that the [param condition] is [code]true[/code]. If the [param " +"condition] 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 @GlobalScope.push_error] for " +"reporting errors to project developers or add-on users.\n" +"An optional [param message] can be shown in addition to the generic " +"\"Assertion failed\" message. You can use this to provide additional details " +"about why the assertion failed.\n" +"[b]Warning:[/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" +"[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, \"the speed limit is 20\") # Show a message.\n" +"[/codeblock]" +msgstr "" +"Vérifie que la [code]condition[/code] est vraie ([code]true[/code]). Si la " +"[code]condition[/code] est fausse ([code]false[/code]), une erreur est " +"générée. Si le programme est lancé via l'éditeur, son exécution sera aussi " +"interrompue jusqu'à ce que vous le redémarriez. Cela peut être utilisé comme " +"une alternative plus radicale à [method @GlobalScope.push_error] pour " +"signaler des erreurs aux développeurs de projets ou utilisateurs de " +"plugins.\n" +"[b]Note :[/b] Par souci de performance, le code inclus dans [method assert] " +"n'est seulement exécuté dans les builds de débogage, ou quand vous lancez " +"votre jeu depuis l'éditeur. N'incluez pas de code qui modifie l'état du " +"script dans un appel à [method assert]. Sinon, votre projet aura un " +"fonctionnement différent une fois exporté pour la production (release " +"build).\n" +"L'argument facultatif [param message], s'il est donné, est affiché en plus " +"du message générique \"Assertion failed\" (Échec de l'assertion). Vous " +"pouvez l'utiliser pour fournir des détails supplémentaires sur la raison de " +"l'échec de l'assertion.\n" +"[codeblock]\n" +"# Imaginez que nous voulons une vitesse toujours comprise entre 0 et 20.\n" +"speed = -10\n" +"assert(speed < 20) # Vrai, le programme continue\n" +"assert(speed >= 0) # Faux, le programme s'interrompt\n" +"assert(speed >= 0 and speed < 20) # Vous pouvez aussi combiner les deux " +"conditions en une seule vérification\n" +"assert(speed < 20, \"speed = %f, mais la limite de vitesse est 20\" % speed) " +"# Affiche un message avec de plus amples détails\n" +"[/codeblock]" + +msgid "" +"Returns a single 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]" +msgstr "" +"Renvoie un caractère au format chaîne de caractère ([String]) correspondant " +"à la valeur Unicode donnée (compatible avec le code ASCII).\n" +"[codeblock]\n" +"a = char(65) # a vaut « A »\n" +"a = char(65 + 32) # a vaut « a »\n" +"a = char(8364) # a vaut « € »\n" +"[/codeblock]" + +msgid "" "Returns an array of dictionaries representing the current call stack. See " "also [method print_stack].\n" "[codeblock]\n" @@ -9425,9 +9539,6 @@ msgstr "Représente la taille de l'énumération [enum BGMode]." msgid "A class that stores an expression you can execute." msgstr "Une classe qui enregistre une expression que vous pouvez exécuter." -msgid "Returns the error text if [method parse] has failed." -msgstr "Retourne la description de l'erreur si [method parse] a échoué." - msgid "Returns [code]true[/code] if [method execute] has failed." msgstr "Retourne [code]true[/code] si [method execute] a échoué." @@ -12783,9 +12894,6 @@ msgstr "Nœud qui instancie des meshes dans un scénario." msgid "The [Mesh] resource for the instance." msgstr "La ressource du [Mesh] pour cette instance." -msgid "Sets the skin to be used by this instance." -msgstr "Définit la peau à utiliser pour cette instance." - msgid "Library of meshes." msgstr "Bibliothèque de maillages." @@ -14371,6 +14479,9 @@ msgstr "" "Les ombres sont rendues dans une texture dual-paraboloïde. Plus rapide que " "[constant SHADOW_CUBE], mais de qualité inférieure." +msgid "Add an action set." +msgstr "Ajouter un ensemble d'actions." + msgid "Optimized translation." msgstr "Traduction optimisée." diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po index 36178274ca..339697f02c 100644 --- a/doc/translations/zh_CN.po +++ b/doc/translations/zh_CN.po @@ -72,8 +72,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2023-02-24 13:35+0000\n" -"Last-Translator: suplife <2634557184@qq.com>\n" +"PO-Revision-Date: 2023-02-28 17:36+0000\n" +"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot-class-reference/zh_Hans/>\n" "Language: zh_CN\n" @@ -81,7 +81,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 4.16-rc\n" msgid "Description" msgstr "描述" @@ -377,6 +377,51 @@ msgstr "" "[/codeblock]" msgid "" +"Returns [code]true[/code] if [param value] is an instance of [param type]. " +"The [param type] value must be one of the following:\n" +"- A constant from the [enum Variant.Type] enumeration, for example [constant " +"TYPE_INT].\n" +"- An [Object]-derived class which exists in [ClassDB], for example [Node].\n" +"- A [Script] (you can use any class, including inner one).\n" +"Unlike the right operand of the [code]is[/code] operator, [param type] can " +"be a non-constant value. The [code]is[/code] operator supports more features " +"(such as typed arrays) and is more performant. Use the operator instead of " +"this method if you do not need dynamic type checking.\n" +"Examples:\n" +"[codeblock]\n" +"print(is_instance_of(a, TYPE_INT))\n" +"print(is_instance_of(a, Node))\n" +"print(is_instance_of(a, MyClass))\n" +"print(is_instance_of(a, MyClass.InnerClass))\n" +"[/codeblock]\n" +"[b]Note:[/b] If [param value] and/or [param type] are freed objects (see " +"[method @GlobalScope.is_instance_valid]), or [param type] is not one of the " +"above options, this method will raise an runtime error.\n" +"See also [method @GlobalScope.typeof], [method type_exists], [method Array." +"is_same_typed] (and other [Array] methods)." +msgstr "" +"如果 [param value] 为 [param type] 类型的实例,则返回 [code]true[/code]。" +"[param type] 的值必须为下列值之一:\n" +"- [enum Variant.Type] 枚举常量,例如 [constant TYPE_INT]。\n" +"- [ClassDB] 中存在的派生自 [Object] 的类,例如 [Node]。\n" +"- [Script](可以用任何类,包括内部类)。\n" +"[param type] 可以不是常量,这一点与 [code]is[/code] 的右操作数不同。" +"[code]is[/code] 运算符支持的功能更多(例如类型化数组),性能也更高。如果你不" +"需要动态类型检查,请使用该运算符,不要使用此方法。\n" +"示例:\n" +"[codeblock]\n" +"print(is_instance_of(a, TYPE_INT))\n" +"print(is_instance_of(a, Node))\n" +"print(is_instance_of(a, MyClass))\n" +"print(is_instance_of(a, MyClass.InnerClass))\n" +"[/codeblock]\n" +"[b]注意:[/b]如果 [param value] 和/或 [param type] 为已释放的对象(见 " +"[method @GlobalScope.is_instance_valid]),或者 [param type] 不是以上选项之" +"一,则此方法会报运行时错误。\n" +"另见 [method @GlobalScope.typeof]、[method type_exists]、[method Array." +"is_same_typed](以及其他 [Array] 方法)。" + +msgid "" "Returns the length of the given Variant [param var]. The length can be the " "character count of a [String], the element count of any array type or the " "size of a [Dictionary]. For every other Variant type, a run-time error is " @@ -2306,18 +2351,6 @@ msgstr "" "nan[/code]。" msgid "" -"Returns the maximum of the given values. This function can take any number " -"of arguments.\n" -"[codeblock]\n" -"max(1, 7, 3, -6, 5) # Returns 7\n" -"[/codeblock]" -msgstr "" -"返回给定值的最大值。这个函数可以接受任意数量的参数。\n" -"[codeblock]\n" -"max(1, 7, 3, -6, 5) # 返回 7\n" -"[/codeblock]" - -msgid "" "Returns the maximum of two [float] values.\n" "[codeblock]\n" "maxf(3.6, 24) # Returns 24.0\n" @@ -2344,18 +2377,6 @@ msgstr "" "[/codeblock]" msgid "" -"Returns the minimum of the given values. This function can take any number " -"of arguments.\n" -"[codeblock]\n" -"min(1, 7, 3, -6, 5) # Returns -6\n" -"[/codeblock]" -msgstr "" -"返回给定值的最小值。这个函数可以接受任意数量的参数。\n" -"[codeblock]\n" -"min(1, 7, 3, -6, 5) # 返回 -6\n" -"[/codeblock]" - -msgid "" "Returns the minimum of two [float] values.\n" "[codeblock]\n" "minf(3.6, 24) # Returns 3.6\n" @@ -9958,6 +9979,16 @@ msgstr "" "空,从编辑器运行时按索引访问将暂停项目执行。" msgid "" +"Returns the [enum Variant.Type] constant for a typed array. If the [Array] " +"is not typed, returns [constant TYPE_NIL]." +msgstr "" +"返回类型化数组的 [enum Variant.Type] 常量。如果该 [Array] 不是类型化的,则返" +"回 [constant TYPE_NIL]。" + +msgid "Returns a class name of a typed [Array] of type [constant TYPE_OBJECT]." +msgstr "返回类型为 [constant TYPE_OBJECT] 的 类型化 [Array] 的类名。" + +msgid "" "Returns a hashed 32-bit integer value representing the array and its " "contents.\n" "[b]Note:[/b] [Array]s with equal content will always produce identical hash " @@ -9988,6 +10019,10 @@ msgid "Returns [code]true[/code] if the array is empty." msgstr "该数组为空时,返回 [code]true[/code]。" msgid "" +"Returns [code]true[/code] if the array is typed the same as [param array]." +msgstr "如果该数组的类型与 [param array] 相同,则返回 [code]true[/code]。" + +msgid "" "Calls the provided [Callable] for each element in the array and returns a " "new array filled with values returned by the method.\n" "The callable's method should take one [Variant] parameter (the current array " @@ -13243,6 +13278,25 @@ msgstr "" "道中指定。" msgid "" +"Determines when depth rendering takes place. See [enum DepthDrawMode]. See " +"also [member transparency]." +msgstr "" +"确定深度渲染发生的时间。参见 [enum DepthDrawMode]。另见 [member " +"transparency]。" + +msgid "" +"Texture that specifies the color of the detail overlay. [member " +"detail_albedo]'s alpha channel is used as a mask, even when the material is " +"opaque. To use a dedicated texture as a mask, see [member detail_mask].\n" +"[b]Note:[/b] [member detail_albedo] is [i]not[/i] modulated by [member " +"albedo_color]." +msgstr "" +"用于指定细节覆盖层颜色的纹理。[member detail_albedo] 的 alpha 通道会被用作遮" +"罩,即使该材质不透明。要将专用纹理用作遮罩,请参阅 [member detail_mask]。\n" +"[b]注意:[/b][member detail_albedo] [i]不会[/i]被 [member albedo_color] 调" +"制。" + +msgid "" "Specifies how the [member detail_albedo] should blend with the current " "[code]ALBEDO[/code]. See [enum BlendMode] for options." msgstr "" @@ -13250,6 +13304,24 @@ msgstr "" "[enum BlendMode] 选项。" msgid "" +"Texture that specifies the per-pixel normal of the detail overlay. The " +"[member detail_normal] texture only uses the red and green channels; the " +"blue and alpha channels are ignored. The normal read from [member " +"detail_normal] is oriented around the surface normal provided by the " +"[Mesh].\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 detail_normal] 纹理只使用红色和绿" +"色通道;会忽略蓝色和 alpha 通道。从 [member detail_normal] 读取的法线是围绕 " +"[Mesh] 所提供的表面法线的进行朝向的。\n" +"[b]注意:[/b]Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的" +"法线贴图坐标系见[url=http://wiki.polycount.com/wiki/" +"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这个页面[/url]。" + +msgid "" "Specifies whether to use [code]UV[/code] or [code]UV2[/code] for the detail " "layer. See [enum DetailUV] for options." msgstr "" @@ -13387,6 +13459,41 @@ msgid "The strength of the normal map's effect." msgstr "法线贴图的效果强度。" msgid "" +"Texture used to specify the normal at a given pixel. The [member " +"normal_texture] only uses the red and green channels; the blue and alpha " +"channels are ignored. The normal read from [member normal_texture] 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.\n" +"[b]Note:[/b] If [member detail_enabled] is [code]true[/code], the [member " +"detail_albedo] texture is drawn [i]below[/i] the [member normal_texture]. To " +"display a normal map [i]above[/i] the [member detail_albedo] texture, use " +"[member detail_normal] instead." +msgstr "" +"用于指定给定像素的法线的纹理。[member normal_texture] 只使用红色和绿色通道;" +"会忽略蓝色和 alpha 通道。从 [member normal_texture] 读取的法线是围绕 [Mesh] " +"所提供的表面法线的进行朝向的。\n" +"[b]注意:[/b]该网格必须在其顶点数据中同时定义法线和切线。否则法线贴图将无法正" +"确渲染,只会使整个表面变暗。如果使用 [SurfaceTool] 创建几何体,可以使用 " +"[method SurfaceTool.generate_normals] 和 [method SurfaceTool." +"generate_tangents] 分别自动生成法线和切线。\n" +"[b]注意:[/b]Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的" +"法线贴图坐标系见[url=http://wiki.polycount.com/wiki/" +"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这个页面[/url]。\n" +"[b]注意:[/b]如果 [member detail_enabled] 为 [code]true[/code],则 [member " +"detail_albedo] 纹理将在 [member normal_texture] [i]下方[/i]绘制。要在 " +"[member detail_albedo] 纹理[i]之上[/i]显示法线贴图,请改用 [member " +"detail_normal]。" + +msgid "" "The number of horizontal frames in the particle sprite sheet. Only enabled " "when using [constant BILLBOARD_PARTICLES]. See [member billboard_mode]." msgstr "" @@ -14200,6 +14307,20 @@ msgid "" "synchronized with it." msgstr "映射目标的 [SkeletonProfile]。[BoneMap] 中的键名与此同步。" +msgid "" +"This signal is emitted when change the key value in the [BoneMap]. This is " +"used to validate mapping and to update [BoneMap] editor." +msgstr "" +"[BoneMap] 中的键值发生改变时发出此信号。用于验证映射和更新 [BoneMap] 编辑器。" + +msgid "" +"This signal is emitted when change the value in profile or change the " +"reference of profile. This is used to update key names in the [BoneMap] and " +"to redraw the [BoneMap] editor." +msgstr "" +"配置中的值发生改变或配置的引用发生改变时发出此信号。用于更新 [BoneMap] 中的键" +"名、重绘 [BoneMap] 编辑器。" + msgid "Boolean built-in type." msgstr "布尔型内置型。" @@ -14398,6 +14519,9 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "Constructs a default-initialized [bool] set to [code]false[/code]." +msgstr "构造默认初始化为 [code]false[/code] 的 [bool]。" + msgid "Constructs a [bool] as a copy of the given [bool]." msgstr "构造给定 [bool] 的副本。" @@ -14668,7 +14792,7 @@ msgid "Text [Color] used when the [Button] is being hovered and pressed." msgstr "该 [Button] 处于悬停并按下状态时,使用的文本 [Color]。" msgid "The tint of text outline of the [Button]." -msgstr "该 [Button] 的文本轮廓的着色。" +msgstr "该 [Button] 的文本轮廓的色调。" msgid "Text [Color] used when the [Button] is being pressed." msgstr "该 [Button] 处于按下状态时,使用的文本 [Color] 。" @@ -15253,6 +15377,14 @@ msgstr "" "动。" msgid "" +"If [code]true[/code], the camera only moves when reaching the vertical (top " +"and bottom) drag margins. If [code]false[/code], the camera moves vertically " +"regardless of the drag margins." +msgstr "" +"如果为 [code]true[/code],相机仅在达到垂直(顶部及底部)拖动边距时才移动。如" +"果为 [code]false[/code],相机会垂直移动而不管边距。" + +msgid "" "If [code]true[/code], draws the camera's drag margin rectangle in the editor." msgstr "如果为 [code]true[/code],在编辑器中绘制相机的拖动边距矩形。" @@ -15265,6 +15397,13 @@ msgid "" msgstr "如果为 [code]true[/code],在编辑器中绘制相机的画面矩形。" msgid "" +"If [code]true[/code], the camera's rendered view is not affected by its " +"[member Node2D.rotation] and [member Node2D.global_rotation]." +msgstr "" +"如果为 [code]true[/code] ,相机的渲染视图不会受到其 [member Node2D.rotation] " +"和 [member Node2D.global_rotation] 的影响。" + +msgid "" "Bottom scroll limit in pixels. The camera stops moving when reaching this " "value, but [member offset] can push the view past the limit." msgstr "" @@ -15387,6 +15526,30 @@ msgid "" "camera." msgstr "描述此相机渲染哪些 3D 渲染层的剔除掩码。" +msgid "" +"If [code]true[/code], the ancestor [Viewport] is currently using this " +"camera.\n" +"If multiple cameras are in the scene, one will always be made current. For " +"example, if two [Camera3D] nodes are present in the scene and only one is " +"current, setting one camera's [member current] to [code]false[/code] will " +"cause the other camera to be made current." +msgstr "" +"如果为 [code]true[/code],则祖级 [Viewport] 正在使用这个相机。\n" +"如果场景中有多个相机,总会有一个被设为当前相机。例如,假设场景中存在两个 " +"[Camera3D] 节点并且只有一个为当前相机,那么如果把某一个相机的 [member " +"current] 设为 [code]false[/code] 就会导致另一个相机被设为当前相机。" + +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],此相机将为在 [code]_process[/" +"code] 中变化的对象模拟[url=https://zh.wikipedia.org/wiki/" +"%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效应[/url]。可能的值见 " +"[enum DopplerTracking]。" + msgid "The [Environment] to use for this camera." msgstr "此相机要使用的 [Environment]。" @@ -15396,6 +15559,25 @@ msgid "" msgstr "该相机相对于其本地Z轴的远裁边界的距离。" 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]75.0[/code]) " +"is equivalent to a horizontal FOV of:\n" +"- ~91.31 degrees in a 4:3 viewport\n" +"- ~101.67 degrees in a 16:10 viewport\n" +"- ~107.51 degrees in a 16:9 viewport\n" +"- ~121.63 degrees in a 21:9 viewport" +msgstr "" +"相机的视野角度(单位为度)。仅适用于透视模式。由于 [member keep_aspect] 锁定" +"一个轴,因此 [code]fov[/code] 设置另一个轴的视角。\n" +"作为参考,默认的垂直视野值([code]70.0[/code])相当于以下水平 FOV:\n" +"- 在 4:3 视口中约 91.31 度\n" +"- 在 16:10 视口中约 101.67 度\n" +"- 在 16:9 视口中约 107.51 度\n" +"- 在 21:9 视口中约 121.63 度" + +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].\n" @@ -15531,6 +15713,65 @@ msgid "Physically-based camera settings." msgstr "基于物理的相机设置。" msgid "" +"[CameraAttributesPhysical] is used to set rendering settings based on a " +"physically-based camera's settings. It is responsible for exposure, auto-" +"exposure, and depth of field.\n" +"When used in a [WorldEnvironment] it provides default settings for exposure, " +"auto-exposure, and depth of field that will be used by all cameras without " +"their own [CameraAttributes], including the editor camera. When used in a " +"[Camera3D] it will override any [CameraAttributes] set in the " +"[WorldEnvironment] and will override the [Camera3D]s [member Camera3D.far], " +"[member Camera3D.near], [member Camera3D.fov], and [member Camera3D." +"keep_aspect] properties. When used in [VoxelGI] or [LightmapGI], only the " +"exposure settings will be used.\n" +"The default settings are intended for use in an outdoor environment, tips " +"for settings for use in an indoor environment can be found in each setting's " +"documentation.\n" +"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and " +"Mobile rendering methods, not Compatibility." +msgstr "" +"[CameraAttributesPhysical] 用于根据基于物理的相机的设置来设置渲染设置。它负责" +"曝光、自动曝光和景深。\n" +"当在 [WorldEnvironment] 中使用时,它提供了曝光、自动曝光和景深的默认设置,这" +"些设置将由所有没有自己的 [CameraAttributes] 的相机使用,包括编辑器相机。当在 " +"[Camera3D] 中使用时,它将覆盖 [WorldEnvironment] 中设置的任何 " +"[CameraAttributes],并将覆盖 [Camera3D] 的 [member Camera3D.far]、[member " +"Camera3D.near]、[member Camera3D.fov] 和 [member Camera3D.keep_aspect] 属性。" +"在 [VoxelGI] 或 [LightmapGI] 中使用时,将只会使用曝光设置。\n" +"默认设置适用于室外环境,可在每个设置的文档中找到有关在室内环境中使用的设置的" +"提示。\n" +"[b]注意:[/b]景深模糊只支持 Forward+ 和 Mobile 渲染方式,不支持 " +"Compatibility。" + +msgid "Camera settings in an easy to use format." +msgstr "相机设置,格式比较易用。" + +msgid "" +"Enables depth of field blur for objects further than [member " +"dof_blur_far_distance]. Strength of blur is controlled by [member " +"dof_blur_amount] and modulated by [member dof_blur_far_transition].\n" +"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and " +"Mobile rendering methods, not Compatibility." +msgstr "" +"为比 [member dof_blur_far_distance] 更远的对象启用景深模糊。模糊强度由 " +"[member dof_blur_amount] 控制,并由 [member dof_blur_far_transition] 调制。\n" +"[b]注意:[/b]景深模糊只支持 Forward+ 和 Mobile 渲染方式,不支持 " +"Compatibility。" + +msgid "" +"Enables depth of field blur for objects closer than [member " +"dof_blur_near_distance]. Strength of blur is controlled by [member " +"dof_blur_amount] and modulated by [member dof_blur_near_transition].\n" +"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and " +"Mobile rendering methods, not Compatibility." +msgstr "" +"为比 [member dof_blur_near_distance] 更近的物体启用景深模糊。模糊强度由 " +"[member dof_blur_amount] 控制,并由 [member dof_blur_near_transition] 调" +"制。\n" +"[b]注意:[/b]景深模糊只支持 Forward+ 和 Mobile 渲染方式,不支持 " +"Compatibility。" + +msgid "" "A camera feed gives you access to a single physical camera attached to your " "device." msgstr "通过相机源,您可以访问连接到设备的单个物理相机。" @@ -15612,6 +15853,11 @@ msgstr "将相机源 [param feed] 添加到相机服务器中。" msgid "Returns an array of [CameraFeed]s." msgstr "返回一个 [CameraFeed] 数组。" +msgid "" +"Returns the [CameraFeed] corresponding to the camera with the given [param " +"index]." +msgstr "返回与给定索引 [param index] 的相机对应的 [CameraFeed]。" + msgid "Returns the number of [CameraFeed]s registered." msgstr "返回注册的 [CameraFeed] 的数量。" @@ -16080,6 +16326,69 @@ msgstr "该 [CanvasItem] 已退出画布。" 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 个 mipmap 之间混合。请用于可能以低" +"缩放率查看的非像素画纹理(例如由 [Camera2D] 缩放造成),因为 mipmap 对于平滑" +"小于屏幕像素的像素很重要。" + +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. The anisotropic " +"filtering level can be changed by adjusting [member ProjectSettings." +"rendering/textures/default_filters/anisotropic_filtering_level].\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。可以" +"减少几乎与相机成一直线的表面的伪影。各向异性过滤级别可以通过调整 [member " +"ProjectSettings.rendering/textures/default_filters/" +"anisotropic_filtering_level] 来改变。\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. The anisotropic filtering level can be changed by adjusting " +"[member ProjectSettings.rendering/textures/default_filters/" +"anisotropic_filtering_level].\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。可以减少几乎与相机成一直线的表面的伪影。这是最慢的过滤选项,但可以" +"得到最高质量的纹理。各向异性过滤级别可以通过调整 [member ProjectSettings." +"rendering/textures/default_filters/anisotropic_filtering_level] 来改变。\n" +"[b]注意:[/b]这个纹理过滤器很少用于 2D 项目。[constant " +"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] 通常更合适。" + msgid "Texture will not repeat." msgstr "纹理不会重复。" @@ -16094,6 +16403,9 @@ msgstr "纹理将以 2x2 平铺模式重复,其中偶数位置的元素会被 msgid "Represents the size of the [enum TextureRepeat] enum." msgstr "代表 [enum TextureRepeat] 枚举的大小。" +msgid "Child draws over parent and is not clipped." +msgstr "子级绘制在父级之上,不会被裁剪。" + msgid "" "Parent is used for the purposes of clipping only. Child is clipped to the " "parent's visible area, parent is not drawn." @@ -16234,6 +16546,11 @@ msgid "Returns the RID of the canvas used by this layer." msgstr "返回此层使用的画布的 RID。" msgid "" +"Returns the transform from the [CanvasLayer]s coordinate system to the " +"[Viewport]s coordinate system." +msgstr "返回从 [CanvasLayer] 坐标系到 [Viewport] 坐标系的变换。" + +msgid "" "Hides any [CanvasItem] under this [CanvasLayer]. This is equivalent to " "setting [member visible] to [code]false[/code]." msgstr "" @@ -16265,6 +16582,10 @@ msgstr "" "幕上的某个固定位置。\n" "与 [member follow_viewport_scale] 配合可以实现伪 3D 效果。" +msgid "" +"Layer index for draw order. Lower values are drawn behind higher values." +msgstr "绘制顺序的图层索引。较低值绘制在较高值之后。" + msgid "The layer's base offset." msgstr "图层的基本偏移量。" @@ -16296,11 +16617,54 @@ msgstr "给整个画布上色。" msgid "" "[CanvasModulate] tints the canvas elements using its assigned [member color]." -msgstr "[CanvasModulate]使用其分配的[member color]对画布元素进行着色。" +msgstr "[CanvasModulate] 使用其分配的 [member color] 对画布元素着色。" msgid "The tint color to apply." msgstr "要应用的色调颜色。" +msgid "Texture with optional normal and specular maps for use in 2D rendering." +msgstr "用于 2D 渲染的纹理,带有可选的法线和镜面贴图。" + +msgid "" +"[CanvasTexture] is an alternative to [ImageTexture] for 2D rendering. It " +"allows using normal maps and specular maps in any node that inherits from " +"[CanvasItem]. [CanvasTexture] also allows overriding the texture's filter " +"and repeat mode independently of the node's properties (or the project " +"settings).\n" +"[b]Note:[/b] [CanvasTexture] cannot be used in 3D rendering. For physically-" +"based materials in 3D, use [BaseMaterial3D] instead." +msgstr "" +"[CanvasTexture] 是用于 2D 渲染的 [ImageTexture] 的替代品。它允许在任何继承自 " +"[CanvasItem] 的节点中使用法线贴图和镜面贴图。[CanvasTexture] 还允许独立于节点" +"的属性(或项目设置)覆盖纹理的过滤模式和重复模式。\n" +"[b]注意:[/b][CanvasTexture] 不能用于 3D 渲染。对于 3D 中基于物理的材质,请使" +"用 [BaseMaterial3D] 来代替。" + +msgid "" +"The diffuse (color) texture to use. This is the main texture you want to set " +"in most cases." +msgstr "要使用的漫反射(颜色)纹理。这是你在大多数情况下要设置的主要纹理。" + +msgid "" +"The normal map texture to use. Only has a visible effect if [Light2D]s are " +"affecting this [CanvasTexture].\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 "" +"要使用的法线贴图纹理。仅在有 [Light2D] 影响该 [CanvasTexture] 时才有可见的效" +"果。\n" +"[b]注意:[/b]Godot 期望法线贴图使用 X+、Y+、Z+ 坐标系。比较流行的引擎所期望的" +"法线贴图坐标系见[url=http://wiki.polycount.com/wiki/" +"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]这个页面[/url]。" + +msgid "The texture filtering mode to use when drawing this [CanvasTexture]." +msgstr "绘制该 [CanvasTexture] 时所使用的纹理过滤模式。" + +msgid "The texture repeat mode to use when drawing this [CanvasTexture]." +msgstr "绘制该 [CanvasTexture] 时所使用的纹理重复模式。" + msgid "Class representing a capsule-shaped [PrimitiveMesh]." msgstr "表示胶囊状 [PrimitiveMesh] 的类。" @@ -16313,12 +16677,18 @@ msgstr "胶囊网格的半径。" msgid "Number of rings along the height of the capsule." msgstr "沿胶囊高度的环数。" +msgid "Capsule shape resource for 2D physics." +msgstr "用于 2D 物理的胶囊形状资源。" + msgid "The capsule's height." msgstr "胶囊体的高度。" msgid "The capsule's radius." msgstr "胶囊体的半径。" +msgid "Capsule shape resource for 3D collisions." +msgstr "用于 3D 物理的胶囊形状资源。" + msgid "Keeps children controls centered." msgstr "使子级控件居中。" @@ -17002,7 +17372,7 @@ msgid "Binary choice user interface widget. See also [CheckButton]." msgstr "二项选择用户界面小部件。另请参阅 [CheckButton]。" msgid "The [CheckBox] text's font color." -msgstr "该 [CheckBox] 的文本字体颜色。" +msgstr "该 [CheckBox] 文本的字体颜色。" msgid "The [CheckBox] text's font color when it's disabled." msgstr "该 [CheckBox] 被禁用时的文本字体颜色。" @@ -17021,46 +17391,56 @@ msgstr "该 [CheckBox] 被悬停时的文本字体颜色。" msgid "The [CheckBox] text's font color when it's hovered and pressed." msgstr "该 [CheckBox] 被悬停且被按下时的文本字体颜色。" +msgid "The tint of text outline of the [CheckBox]." +msgstr "该 [CheckBox] 文本轮廓的色调。" + msgid "The [CheckBox] text's font color when it's pressed." msgstr "该 [CheckBox] 被按下时的文本字体颜色。" msgid "The vertical offset used when rendering the check icons (in pixels)." msgstr "渲染复选图标时使用的垂直偏移量(单位为像素)。" +msgid "" +"The separation between the check icon and the text (in pixels). Negative " +"values will be treated as [code]0[/code] when used." +msgstr "" +"复选图标与文本之间的间隔(单位为像素)。使用时负值会被视为 [code]0[/code]。" + msgid "The [Font] to use for the [CheckBox] text." -msgstr "该 [CheckBox] 的文本所使用的 [Font]。" +msgstr "该 [CheckBox] 文本所使用的 [Font]。" msgid "Font size of the [CheckBox]'s text." -msgstr "该 [CheckBox] 的文本字体大小。" +msgstr "该 [CheckBox] 文本的字体大小。" msgid "The check icon to display when the [CheckBox] is checked." -msgstr "选中图标,该 [CheckBox] 处于选中状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 处于选中状态时使用。" msgid "" "The check icon to display when the [CheckBox] is checked and is disabled." -msgstr "选中图标,该 [CheckBox] 处于选中且禁用状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 处于选中且禁用状态时使用。" msgid "" "The check icon to display when the [CheckBox] is configured as a radio " "button and is checked." -msgstr "选中图标,该 [CheckBox] 被配置为单选按钮并处于选中状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 被配置为单选按钮并处于选中状态时使用。" msgid "" "The check icon to display when the [CheckBox] is configured as a radio " "button, is disabled, and is unchecked." -msgstr "选中图标,该 [CheckBox] 被配置为单选按钮并处于未选且禁用状态时使用。" +msgstr "" +"选中时显示的图标,该 [CheckBox] 被配置为单选按钮并处于未选且禁用状态时使用。" msgid "" "The check icon to display when the [CheckBox] is configured as a radio " "button and is unchecked." -msgstr "选中图标,该 [CheckBox] 被配置为单选按钮并处于未选状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 被配置为单选按钮并处于未选状态时使用。" msgid "The check icon to display when the [CheckBox] is unchecked." -msgstr "选中图标,该 [CheckBox] 处于未选状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 处于未选状态时使用。" msgid "" "The check icon to display when the [CheckBox] is unchecked and is disabled." -msgstr "选中图标,该 [CheckBox] 处于未选状态时使用。" +msgstr "选中时显示的图标,该 [CheckBox] 处于未选状态时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckBox] is disabled." @@ -17102,6 +17482,22 @@ msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 处于按下状态时 msgid "Checkable button. See also [CheckBox]." msgstr "可复选的按钮。另请参阅 [CheckBox]。" +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 example, it could 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],但" +"外观不同。为了实现一致的用户体验模式,建议在开关会[b]立即[/b]产生效果时使用 " +"CheckButton。例如,开关后无需用户按下确认按钮,会立即启用/禁用某个设置时就可" +"以使用。\n" +"另见 [BaseButton],包含该按钮的通用属性和方法。" + msgid "The [CheckButton] text's font color." msgstr "该 [CheckButton] 的文本字体颜色。" @@ -17122,12 +17518,21 @@ msgstr "该 [CheckButton] 被悬停时的文本字体颜色。" msgid "The [CheckButton] text's font color when it's hovered and pressed." msgstr "该 [CheckButton] 被悬停且被按下时的文本字体颜色。" +msgid "The tint of text outline of the [CheckButton]." +msgstr "该 [CheckButton] 文本轮廓的色调。" + msgid "The [CheckButton] text's font color when it's pressed." msgstr "该 [CheckButton] 被按下时的文本字体颜色。" msgid "The vertical offset used when rendering the toggle icons (in pixels)." msgstr "渲染切换图标时使用的垂直偏移量(单位为像素)。" +msgid "" +"The separation between the toggle icon and the text (in pixels). Negative " +"values will be treated as [code]0[/code] when used." +msgstr "" +"切换图标与文本之间的间隔(单位为像素)。使用时负值会被视为 [code]0[/code]。" + msgid "The [Font] to use for the [CheckButton] text." msgstr "该 [CheckButton] 文本所使用的 [Font]。" @@ -17212,6 +17617,9 @@ msgid "" "The [StyleBox] to display as a background when the [CheckButton] is pressed." msgstr "作为背景显示的 [StyleBox],用于该 [CheckButton] 的按下状态。" +msgid "Circular shape resource for 2D physics." +msgstr "用于 2D 物理的圆形资源。" + msgid "The circle's radius." msgstr "圆的半径。" @@ -17431,6 +17839,12 @@ msgid "" "Returns the full text with char [code]0xFFFF[/code] at the cursor location." msgstr "返回在光标位置处带有 [code]0xFFFF[/code] 字符的全文。" +msgid "Returns [code]true[/code] if close key [param close_key] exists." +msgstr "如果关闭键 [param close_key] 存在,则返回 [code]true[/code]。" + +msgid "Returns [code]true[/code] if open key [param open_key] exists." +msgstr "如果打开键 [param open_key] 存在,则返回 [code]true[/code]。" + msgid "Returns [code]true[/code] if comment [param start_key] exists." msgstr "如果注释的 [param start_key] 存在,返回 [code]true[/code] 。" @@ -17538,6 +17952,21 @@ msgid "" "Sets the string delimiters. All existing string delimiters will be removed." msgstr "设置字符串分隔符。将删除所有的现有字符串分隔符。" +msgid "" +"Sets if bookmarked should be drawn in the gutter. This gutter is shared with " +"breakpoints and executing lines." +msgstr "设置是否应在边栏中绘制书签。该边栏与断点和执行行共享。" + +msgid "" +"Sets if breakpoints should be drawn in the gutter. This gutter is shared " +"with bookmarks and executing lines." +msgstr "设置是否应在边栏中绘制断点。该边栏与书签和执行行共享。" + +msgid "" +"Sets if executing lines should be marked in the gutter. This gutter is " +"shared with breakpoints and bookmarks lines." +msgstr "设置是否应在边栏中绘制执行行。该边栏与断点和书签共享。" + msgid "Sets if foldable lines icons should be drawn in the gutter." msgstr "设置是否应在装订线中绘制可折叠行图标。" @@ -17555,6 +17984,12 @@ msgstr "设置是否启用自动缩进,如果找到前缀或括号,这将添 msgid "Prefixes to trigger an automatic indent." msgstr "触发自动缩进的前缀。" +msgid "" +"Size of tabs, if [code]indent_use_spaces[/code] is enabled the number of " +"spaces to use." +msgstr "" +"制表符的大小,如果启用 [code]indent_use_spaces[/code],则代表使用的空格数。" + msgid "Use spaces instead of tabs for indentation." msgstr "使用空格代替制表符进行缩进。" @@ -17571,6 +18006,16 @@ msgstr "" msgid "Emitted when the user requests code completion." msgstr "当用户请求代码补全时触发。" +msgid "Emitted when the user has clicked on a valid symbol." +msgstr "用户点击有效符号时发出。" + +msgid "" +"Emitted when the user hovers over a symbol. The symbol should be validated " +"and responded to, by calling [method set_symbol_lookup_word_as_valid]." +msgstr "" +"用户将鼠标悬停在符号上时发出。应该通过调用 [method " +"set_symbol_lookup_word_as_valid] 对该符号进行验证和响应。" + msgid "Marks the option as a class." msgstr "将该选项标记为类。" @@ -17602,20 +18047,44 @@ msgid "Marks the option as unclassified or plain text." msgstr "将该选项标记为未分类或纯文本。" msgid "Sets the background [Color]." -msgstr "设置背景 [Color]。" +msgstr "设置背景的 [Color]。" msgid "[Color] of the bookmark icon for bookmarked lines." -msgstr "书签图标的颜色 [Color],用于标记了书签的行。" +msgstr "书签图标的 [Color],用于标记了书签的行。" + +msgid "[Color] of the text to highlight mismatched braces." +msgstr "用于高亮不匹配括号文本的 [Color]。" + +msgid "[Color] of the breakpoint icon for bookmarked lines." +msgstr "书签行的断点图标的 [Color]。" msgid "[Color] of the text behind the caret when block caret is enabled." msgstr "启用块光标时在光标后面的文本的 [Color]。" msgid "[Color] of the caret." -msgstr "光标的颜色 [Color]。" +msgstr "光标的 [Color]。" + +msgid "[Color] for all icons related to line folding." +msgstr "所有与折叠行相关的图标的 [Color]。" + +msgid "Font [Color] for the code completion popup." +msgstr "代码补全弹出窗口字体的 [Color]。" + +msgid "[Color] of the scrollbar in the code completion popup." +msgstr "代码补全弹出窗口中滚动条的 [Color]。" + +msgid "Background [Color] of the line containing the caret." +msgstr "光标所在行的背景 [Color]。" + +msgid "[Color] of the executing icon for executing lines." +msgstr "执行行执行图标的 [Color]。" msgid "Sets the font [Color]." msgstr "设置字体颜色 [Color]。" +msgid "The tint of text outline of the [CodeEdit]." +msgstr "该 [CodeEdit] 文本轮廓的色调。" + msgid "Font color for [member TextEdit.placeholder_text]." msgstr "[member TextEdit.placeholder_text] 的字体颜色。" @@ -17625,6 +18094,14 @@ msgstr "设置行号的颜色 [Color]。" msgid "Sets the highlight [Color] of text selections." msgstr "设置文本选择的高亮 [Color] 颜色。" +msgid "" +"Max width of options in the code completion popup. Options longer then this " +"will be cut off." +msgstr "代码补全弹出窗口中选项的最大宽度。更长的选项将被切断。" + +msgid "Width of the scrollbar in the code completion popup." +msgstr "代码补全弹出窗口中滚动条的宽度。" + msgid "Sets the spacing between the lines." msgstr "设置行间距。" @@ -17635,6 +18112,24 @@ msgid "Sets default font size." msgstr "设置默认的字体大小。" msgid "" +"Sets a custom [Texture2D] to draw in the bookmark gutter for bookmarked " +"lines." +msgstr "设置书签行的自定义 [Texture2D],会在书签栏中绘制。" + +msgid "" +"Sets a custom [Texture2D] to draw in the breakpoint gutter for breakpointed " +"lines." +msgstr "设置断点行的自定义 [Texture2D],会在断点栏中绘制。" + +msgid "" +"Sets a custom [Texture2D] to draw in the line folding gutter when a line can " +"be folded." +msgstr "设置可折叠行的自定义 [Texture2D],会在折叠行栏中绘制。" + +msgid "Icon to draw in the executing gutter for executing lines." +msgstr "执行行的图标,会在执行栏中绘制。" + +msgid "" "Sets a custom [Texture2D] to draw in the line folding gutter when a line is " "folded and can be unfolded." msgstr "" @@ -17671,6 +18166,9 @@ msgstr "" msgid "Sets the [StyleBox]." msgstr "设置该 [StyleBox]。" +msgid "Sets the [StyleBox] when [member TextEdit.editable] is disabled." +msgstr "设置 [member TextEdit.editable] 处于禁用状态时的 [StyleBox]。" + msgid "A syntax highlighter for code." msgstr "代码语法高亮器。" @@ -17687,6 +18185,16 @@ msgstr "" "[param line_only] 表示该区域应该持续到该行的末尾,还是延续到下一行。如果结束" "键为空,则自动设置为[code]true[/code]。" +msgid "" +"Sets the color for a keyword.\n" +"The keyword cannot contain any symbols except '_'." +msgstr "" +"设置关键字的颜色。\n" +"关键字不能包含除“_”之外的任何符号。" + +msgid "Removes all color regions." +msgstr "移除所有颜色区域。" + msgid "Removes all keywords." msgstr "移除所有关键字。" @@ -17699,6 +18207,20 @@ msgstr "返回某个关键字的颜色。" msgid "Returns the color for a member keyword." msgstr "返回某个成员关键字的颜色。" +msgid "" +"Returns [code]true[/code] if the start key exists, else [code]false[/code]." +msgstr "如果开始键存在则返回 [code]true[/code],否则返回 [code]false[/code]。" + +msgid "" +"Returns [code]true[/code] if the keyword exists, else [code]false[/code]." +msgstr "如果关键字存在则返回 [code]true[/code],否则返回 [code]false[/code]。" + +msgid "" +"Returns [code]true[/code] if the member keyword exists, else [code]false[/" +"code]." +msgstr "" +"如果成员关键字存在则返回 [code]true[/code],否则返回 [code]false[/code]。" + msgid "Removes the keyword." msgstr "移除关键字。" @@ -17891,6 +18413,9 @@ msgstr "碰撞将包括多边形及其包含的区域。" msgid "Collisions will only include the polygon edges." msgstr "碰撞将仅包括多边形边缘。" +msgid "Editor-only node for defining a collision polygon in 3D space." +msgstr "编辑器专用的节点,用于在 3D 空间中定义碰撞多边形。" + msgid "" "Allows editing a concave or convex collision polygon's vertices on a " "selected plane. Can also set a depth perpendicular to that plane. This class " @@ -18105,6 +18630,21 @@ msgid "Constructs a [Color] as a copy of the given [Color]." msgstr "构造给定 [Color] 的副本。" msgid "" +"Constructs a [Color] either from an HTML color code or from a standardized " +"color name. The supported color names are the same as the constants." +msgstr "" +"从 HTML 颜色代码或标准化的颜色名称中构建 [Color]。支持的颜色名称与常量名相" +"同。" + +msgid "" +"Constructs a [Color] either from an HTML color code or from a standardized " +"color name, with [param alpha] on the range of 0.0 to 1.0. The supported " +"color names are the same as the constants." +msgstr "" +"从 HTML 颜色代码或标准化的颜色名称中构建 [Color],[param alpha] 的范围为 0.0 " +"到 1.0。支持的颜色名称与常量名相同。" + +msgid "" "Constructs a [Color] from RGB values, typically between 0.0 and 1.0. [member " "a] is set to 1.0.\n" "[codeblocks]\n" @@ -18213,6 +18753,12 @@ msgstr "" "[/codeblocks]" msgid "" +"Decodes a [Color] from a RGBE9995 format integer. See [constant Image." +"FORMAT_RGBE9995]." +msgstr "" +"从 RGBE9995 格式的整数解码 [Color]。见 [constant Image.FORMAT_RGBE9995]。" + +msgid "" "Creates a [Color] from the given string, which can be either an HTML color " "code or a named color (case-insensitive). Returns [param default] if the " "color cannot be inferred from the string." @@ -18608,6 +19154,9 @@ msgstr "橘黄色。" msgid "Black color. In GDScript, this is the default value of any color." msgstr "黑色。在 GDScript 中,这是所有颜色的默认值。" +msgid "Blanched almond color." +msgstr "杏仁白色。" + msgid "Blue color." msgstr "蓝色。" @@ -18617,6 +19166,9 @@ msgstr "蓝紫色的颜色。" msgid "Brown color." msgstr "棕色。" +msgid "Burlywood color." +msgstr "硬木色。" + msgid "Cadet blue color." msgstr "军服蓝。" @@ -18629,6 +19181,12 @@ msgstr "巧克力色。" msgid "Coral color." msgstr "珊瑚色。" +msgid "Cornflower blue color." +msgstr "矢车菊蓝色。" + +msgid "Cornsilk color." +msgstr "玉米须色。" + msgid "Crimson color." msgstr "绯红的颜色。" @@ -19049,6 +19607,24 @@ msgstr "将该 [Color] 的每个分量除以给定的 [float]。" msgid "Divides each component of the [Color] by the given [int]." msgstr "将该 [Color] 的每个分量除以给定的 [int]。" +msgid "" +"Returns [code]true[/code] if the colors are exactly equal.\n" +"[b]Note:[/b] Due to floating-point precision errors, consider using [method " +"is_equal_approx] instead, which is more reliable." +msgstr "" +"如果颜色完全相同,则返回 [code]true[/code]。\n" +"[b]注意:[/b]由于浮点精度误差,请考虑改用更可靠的 [method is_equal_approx]。" + +msgid "" +"Access color components using their index. [code][0][/code] is equivalent to " +"[member r], [code][1][/code] is equivalent to [member g], [code][2][/code] " +"is equivalent to [member b], and [code][3][/code] is equivalent to [member " +"a]." +msgstr "" +"使用索引访问颜色分量。[code][0][/code] 相当于 [member r],[code][1][/code] 相" +"当于 [member g],[code][2][/code] 相当于 [member b],[code][3][/code] 相当于 " +"[member a]." + msgid "Color picker control." msgstr "取色器控件。" @@ -19152,9 +19728,15 @@ msgstr "饱和度选择框的宽度。" msgid "The icon for the \"Add Preset\" button." msgstr "“添加预设”按钮的图标。" +msgid "The texture for the arrow grabber." +msgstr "箭头抓取器的纹理。" + msgid "Custom texture for the hue selection slider on the right." msgstr "右侧的色相选择滑块的自定义纹理。" +msgid "Custom texture for the H slider in the OKHSL color mode." +msgstr "OKHSL 颜色模式的 H 滑块的自定义纹理。" + msgid "The icon for color preset drop down menu when expanded." msgstr "颜色预设下拉菜单展开时使用的图标。" @@ -19225,6 +19807,9 @@ msgstr "" msgid "Text [Color] used when the [ColorPickerButton] is being hovered." msgstr "悬停 [ColorPickerButton] 时使用的文本 [Color]。" +msgid "The tint of text outline of the [ColorPickerButton]." +msgstr "[ColorPickerButton] 文本轮廓的色调。" + msgid "Text [Color] used when the [ColorPickerButton] is being pressed." msgstr "按下 [ColorPickerButton] 时使用的文本颜色 [Color]。" @@ -20463,6 +21048,96 @@ msgstr "" "add_theme_stylebox_override] 或检查器面板添加的。" msgid "" +"Works the same as [method set_anchor], but instead of [code]keep_offset[/" +"code] argument and automatic update of offset, it allows to set the offset " +"yourself (see [method set_offset])." +msgstr "" +"工作原理与 [method set_anchor] 相同,但取代 [code]keep_offset[/code] 参数和自" +"动更新的偏移,它允许您自己设置偏移量(参见 [method set_offset])。" + +msgid "" +"Sets both anchor preset and offset preset. See [method set_anchors_preset] " +"and [method set_offsets_preset]." +msgstr "" +"设置锚点预设和偏移预设。参见 [method set_anchors_preset] 和 [method " +"set_offsets_preset]。" + +msgid "" +"Sets [member offset_left] and [member offset_top] at the same time. " +"Equivalent of changing [member position]." +msgstr "" +"同时设置 [member offset_left] 和 [member offset_top]。相当于改变 [member " +"position]。" + +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" +"[codeblocks]\n" +"[gdscript]\n" +"@export 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.size = Vector2(50, 50)\n" +" set_drag_preview(cpb)\n" +" return color\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export]\n" +"private Color _color = new Color(1, 0, 0, 1);\n" +"\n" +"public override Variant _GetDragData(Vector2 atPosition)\n" +"{\n" +" // Use a control that is not in the tree\n" +" var cpb = new ColorPickerButton();\n" +" cpb.Color = _color;\n" +" cpb.Size = new Vector2(50, 50);\n" +" SetDragPreview(cpb);\n" +" return _color;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"在鼠标指针处显示给定的控件。调用此方法的好时机是在 [method _get_drag_data] " +"中。控件不得位于场景树中。您不应释放控件,也不应在拖动持续时间之外保留对控件" +"的引用。拖拽结束后它会自动删除。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@export var color = Color(1, 0, 0, 1)\n" +"\n" +"func _get_drag_data(position):\n" +" #使用不在树中的控件\n" +" var cpb = ColorPickerButton.new()\n" +" cpb.color = color\n" +" cpb.size = Vector2(50, 50)\n" +" set_drag_preview(cpb)\n" +" return color\n" +"[/gdscript]\n" +"[csharp]\n" +"[Export]\n" +"private Color _color = new Color(1, 0, 0, 1);\n" +"\n" +"public override Variant _GetDragData(Vector2 atPosition)\n" +"{\n" +" // 使用不在树中的控件\n" +" var cpb = new ColorPickerButton();\n" +" cpb.Color = _color;\n" +" cpb.Size = new Vector2(50, 50);\n" +" SetDragPreview(cpb);\n" +" return _color;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "Sets [member offset_right] and [member offset_bottom] at the same time." +msgstr "同时设置 [member offset_right] 和 [member offset_bottom]。" + +msgid "" "Moves the mouse cursor to [param position], relative to [member position] of " "this [Control].\n" "[b]Note:[/b] [method warp_mouse] is only supported on Windows, macOS and " @@ -20703,10 +21378,64 @@ msgstr "" "pivot_offset] 的影响。" msgid "" +"The node's rotation around its pivot, in radians. See [member pivot_offset] " +"to change the pivot's position.\n" +"[b]Note:[/b] This property is edited in the inspector in degrees. If you " +"want to use degrees in a script, use [member rotation_degrees]." +msgstr "" +"该节点围绕其轴心的旋转,单位为弧度。要更改轴心的位置,请参阅 [member " +"pivot_offset]。\n" +"[b]注意:[/b]该属性在检查器中以度为单位进行编辑。如果要在脚本中使用度数,请使" +"用 [member rotation_degrees]。" + +msgid "" "Helper property to access [member rotation] in degrees instead of radians." msgstr "辅助属性,用于按度数访问 [member rotation] 而不是弧度数。" msgid "" +"The node's scale, relative to its [member size]. Change this property to " +"scale the node around its [member pivot_offset]. The Control's [member " +"tooltip_text] will also scale according to this value.\n" +"[b]Note:[/b] This property is mainly intended to be used for animation " +"purposes. To support multiple resolutions in your project, use an " +"appropriate viewport stretch mode as described in the [url=$DOCS_URL/" +"tutorials/rendering/multiple_resolutions.html]documentation[/url] instead of " +"scaling Controls individually.\n" +"[b]Note:[/b] [member FontFile.oversampling] does [i]not[/i] take [Control] " +"[member scale] into account. This means that scaling up/down will cause " +"bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or " +"pixelated. To ensure text remains crisp regardless of scale, you can enable " +"MSDF font rendering by enabling [member ProjectSettings.gui/theme/" +"default_font_multichannel_signed_distance_field] (applies to the default " +"project font only), or enabling [b]Multichannel Signed Distance Field[/b] in " +"the import options of a DynamicFont for custom fonts. On system fonts, " +"[member SystemFont.multichannel_signed_distance_field] can be enabled in the " +"inspector.\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 instantiated. " +"To set the Control's scale when it's instantiated, wait for one frame using " +"[code]await get_tree().process_frame[/code] then set its [member scale] " +"property." +msgstr "" +"节点的缩放,相对于它的 [member size]。更改该属性以围绕其 [member " +"pivot_offset] 缩放节点。该 Control 的 [member tooltip_text] 也将根据该值进行" +"缩放。\n" +"[b]注意:[/b]该属性主要用于动画用途。要在项目中支持多种分辨率,请使用 " +"[url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]文档[/url] 中所" +"述的合适的视口拉伸模式,而不是单独缩放控件。\n" +"[b]注意:[/b][member FontFile.oversampling] [i]不[/i]考虑 [Control] [member " +"scale]。这意味着放大/缩小会导致位图字体和光栅化(非 MSDF)动态字体显得模糊或" +"像素化。为确保无论缩放比例如何,文本都保持清晰,您可以通过启用 [member " +"ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field]" +"(仅适用于默认项目字体);或在自定义字体的 DynamicFont 的导入选项中,启用[b]" +"多通道有符号距离场[/b]来启用 MSDF 字体渲染。对于系统字体,可以在检查器中启用 " +"[member SystemFont.multichannel_signed_distance_field]。\n" +"[b]注意:[/b]如果该 Control 节点是 [Container] 节点的子节点,则场景实例化时," +"缩放将重置为 [code]Vector2(1, 1)[/code]。要在实例化时设置控件的缩放,请使用 " +"[code]await get_tree().process_frame[/code] 等待一帧,然后再设置其 [member " +"scale] 属性。" + +msgid "" "The size of the node's bounding rectangle, in the node's coordinate system. " "[Container] nodes update this property automatically." msgstr "" @@ -21100,6 +21829,22 @@ msgstr "" "为已处理,不会进一步传播到其他控件,因此相关的信号也不会在其他控件中触发。" 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. If no control handled it, the " +"event will be passed to [method Node._unhandled_input] for further " +"processing." +msgstr "" +"控件被点击时,将通过 [method _gui_input] 收到鼠标按钮输入事件。并且控件能够接" +"收到 [signal mouse_entered] 和 [signal mouse_exited] 信号。如果此控件未处理事" +"件,则将考虑其父控件(如果有的话),并依此类推,直到不再有可能处理它的父控件" +"为止。相关的信号可以在其他控件中触发。如果没有控件处理它,事件将被传递到 " +"[method Node._unhandled_input] 进一步处理。" + +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 " @@ -21151,6 +21896,14 @@ msgstr "" "[code]anchor_*[/code] 成员变量中使用,例如 [member anchor_left]。要一次更改全" "部 4 个锚点,请使用 [method set_anchors_preset]。" +msgid "" +"Automatic layout direction, determined from the parent control layout " +"direction." +msgstr "自动布局方向,由父控件布局方向决定。" + +msgid "Automatic layout direction, determined from the current locale." +msgstr "自动布局方向,根据当前语言环境确定。" + msgid "Left-to-right layout direction." msgstr "从左至右的布局方向。" @@ -21620,6 +22373,14 @@ msgstr "" "径。" msgid "" +"The particle system's frame rate is fixed to a value. For example, 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帧的速度渲染。" +"请注意,这并不会降低粒子系统本身的速度。" + +msgid "" "Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts " "particles to X/Z plane." msgstr "" @@ -21645,6 +22406,19 @@ msgid "Minimum linear acceleration." msgstr "最小线性加速度。" msgid "" +"If [code]true[/code], particles use the parent node's coordinate space " +"(known as local coordinates). This will cause particles to move and rotate " +"along the [CPUParticles3D] node (and its parents) when it is moved or " +"rotated. If [code]false[/code], particles use global coordinates; they will " +"not move or rotate along the [CPUParticles3D] node (and its parents) when it " +"is moved or rotated." +msgstr "" +"如果为 [code]true[/code],粒子使用父节点的坐标空间(称为局部坐标)。这将导致" +"粒子在移动或旋转时,沿着 [CPUParticles3D] 节点(及其父节点)移动和旋转。如果" +"为 [code]false[/code],则粒子使用全局坐标;当移动或旋转时,它们不会沿着 " +"[CPUParticles3D] 节点(及其父节点)移动或旋转。" + +msgid "" "The [Mesh] used for each particle. If [code]null[/code], particles will be " "spheres." msgstr "每个粒子使用的 [Mesh]。如果为 [code]null[/code],则粒子将为球形。" @@ -21658,6 +22432,10 @@ msgstr "最小轨道速度。" msgid "If [code]true[/code], particles will not move on the Z axis." msgstr "如果为 [code]true[/code],则粒子将不会在 Z 轴上移动。" +msgid "" +"If [code]true[/code], particles rotate around Y axis by [member angle_min]." +msgstr "如果为 [code]true[/code],则粒子绕 Y 轴旋转 [member angle_min]。" + msgid "Maximum radial acceleration." msgstr "最大径向加速度。" @@ -21680,6 +22458,11 @@ msgid "Curve for the scale over life, along the z axis." msgstr "生命周期内,沿 Z 轴的缩放曲线。" msgid "" +"If set to true, three different scale curves can be specified, one per scale " +"axis." +msgstr "如果设置为 true,则可以指定三条不同的缩放曲线,每个缩放轴一条。" + +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 "" @@ -22053,6 +22836,19 @@ msgstr "" msgid "A CSG Box shape." msgstr "CSG 盒子形状。" +msgid "" +"This node allows you to create a box for use with the CSG system.\n" +"[b]Note:[/b] CSG nodes are intended to be used for level prototyping. " +"Creating CSG nodes has a significant CPU cost compared to creating a " +"[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another " +"CSG node also has a significant CPU cost, so it should be avoided during " +"gameplay." +msgstr "" +"此节点允许您创建与 CSG 系统一起使用的盒子。\n" +"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点" +"中,移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" + msgid "Prototyping levels with CSG" msgstr "使用 CSG 设计关卡原型" @@ -22066,6 +22862,20 @@ msgid "A CSG Cylinder shape." msgstr "CSG 圆柱形状。" msgid "" +"This node allows you to create a cylinder (or cone) for use with the CSG " +"system.\n" +"[b]Note:[/b] CSG nodes are intended to be used for level prototyping. " +"Creating CSG nodes has a significant CPU cost compared to creating a " +"[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another " +"CSG node also has a significant CPU cost, so it should be avoided during " +"gameplay." +msgstr "" +"此节点允许您创建与 CSG 系统一起使用的圆柱体(或圆锥体)。\n" +"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点" +"中,移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" + +msgid "" "If [code]true[/code] a cone is created, the [member radius] will only apply " "to one side." msgstr "如果为 [code]true[/code],则创建圆锥,仅在一侧应用 [member radius]。" @@ -22095,6 +22905,24 @@ msgstr "" msgid "A CSG Mesh shape that uses a mesh resource." msgstr "使用网格资源的 CSG 网格形状。" +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 than two faces. See also [CSGPolygon3D] " +"for drawing 2D extruded polygons to be used as CSG nodes.\n" +"[b]Note:[/b] CSG nodes are intended to be used for level prototyping. " +"Creating CSG nodes has a significant CPU cost compared to creating a " +"[MeshInstance3D] with a [PrimitiveMesh]. Moving a CSG node within another " +"CSG node also has a significant CPU cost, so it should be avoided during " +"gameplay." +msgstr "" +"此 CSG 节点允许你将任何网格资源用作 CSG 形状,前提是它是闭合的、不自相交、不" +"包含内部面并且没有连接到两个面以上的边。 另请参阅 [CSGPolygon3D],以绘制 2D " +"挤出多边形以用作 CSG 节点。\n" +"[b]注意:[/b] CSG 节点旨在用于关卡原型设计。与使用 [PrimitiveMesh] 创建 " +"[MeshInstance3D] 相比,创建 CSG 节点具有显着的 CPU 成本。在另一个 CSG 节点" +"中,移动一个 CSG 节点,也会大量消耗 CPU,因此在游戏过程中,应该避免这种情况。" + msgid "The [Material] used in drawing the CSG shape." msgstr "用于绘制 CSG 形状的 [Material]。" @@ -22422,9 +23250,34 @@ msgstr "返回索引为 [param index] 的点的右侧切线夹角(单位为度 msgid "Removes the point at [code]index[/code] from the curve." msgstr "从曲线中移除 [code]index[/code] 处的点。" +msgid "" +"Sets the left [enum TangentMode] for the point at [param index] to [param " +"mode]." +msgstr "" +"将索引为 [param index] 的点的左侧 [enum TangentMode] 设置为 [param mode]。" + +msgid "" +"Sets the left tangent angle for the point at [param index] to [param " +"tangent]." +msgstr "将索引为 [param index] 的点的左侧切线角度设置为 [param tangent]。" + msgid "Sets the offset from [code]0.5[/code]." msgstr "设置相对于 [code]0.5[/code] 的偏移量。" +msgid "" +"Sets the right [enum TangentMode] for the point at [param index] to [param " +"mode]." +msgstr "" +"将索引为 [param index] 的点的右侧 [enum TangentMode] 设置为 [param mode]。" + +msgid "" +"Sets the right tangent angle for the point at [param index] to [param " +"tangent]." +msgstr "将索引为 [param index] 的点的右侧切线角度设置为 [param tangent]。" + +msgid "Assigns the vertical position [param y] to the point at [param index]." +msgstr "将索引为 [param index] 的点的垂直位置设置为 [param y]。" + msgid "The number of points to include in the baked (i.e. cached) curve data." msgstr "烘焙(即缓存)曲线数据中包含的点的数量。" @@ -22643,6 +23496,59 @@ 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 post-" +"processing effect after.\n" +"[b]Note:[/b] Decals cannot affect an underlying material's transparency, " +"regardless of its transparency mode (alpha blend, alpha scissor, alpha hash, " +"opaque pre-pass). This means translucent or transparent areas of a material " +"will remain translucent or transparent even if an opaque decal is applied on " +"them.\n" +"[b]Note:[/b] Decals are only supported in the Forward+ and Mobile rendering " +"methods, not Compatibility. When using the Mobile rendering method, only 8 " +"decals can be displayed on each mesh resource. Attempting to display more " +"than 8 decals on a single mesh resource will result in decals flickering in " +"and out as the camera moves.\n" +"[b]Note:[/b] When using the Mobile rendering method, decals will only " +"correctly affect meshes whose visibility AABB intersects with the decal's " +"AABB. If using a shader to deform the mesh in a way that makes it go outside " +"its AABB, [member GeometryInstance3D.extra_cull_margin] must be increased on " +"the mesh. Otherwise, the decal may not be visible on the mesh." +msgstr "" +"[Decal] 用于将纹理投射到场景中的 [Mesh] 上。使用贴花可在不影响底层 [Mesh] 的" +"情况下向场景中添加细节。它们通常用于为建筑物添加风化效果,为地面添加污垢或泥" +"土,或为道具添加多样性。贴花可以随时移动,使其适用于斑点阴影或激光瞄准点之类" +"的东西。\n" +"贴花由一个 [AABB] 和一组用于指定 [Color]、法线、ORM(环境光遮蔽、粗糙度、金属" +"度)和自发光的 [Texture2D] 组成。贴花在其 [AABB] 内投影,因此改变贴花的朝向会" +"影响它们投影的方向。默认情况下,贴花向下投影(即从正 Y 到负 Y)。\n" +"与贴花关联的 [Texture2D] 会自动存储在用于绘制贴花的纹理图集中,因此可以一次绘" +"制所有贴花。Godot 使用集群贴花,这意味着贴花是存储在集群数据中的,会在绘制网" +"格时绘制,而不是作为后期处理效果在此之后进行绘制。\n" +"[b]注意:[/b]贴花不会影响底层材质的透明度,无论其透明度模式如何(Alpha 混合、" +"Alpha 剪切、Alpha 哈希、不透明预通)。这意味着材质的半透明或透明区域将保持半" +"透明或透明,即使在其上应用不透明贴花也是如此。\n" +"[b]注意:[/b]贴花仅在支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。" +"使用 Mobile 渲染方式时,每个网格资源上最多只能显示 8 个贴花。尝试在单个网格资" +"源上显示超过 8 个贴花,将导致贴花随着相机移动而闪烁。\n" +"[b]注意:[/b]当使用 Mobile 渲染方式时,贴花只会正确影响其可视 AABB 与该贴花" +"的 AABB 相交的网格。如果使用着色器变形网格,使其超出网格自身的 AABB,则必须增" +"大网格上的 [member GeometryInstance3D.extra_cull_margin]。否则,贴花可能在该" +"网格上不可见。" + +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" @@ -23732,6 +24638,20 @@ msgstr "静态版本的 [method rename]。仅支持绝对路径。" msgid "Directional 2D light from a distance." msgstr "来自远处的 2D 平行光。" +msgid "" +"A directional light is a type of [Light2D] 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 (for example: " +"to model sunlight or moonlight).\n" +"[b]Note:[/b] [DirectionalLight2D] does not support light cull masks (but it " +"supports shadow cull masks). It will always light up 2D nodes, regardless of " +"the 2D node's [member CanvasItem.light_mask]." +msgstr "" +"定向光是一种 [Light2D] 节点,它模拟覆盖整个场景的无限数量的平行光线。它用于远" +"离场景的强光(例如:模拟日光或月光)。\n" +"[b]注意:[/b][DirectionalLight2D] 不支持灯光剔除遮罩(但支持阴影剔除遮罩)。" +"它将忽略 2D 节点的 [member CanvasItem.light_mask],始终点亮 2D 节点。" + msgid "2D lights and shadows" msgstr "2D 灯光和阴影" @@ -23845,6 +24765,136 @@ msgid "Returns index of the screen which contains specified rectangle." msgstr "返回包含指定矩形的屏幕的索引。" msgid "" +"Adds a new radio-checkable item with text [param label] and icon [param " +"icon] to the global menu with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using boolean OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] Radio-checkable items just display a checkmark, but don't have " +"any built-in checking behavior and must be checked/unchecked manually. See " +"[method global_menu_set_item_checked] for more info on how to control it.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"将带有文本 [param label] 和图标 [param icon] 的新单选项,添加到 ID 为 [param " +"menu_root] 的全局菜单中。\n" +"返回插入项的索引,不保证与 [param index] 值相同。\n" +"可以选择定义一个 [param accelerator],这是一个键盘快捷键,可以按下它来触发菜" +"单按钮,即使该菜单按钮当前没有打开。[param accelerator] 通常是 [enum " +"KeyModifierMask] 和 [enum Key] 使用布尔 OR 的组合,例如 [code]KEY_MASK_CTRL " +"| KEY_A[/code]([kbd]Ctrl + A[/kbd])。\n" +"[b]注意:[/b]单选可勾选项只显示一个复选标记,但没有任何内置的勾选行为,必须手" +"动勾选/取消勾选。有关如何控制它的更多信息,请参阅 [method " +"global_menu_set_item_checked]。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 只需要接受一" +"个 Variant 参数,传递给 Callable 的参数将是传递给 [param tag] 的值。\n" +"[b]注意:[/b]这个方法是在 macOS 上实现的。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - Dock 弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new item with text [param label] to the global menu with ID [param " +"menu_root].\n" +"Contrarily to normal binary items, multistate items can have more than two " +"states, as defined by [param max_states]. Each press or activate of the item " +"will increase the state by one. The default value is defined by [param " +"default_state].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using boolean OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] By default, there's no indication of the current item state, it " +"should be changed manually.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"将带有文本 [param label] 的新项,添加到 ID 为 [param menu_root] 的全局菜" +"单。\n" +"与正常的二进制项目相反,多状态项目可以有两个以上的状态,如 [param " +"max_states] 所定义。每次按下或激活该项都会将状态增加一个。默认值由 [param " +"default_state] 定义。\n" +"返回插入项的索引,不保证与 [param index] 值相同。\n" +"可以选择定义一个 [param accelerator],这是一个键盘快捷键,可以按下它来触发菜" +"单按钮,即使该菜单按钮当前没有打开。[param accelerator] 通常是 [enum " +"KeyModifierMask] 和 [enum Key] 使用布尔 OR 的组合,例如 [code]KEY_MASK_CTRL " +"| KEY_A[/code]([kbd]Ctrl + A[/kbd])。\n" +"[b]注意:[/b]默认情况下,没有当前项状态的指示,应手动更改。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 只需要接受一" +"个 Variant 参数,传递给 Callable 的参数将是传递给 [param tag] 的值。\n" +"[b]注意:[/b]该方法在 macOS 上实现。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - Dock 弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" +"Adds a new radio-checkable item with text [param label] to the global menu " +"with ID [param menu_root].\n" +"Returns index of the inserted item, it's not guaranteed to be the same as " +"[param index] value.\n" +"An [param accelerator] can optionally be defined, which is a keyboard " +"shortcut that can be pressed to trigger the menu button even if it's not " +"currently open. The [param accelerator] is generally a combination of [enum " +"KeyModifierMask]s and [enum Key]s using boolean OR such as " +"[code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).\n" +"[b]Note:[/b] Radio-checkable items just display a checkmark, but don't have " +"any built-in checking behavior and must be checked/unchecked manually. See " +"[method global_menu_set_item_checked] for more info on how to control it.\n" +"[b]Note:[/b] The [param callback] and [param key_callback] Callables need to " +"accept exactly one Variant parameter, the parameter passed to the Callables " +"will be the value passed to [param tag].\n" +"[b]Note:[/b] This method is implemented on macOS.\n" +"[b]Supported system menu IDs:[/b]\n" +"[codeblock]\n" +"\"_main\" - Main menu (macOS).\n" +"\"_dock\" - Dock popup menu (macOS).\n" +"[/codeblock]" +msgstr "" +"将带有文本 [param label] 的新单选可勾选项,添加到 ID 为 [param menu_root] 的" +"全局菜单中。\n" +"返回插入项的索引,不保证与 [param index] 值相同。\n" +"可以选择定义一个 [param accelerator],这是一个键盘快捷键,可以按下它来触发菜" +"单按钮,即使该菜单按钮当前没有打开。[param accelerator] 通常是 [enum " +"KeyModifierMask] 和 [enum Key] 使用布尔 OR 的组合,例如 [code]KEY_MASK_CTRL " +"| KEY_A[/code]([kbd]Ctrl + A[/kbd])。\n" +"[b]注意:[/b]单选勾选项只显示一个复选标记,但没有任何内置的勾选行为,必须手动" +"勾选/取消勾选。有关如何控制它的更多信息,请参阅 [method " +"global_menu_set_item_checked]。\n" +"[b]注意:[/b][param callback] 和 [param key_callback] Callable 只需要接受一" +"个 Variant 参数,传递给 Callable 的参数将是传递给 [param tag] 的值。\n" +"[b]注意:[/b] 该方法是在 macOS 上实现的。\n" +"[b]支持的系统菜单 ID:[/b]\n" +"[codeblock]\n" +"\"_main\" - 主菜单(macOS)。\n" +"\"_dock\" - Dock 弹出菜单(macOS)。\n" +"[/codeblock]" + +msgid "" "Returns the accelerator of the item at index [param idx]. Accelerators are " "special combinations of keys that activate the item, no matter which control " "is focused.\n" @@ -24047,6 +25097,38 @@ msgstr "" "[b]注意:[/b]该方法在 Windows 上实现。" msgid "" +"Returns an [Array] of voice information dictionaries.\n" +"Each [Dictionary] contains two [String] entries:\n" +"- [code]name[/code] is voice name.\n" +"- [code]id[/code] is voice identifier.\n" +"- [code]language[/code] is language code in [code]lang_Variant[/code] " +"format. [code]lang[/code] part is a 2 or 3-letter code based on the ISO-639 " +"standard, in lowercase. And [code]Variant[/code] part is an engine dependent " +"string describing country, region or/and dialect.\n" +"Note that Godot depends on system libraries for text-to-speech " +"functionality. These libraries are installed by default on Windows and " +"MacOS, but not on all Linux distributions. If they are not present, this " +"method will return an empty list. This applies to both Godot users on Linux, " +"as well as end-users on Linux running Godot games that use text-to-speech.\n" +"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), " +"macOS, and Windows." +msgstr "" +"返回一个语音信息字典的 [Array]。\n" +"每个 [Dictionary] 包含两个 [String] 条目:\n" +"- [code]name[/code] 是语音名称。\n" +"- [code]id[/code] 是语音标识符。\n" +"- [code]language[/code] 是语言代码,格式为 [code]lang_Variant[/code] 。" +"[code]lang[/code] 部分是小写的基于 ISO-639 标准的 2 或 3 字母代码。而 " +"[code]Variant[/code] 部分是一个依赖于引擎的字符串,描述国家、地区或/和方" +"言。\n" +"请注意,Godot 依赖于系统库来实现文本到语音的功能。这些库默认安装在 Windows " +"和 MacOS 上,但并非安装在所有 Linux 发行版上。如果它们不存在,此方法将返回一" +"个空列表。这适用于 Linux 上的 Godot 用户,以及在 Linux 上运行使用文本到语音" +"的 Godot 游戏的最终用户。\n" +"[b]注意:[/b]该方法在 Android、iOS、Web、Linux(X11)、macOS 和 Windows 上实" +"现。" + +msgid "" "Returns the on-screen keyboard's height in pixels. Returns 0 if there is no " "keyboard or if it is currently hidden." msgstr "" @@ -24095,6 +25177,11 @@ msgstr "" "[b]注意:[/b][method warp_mouse] 仅在 Windows、macOS 和 Linux 上受支持。它在 " "Android、iOS 和 Web 上无效。" +msgid "" +"Returns ID of the active popup window, or [constant INVALID_WINDOW_ID] if " +"there is none." +msgstr "返回活动弹出窗口的 ID,如果没有则返回 [constant INVALID_WINDOW_ID]。" + msgid "Returns the current value of the given window's [param flag]." msgstr "返回给定窗口当前的 [param flag] 值。" @@ -24307,6 +25394,25 @@ msgstr "" "[b]注意:[/b]行为可能因平台而异。" msgid "" +"Sets the V-Sync mode of the given window. See also [member ProjectSettings." +"display/window/vsync/vsync_mode].\n" +"See [enum DisplayServer.VSyncMode] for possible values and how they affect " +"the behavior of your application.\n" +"Depending on the platform and used renderer, the engine will fall back to " +"[constant VSYNC_ENABLED] if the desired mode is not supported.\n" +"[b]Note:[/b] V-Sync modes other than [constant VSYNC_ENABLED] are only " +"supported in the Forward+ and Mobile rendering methods, not Compatibility." +msgstr "" +"设置给定窗口的垂直同步模式。另见 [member ProjectSettings.display/window/" +"vsync/vsync_mode]。\n" +"参阅 [enum DisplayServer.VSyncMode] 了解可能的值,以及它们如何影响应用程序的" +"行为。\n" +"根据平台和使用的渲染器,如果不支持所需的模式,引擎将回退到 [constant " +"VSYNC_ENABLED]。\n" +"[b]注意:[/b]除 [constant VSYNC_ENABLED] 以外的垂直同步模式,仅支持 Forward+ " +"和 Mobile 渲染方式,不支持 Compatibility。" + +msgid "" "Display server supports global menu. This allows the application to display " "its menu items in the operating system's top bar. [b]macOS[/b]" msgstr "" @@ -24363,6 +25469,21 @@ msgstr "" "(X11)、Web[/b]" msgid "" +"Display server supports spawning dialogs using the operating system's native " +"look-and-feel. [b]macOS[/b]" +msgstr "显示服务器支持使用操作系统的本地界面外观来生成对话框。[b]macOS[/b]" + +msgid "" +"Display server supports [url=https://en.wikipedia.org/wiki/" +"Input_method]Input Method Editor[/url], which is commonly used for inputting " +"Chinese/Japanese/Korean text. This is handled by the operating system, " +"rather than by Godot. [b]Windows, macOS, Linux (X11)[/b]" +msgstr "" +"显示服务器支持 [url=https://en.wikipedia.org/wiki/Input_method]输入法[/url]," +"它通常用于输入中文、日文和韩文文本。这由操作系统处理,而不是由 Godot 处理。" +"[b]Windows, macOS, Linux (X11)[/b]" + +msgid "" "Display server supports changing the window icon (usually displayed in the " "top-left corner). [b]Windows, macOS, Linux (X11)[/b]" msgstr "" @@ -25010,6 +26131,14 @@ msgid "" "Returns [code]true[/code] if the attached remote instance can be debugged." msgstr "如果附加的远程实例可以调试,则返回 [code]true[/code]。" +msgid "Emitted when the attached remote instance exits a break state." +msgstr "当连接的远程实例退出中断状态时触发。" + +msgid "" +"Emitted when a remote instance is attached to this session (i.e. the session " +"becomes active)." +msgstr "当一个远程实例连接到该会话时触发(即该会话成为活动状态)。" + msgid "A script that is executed when exporting the project." msgstr "在导出项目时执行的脚本。" @@ -25983,12 +27112,38 @@ msgstr "" "的控件。\n" "[b]警告:[/b]删除和释放这个节点将使编辑器失效,并可能导致崩溃。" +msgid "" +"Returns the editor's [EditorCommandPalette] instance.\n" +"[b]Warning:[/b] Removing and freeing this node will render a part of the " +"editor useless and may cause a crash." +msgstr "" +"返回编辑器的 [EditorCommandPalette] 实例。\n" +"[b]警告:[/b] 删除和释放此节点,将使编辑器的一部分失去作用,并可能导致崩溃。" + +msgid "" +"Returns the current directory being viewed 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] 返回其基本目录。" + msgid "Returns the current path being viewed in the [FileSystemDock]." msgstr "返回在 [FileSystemDock] 中查看的当前路径。" msgid "Returns the edited (current) scene's root [Node]." msgstr "返回正在编辑的(当前)场景的根 [Node]。" +msgid "" +"Returns the editor control responsible for main screen plugins and tools. " +"Use it with plugins that implement [method EditorPlugin._has_main_screen].\n" +"[b]Warning:[/b] Removing and freeing this node will render a part of the " +"editor useless and may cause a crash." +msgstr "" +"返回负责主屏幕插件和工具的编辑器控件。将其与实现了 [method EditorPlugin." +"_has_main_screen] 的插件一起使用。\n" +"[b]警告:[/b] 移除和释放这个节点将使编辑器的一部分失去作用,并可能导致崩溃。" + msgid "Returns the [EditorPaths] singleton." msgstr "返回 [EditorPaths] 单例。" @@ -26047,10 +27202,23 @@ msgstr "" "返回编辑器的脚本编辑器 [ScriptEditor] 实例。\n" "[b]警告:[/b]删除和释放这个节点将使编辑器的一部分失去作用,并可能导致崩溃。" +msgid "" +"Returns an array containing the paths of the currently selected files (and " +"directories) in the [FileSystemDock]." +msgstr "返回一个包含了 [FileSystemDock] 中当前所选文件(和目录)路径的数组。" + msgid "Returns the editor's [EditorSelection] instance." msgstr "返回编辑器的 [EditorSelection] 实例。" msgid "" +"Shows the given property on the given [param object] in the editor's " +"Inspector dock. If [param inspector_only] is [code]true[/code], plugins will " +"not attempt to edit [param object]." +msgstr "" +"在编辑器的检查器面板中显示给定 [param object] 的属性。如果 [param " +"inspector_only] 为 [code]true[/code] ,插件将不会试图编辑 [param object]。" + +msgid "" "Returns [code]true[/code] if a scene is currently being played, [code]false[/" "code] otherwise. Paused scenes are considered as being played." msgstr "" @@ -26768,6 +27936,15 @@ msgstr "" "有关如何注册插件的示例,请参见 [method add_inspector_plugin]。" msgid "" +"Registers a new [EditorNode3DGizmoPlugin]. Gizmo plugins are used to add " +"custom gizmos to the 3D preview viewport for a [Node3D].\n" +"See [method add_inspector_plugin] for an example of how to register a plugin." +msgstr "" +"注册一个新的 [EditorNode3DGizmoPlugin]。小工具插件用于将自定义小工具添加到 " +"[Node3D] 的 3D 预览视图。\n" +"有关如何注册插件的示例,请参阅 [method add_inspector_plugin]。" + +msgid "" "Returns the [EditorInterface] object that gives you control over Godot " "editor's window and its functionalities." msgstr "" @@ -27668,6 +28845,13 @@ msgid "The editor theme preset to use." msgstr "要使用的编辑器主题预设。" msgid "" +"If [code]true[/code], long press on touchscreen is treated as right click.\n" +"[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices." +msgstr "" +"如果为 [code]true[/code],长按触摸屏被视为右键单击。\n" +"[b]注意:[/b]在触摸屏设备上默认为 [code]true[/code]。" + +msgid "" "The TLS certificate bundle to use for HTTP requests made within the editor " "(e.g. from the AssetLib tab). If left empty, the [url=https://github.com/" "godotengine/godot/blob/master/thirdparty/certs/ca-certificates.crt]included " @@ -27850,6 +29034,251 @@ msgid "" "names." msgstr "虚函数,可以在覆盖后返回所支持的语言名称。" +msgid "" +"[EditorTranslationParserPlugin] is invoked when a file is being parsed to " +"extract strings that require translation. To define the parsing and string " +"extraction logic, override the [method _parse_file] method in script.\n" +"Add the extracted strings to argument [code]msgids[/code] or " +"[code]msgids_context_plural[/code] if context or plural is used.\n" +"When adding to [code]msgids_context_plural[/code], you must add the data " +"using the format [code][\"A\", \"B\", \"C\"][/code], where [code]A[/code] " +"represents the extracted string, [code]B[/code] represents the context, and " +"[code]C[/code] represents the plural version of the extracted string. If you " +"want to add only context but not plural, put [code]\"\"[/code] for the " +"plural slot. The idea is the same if you only want to add plural but not " +"context. See the code below for concrete examples.\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 from a CSV " +"file to write into a POT.\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorTranslationParserPlugin\n" +"\n" +"func _parse_file(path, msgids, msgids_context_plural):\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" var text = file.get_as_text()\n" +" var split_strs = text.split(\",\", false)\n" +" for s in split_strs:\n" +" msgids.append(s)\n" +" #print(\"Extracted string: \" + s)\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"csv\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class CustomParser : EditorTranslationParserPlugin\n" +"{\n" +" public override void _ParseFile(string path, Godot.Collections." +"Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> " +"msgidsContextPlural)\n" +" {\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" string text = file.GetAsText();\n" +" string[] splitStrs = text.Split(\",\", allowEmpty: false);\n" +" foreach (string s in splitStrs)\n" +" {\n" +" msgids.Add(s);\n" +" //GD.Print($\"Extracted string: {s}\");\n" +" }\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return new string[] { \"csv\" };\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To add a translatable string associated with context or plural, add it to " +"[code]msgids_context_plural[/code]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# This will add a message with msgid \"Test 1\", msgctxt \"context\", and " +"msgid_plural \"test 1 plurals\".\n" +"msgids_context_plural.append([\"Test 1\", \"context\", \"test 1 plurals\"])\n" +"# This will add a message with msgid \"A test without context\" and " +"msgid_plural \"plurals\".\n" +"msgids_context_plural.append([\"A test without context\", \"\", " +"\"plurals\"])\n" +"# This will add a message with msgid \"Only with context\" and msgctxt \"a " +"friendly context\".\n" +"msgids_context_plural.append([\"Only with context\", \"a friendly context\", " +"\"\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"// This will add a message with msgid \"Test 1\", msgctxt \"context\", and " +"msgid_plural \"test 1 plurals\".\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"Test 1\", \"context\", " +"\"test 1 Plurals\"});\n" +"// This will add a message with msgid \"A test without context\" and " +"msgid_plural \"plurals\".\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"A test without " +"context\", \"\", \"plurals\"});\n" +"// This will add a message with msgid \"Only with context\" and msgctxt \"a " +"friendly context\".\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"Only with context\", " +"\"a friendly context\", \"\"});\n" +"[/csharp]\n" +"[/codeblocks]\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 [FileAccess] type.\n" +"For example:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _parse_file(path, msgids, msgids_context_plural):\n" +" var res = ResourceLoader.load(path, \"Script\")\n" +" var text = res.source_code\n" +" # Parsing logic.\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"gd\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _ParseFile(string path, Godot.Collections.Array<string> " +"msgids, Godot.Collections.Array<Godot.Collections.Array> " +"msgidsContextPlural)\n" +"{\n" +" var res = ResourceLoader.Load<Script>(path, \"Script\");\n" +" string text = res.SourceCode;\n" +" // Parsing logic.\n" +"}\n" +"\n" +"public override string[] _GetRecognizedExtensions()\n" +"{\n" +" return new string[] { \"gd\" };\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"To use [EditorTranslationParserPlugin], register it using the [method " +"EditorPlugin.add_translation_parser_plugin] method first." +msgstr "" +"[EditorTranslationParserPlugin]在文件被解析以提取需要翻译的字符串时被调用。为" +"了定义解析和提取字符串的逻辑,在脚本中覆盖 [method _parse_file] 方法。\n" +"如果使用上下文或复数形式,则将提取的字符串添加到参数 [code]msgids[/code] 或 " +"[code]msgids_context_plural[/code]。\n" +"添加到 [code]msgids_context_plural[/code] 时,必须使用格式 [code][\"A\", " +"\"B\", \"C\"][/code] 添加数据,其中 [code]A[/code] 表示提取的字符串," +"[code]B[/code] 表示上下文,[code]C[/code] 表示提取的字符串的复数形式。如果只" +"想添加上下文而不添加复数形式,请将 [code]\"\"[/code] 用于复数形式槽。如果只想" +"添加复数形式而不是上下文,做法也是一样的。有关具体示例,请参阅下面的代码。\n" +"提取的字符串将被写入用户在“项目设置”菜单的“本地化”选项卡中的“POT 生成”下选择" +"的 POT 文件中。\n" +"下面显示了一个自定义解析器的示例,该解析器从 CSV 文件中提取字符串以写入 POT " +"中。\n" +"[codeblocks]\n" +"[gdscript]\n" +"@tool\n" +"extends EditorTranslationParserPlugin\n" +"\n" +"func _parse_file(path, msgids, msgids_context_plural):\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" var text = file.get_as_text()\n" +" var split_strs = text.split(\",\", false)\n" +" for s in split_strs:\n" +" msgids.append(s)\n" +" #print(\"提取的字符串:\" + s)\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"csv\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"using Godot;\n" +"\n" +"[Tool]\n" +"public partial class CustomParser : EditorTranslationParserPlugin\n" +"{\n" +" public override void _ParseFile(string path, Godot.Collections." +"Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> " +"msgidsContextPlural)\n" +" {\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" string text = file.GetAsText();\n" +" string[] splitStrs = text.Split(\",\", allowEmpty: false);\n" +" foreach (string s in splitStrs)\n" +" {\n" +" msgids.Add(s);\n" +" //GD.Print($\"提取的字符串:{s}\");\n" +" }\n" +" }\n" +"\n" +" public override string[] _GetRecognizedExtensions()\n" +" {\n" +" return new string[] { \"csv\" };\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"要添加一个与上下文或复数关联的可翻译字符串,请将其添加到 " +"[code]msgids_context_plural[/code]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 这将添加一条消息,其中 msgid 为“测试 1”、msgctxt 为“上下文”,以及 " +"msgid_plural 为“测试 1 复数形式”。\n" +"msgids_context_plural.append([\"测试 1\", \"上下文\", \"测试 1 复数形式\"])\n" +"# 这将添加一条消息,其中 msgid 为“一个没有上下文的测试”、msgid_plural 为 “复" +"数形式”。\n" +"msgids_context_plural.append([\"一个没有上下文的测试\", \"\", \"复数形式" +"\"])\n" +"# 这将添加一条消息,其中 msgid 为“仅带有上下文”、msgctxt 为 “一条友好的上下" +"文”。\n" +"msgids_context_plural.append([\"仅带有上下文\", \"一条友好的上下文\", " +"\"\"])\n" +"[/gdscript]\n" +"[csharp]\n" +"// 这将添加一条消息,其中 msgid 为“测试 1”、msgctxt 为“上下文”,以及 " +"msgid_plural 为“测试 1 复数形式”。\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"测试 1\", \"上下文\", " +"\"测试 1 复数形式\"});\n" +"// 这将添加一条消息,其中 msgid 为“一个没有上下文的测试”、msgid_plural 为 “复" +"数形式”。\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"一个没有上下文的测试" +"\", \"\", \"复数形式\"});\n" +"// 这将添加一条消息,其中 msgid 为“仅带有上下文”、msgctxt 为 “一条友好的上下" +"文”。\n" +"msgidsContextPlural.Add(new Godot.Collections.Array{\"仅带有上下文\", \"一条" +"友好的上下文\", \"\"});\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果覆盖了标准脚本类型(GDScript、C# 等)的解析逻辑,最好使用 " +"[method ResourceLoader.load] 加载 [code]path[/code] 参数。这是因为内置脚本被" +"加载为 [Resource] 类型,而不是 [FileAccess] 类型。\n" +"例如:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _parse_file(path, msgids, msgids_context_plural):\n" +" var res = ResourceLoader.load(path, \"Script\")\n" +" var text = res.source_code\n" +" # 解析逻辑。\n" +"\n" +"func _get_recognized_extensions():\n" +" return [\"gd\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _ParseFile(string path, Godot.Collections.Array<string> " +"msgids, Godot.Collections.Array<Godot.Collections.Array> " +"msgidsContextPlural)\n" +"{\n" +" var res = ResourceLoader.Load<Script>(path, \"Script\");\n" +" string text = res.SourceCode;\n" +" // 解析逻辑。\n" +"}\n" +"\n" +"public override string[] _GetRecognizedExtensions()\n" +"{\n" +" return new string[] { \"gd\" };\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"要使用 [EditorTranslationParserPlugin],请先使用 [method EditorPlugin." +"add_translation_parser_plugin] 方法注册它。" + msgid "Manages undo history of scenes opened in the editor." msgstr "管理编辑器中打开场景的撤销历史。" @@ -27870,6 +29299,24 @@ msgstr "" "用删除的节点(而非“undo”调用!)。" 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 [param merge_mode] argument. " +"See [enum UndoRedo.MergeMode] for details.\n" +"If [param custom_context] object is provided, it will be used for deducing " +"target history (instead of using the first operation)." +msgstr "" +"创建一个新的动作。在这个动作被调用后,执行对 [method add_do_method]、[method " +"add_undo_method]、[method add_do_property] 和 [method add_undo_property] 的所" +"有调用,然后用 [method commit_action] 提交这个动作。\n" +"动作的合并方式由 [param merge_mode] 参数决定。有关详细信息,请参阅 [enum " +"UndoRedo.MergeMode]。\n" +"如果提供了 [param custom_context] 对象,它将被用于推断目标历史(而不是使用第" +"一个操作)。" + +msgid "" "Global history not associated with any scene, but with external resources " "etc." msgstr "全局历史,与场景无关,但与外部资源等相关。" @@ -28188,10 +29635,20 @@ msgstr "" "[code]\"192.168.1.1\"[/code]。" msgid "" +"The underlying [ENetConnection] created after [method create_client] and " +"[method create_server]." +msgstr "" +"在 [method create_client] 和 [method create_server] 之后,创建的底层 " +"[ENetConnection]。" + +msgid "" "A wrapper class for an [url=http://enet.bespin.org/group__peer." "html]ENetPeer[/url]." msgstr "[url=http://enet.bespin.org/group__peer.html]ENetPeer[/url] 的包装类。" +msgid "Returns the number of channels allocated for communication with peer." +msgstr "返回为与对等体通信而分配的通道数。" + msgid "Returns the IP address of this peer." msgstr "返回该对等体的 IP 地址。" @@ -28201,6 +29658,46 @@ msgstr "返回该对等体的远程端口。" msgid "Returns the current peer state. See [enum PeerState]." msgstr "返回该对等体的当前状态。见 [enum PeerState]。" +msgid "" +"Returns the requested [code]statistic[/code] for this peer. See [enum " +"PeerStatistic]." +msgstr "返回此对等体请求的 [code]statistic[/code]。参见 [enum PeerStatistic]。" + +msgid "" +"Returns [code]true[/code] if the peer is currently active (i.e. the " +"associated [ENetConnection] is still valid)." +msgstr "" +"如果对等体当前处于活动状态(即关联的 [ENetConnection] 仍然有效),则返回 " +"[code]true[/code]。" + +msgid "" +"Request a disconnection from a peer. An [constant ENetConnection." +"EVENT_DISCONNECT] will be generated during [method ENetConnection.service] " +"once the disconnection is complete." +msgstr "" +"请求与对等体断开连接。一旦断开连接完成,在 [method ENetConnection.service] 期" +"间,将生成一个 [constant ENetConnection.EVENT_DISCONNECT]。" + +msgid "" +"Request a disconnection from a peer, but only after all queued outgoing " +"packets are sent. An [constant ENetConnection.EVENT_DISCONNECT] will be " +"generated during [method ENetConnection.service] once the disconnection is " +"complete." +msgstr "" +"请求与对等体断开连接,但仅在发送完所有队列的传出数据包之后。一旦断开连接完" +"成,在 [method ENetConnection.service] 期间,将生成一个 [constant " +"ENetConnection.EVENT_DISCONNECT]。" + +msgid "" +"Force an immediate disconnection from a peer. No [constant ENetConnection." +"EVENT_DISCONNECT] will be generated. The foreign peer is not guaranteed to " +"receive the disconnect notification, and is reset immediately upon return " +"from this function." +msgstr "" +"强制立即断开与对等体的连接。不会生成 [constant ENetConnection." +"EVENT_DISCONNECT]。不保证外部对等体会收到断开连接通知,并会在从此函数返回后立" +"即重置。" + msgid "The peer is disconnected." msgstr "该对等体已断开连接。" @@ -28303,15 +29800,167 @@ msgid "Returns the main loop object (see [MainLoop] and [SceneTree])." msgstr "返回主循环对象(请参阅[MainLoop]和[SceneTree])。" msgid "" +"Returns the total number of frames passed since engine initialization which " +"is advanced on each [b]physics frame[/b]. See also [method " +"get_process_frames].\n" +"[method get_physics_frames] can be used to run expensive logic less often " +"without relying on a [Timer]:\n" +"[codeblocks]\n" +"[gdscript]\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" +"[/gdscript]\n" +"[csharp]\n" +"public override void _PhysicsProcess(double delta)\n" +"{\n" +" base._PhysicsProcess(delta);\n" +"\n" +" if (Engine.GetPhysicsFrames() % 2 == 0)\n" +" {\n" +" // Run expensive logic only once every 2 physics frames here.\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回自引擎初始化以来通过的总帧数,该帧数在每个[b]物理帧[/b]上行进。参阅 " +"[method get_process_frames]。\n" +"[method get_physics_frames] 可用于在不依赖 [Timer] 的情况下,减少运行昂贵的逻" +"辑的次数:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _physics_process(_delta):\n" +" if Engine.get_physics_frames() % 2 == 0:\n" +" pass # 此处每 2 个物理帧仅运行一次昂贵的逻辑。\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _PhysicsProcess(double delta)\n" +"{\n" +" base._PhysicsProcess(delta);\n" +"\n" +" if (Engine.GetPhysicsFrames() % 2 == 0)\n" +" {\n" +" // 此处每 2 个物理帧仅运行一次昂贵的逻辑。\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +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 "返回渲染帧时当前物理周期中的分数。可用于实现固定的时间步插值。" +msgid "" +"Returns the total number of frames passed since engine initialization which " +"is advanced on each [b]process frame[/b], regardless of whether the render " +"loop is enabled. See also [method get_frames_drawn] and [method " +"get_physics_frames].\n" +"[method get_process_frames] can be used to run expensive logic less often " +"without relying on a [Timer]:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(_delta):\n" +" if Engine.get_process_frames() % 2 == 0:\n" +" pass # Run expensive logic only once every 2 process (render) " +"frames here.\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Process(double delta)\n" +"{\n" +" base._Process(delta);\n" +"\n" +" if (Engine.GetProcessFrames() % 2 == 0)\n" +" {\n" +" // Run expensive logic only once every 2 physics frames here.\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回自引擎初始化以来通过的总帧数,无论渲染循环是否启用,每个[b]处理帧[/b]都会" +"行进。另见 [method get_frames_drawn] 和 [method get_physics_frames]。\n" +"[method get_process_frames] 可用于在不依赖 [Timer] 的情况下,减少运行昂贵的逻" +"辑的次数:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _process(_delta):\n" +" if Engine.get_process_frames() % 2 == 0:\n" +" pass # 此处每 2 个处理(渲染)帧仅运行一次昂贵的逻辑。\n" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Process(double delta)\n" +"{\n" +" base._Process(delta);\n" +"\n" +" if (Engine.GetProcessFrames() % 2 == 0)\n" +" {\n" +" // 此处每 2 个处理(渲染)帧仅运行一次昂贵的逻辑。\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Returns a list of available global singletons." msgstr "返回可用全局单例的列表。" msgid "" +"Returns [code]true[/code] if the script is currently running inside the " +"editor, [code]false[/code] otherwise. 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" +"[codeblocks]\n" +"[gdscript]\n" +"if Engine.is_editor_hint():\n" +" draw_gizmos()\n" +"else:\n" +" simulate_physics()\n" +"[/gdscript]\n" +"[csharp]\n" +"if (Engine.IsEditorHint())\n" +" DrawGizmos();\n" +"else\n" +" SimulatePhysics();\n" +"[/csharp]\n" +"[/codeblocks]\n" +"See [url=$DOCS_URL/tutorials/plugins/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 [kbd]F5[/kbd]), 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 "" +"如果脚本当前正在编辑器中运行,则返回 [code]true[/code],否则返回 " +"[code]false[/code]。这对于 [code]@tool[/code] 脚本很有用,可以有条件地绘制编" +"辑器助手,或者防止在编辑器中意外运行会影响场景状态的“游戏”代码:\n" +"[codeblocks]\n" +"[gdscript]\n" +"if Engine.is_editor_hint():\n" +" draw_gizmos()\n" +"else:\n" +" simulate_physics()\n" +"[/gdscript]\n" +"[csharp]\n" +"if (Engine.IsEditorHint())\n" +" DrawGizmos();\n" +"else\n" +" SimulatePhysics();\n" +"[/csharp]\n" +"[/codeblocks]\n" +"有关详细信息,请参阅文档中的[url=$DOCS_URL/tutorials/plugins/" +"running_code_in_the_editor.html]《在编辑器中运行代码》[/url]。\n" +"[b]注意:[/b]要检测脚本是否从编辑器[i]构建[/i]中运行(例如,当按 [kbd]F5[/" +"kbd] 时),请改用 [method OS.has_feature] 和 [code]\"editor\"[/code] 参数。" +"[code]OS.has_feature(\"editor\")[/code] 将在编辑器中运行代码和从编辑器运行项" +"目时,被评估为 [code]true[/code];但当代码从导出的项目运行时,它将被评估为 " +"[code]false[/code]。" + +msgid "" "Returns [code]true[/code] if the game is inside the fixed process and " "physics phase of the game loop." msgstr "如果游戏在游戏循环的固定过程和物理阶段内,返回 [code]true[/code]。" @@ -28457,6 +30106,19 @@ msgstr "" "[code]true[/code] 时才有效。" 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.\n" +"[b]Note:[/b] Adjustments are only supported in the Forward+ and Mobile " +"rendering methods, not Compatibility." +msgstr "" +"如果为 [code]true[/code],则启用该资源提供的 [code]adjustment_*[/code] 属性。" +"如果为 [code]false[/code],则对 [code]adjustment_*[/code] 属性的修改将不会对" +"渲染场景产生影响。\n" +"[b]注意:[/b]调整仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。" + +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 "" @@ -28464,6 +30126,21 @@ msgstr "" "code] 为 [code]true[/code] 时才有效。" msgid "" +"The ambient light's [Color]. Only effective if [member " +"ambient_light_sky_contribution] is lower than [code]1.0[/code] (exclusive)." +msgstr "" +"环境光的 [Color]。仅当 [member ambient_light_sky_contribution] 低于 " +"[code]1.0[/code](不包括)时,才有效。" + +msgid "" +"The ambient light's energy. The higher the value, the stronger the light. " +"Only effective if [member ambient_light_sky_contribution] is lower than " +"[code]1.0[/code] (exclusive)." +msgstr "" +"环境光的能量。值越高,光线越强。仅当 [member ambient_light_sky_contribution] " +"低于 [code]1.0[/code](不包括)时,才有效。" + +msgid "" "Defines the amount of light that the sky brings on the scene. A value of " "[code]0.0[/code] means that the sky's light emission has no effect on the " "scene illumination, thus all ambient illumination is provided by the ambient " @@ -28479,6 +30156,11 @@ msgstr "" "[b]注意:[/b]内部会将 [member ambient_light_sky_contribution] 限制在 " "[code]0.0[/code] 到 [code]1.0[/code] 之间(闭区间)。" +msgid "" +"The ambient light source to use for rendering materials and global " +"illumination." +msgstr "环境光源,用于渲染材质和全局照明。" + msgid "The ID of the camera feed to show in the background." msgstr "在背景中显示的相机源的 ID。" @@ -28487,6 +30169,27 @@ msgid "" "BG_CANVAS] background mode." msgstr "要显示的最大图层 ID。只有在使用 [constant BG_CANVAS] 背景模式时有效。" +msgid "" +"The [Color] displayed for clear areas of the scene. Only effective when " +"using the [constant BG_COLOR] background mode." +msgstr "" +"场景中清除区域显示的 [Color]。仅在使用 [constant BG_COLOR] 背景模式时有效。" + +msgid "" +"Multiplier for background energy. Increase to make background brighter, " +"decrease to make background dimmer." +msgstr "背景能量的倍数。增加可以使背景更亮,减少可以使背景更暗。" + +msgid "" +"Luminance of background measured in nits (candela per square meter). Only " +"used when [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] is enabled. The default value is roughly " +"equivalent to the sky at midday." +msgstr "" +"背景的亮度,单位是尼特(坎德拉/平方米)。仅当启用 [member ProjectSettings." +"rendering/lights_and_shadows/use_physical_light_units] 时使用。默认值大致相当" +"于正午时分的天空。" + msgid "The background mode. See [enum BGMode] for possible values." msgstr "背景模式。可能的取值见 [enum BGMode]。" @@ -28509,6 +30212,13 @@ msgstr "" "说不是很有用,因为天空会被照亮。设置为 [code]1.0[/code] 时,雾的颜色完全来自 " "[Sky]。设置为 [code]0.0[/code] 时,会禁用空气透视。" +msgid "" +"The [i]exponential[/i] fog density to use. Higher values result in a more " +"dense fog. Fog rendering is exponential as in real life." +msgstr "" +"要使用的[i]指数[/i]形式雾密度。值越高雾越密。雾的渲染是指数式的,和现实生活中" +"相同。" + msgid "If [code]true[/code], fog effects are enabled." msgstr "如果为 [code]true[/code],则启用雾效果。" @@ -28611,6 +30321,42 @@ msgid "" "(blurriest)." msgstr "第 7 级辉光的强度。这是最“全局”的级别(最模糊)。" +msgid "The reflected (specular) light source." +msgstr "反射(镜面反射)光源。" + +msgid "" +"If [code]true[/code], enables signed distance field global illumination for " +"meshes that have their [member GeometryInstance3D.gi_mode] set to [constant " +"GeometryInstance3D.GI_MODE_STATIC]. SDFGI is a real-time global illumination " +"technique that works well with procedurally generated and user-built levels, " +"including in situations where geometry is created during gameplay. The " +"signed distance field is automatically generated around the camera as it " +"moves. Dynamic lights are supported, but dynamic occluders and emissive " +"surfaces are not.\n" +"[b]Note:[/b] SDFGI is only supported in the Forward+ rendering method, not " +"Mobile or Compatibility.\n" +"[b]Performance:[/b] SDFGI is relatively demanding on the GPU and is not " +"suited to low-end hardware such as integrated graphics (consider " +"[LightmapGI] instead). To improve SDFGI performance, enable [member " +"ProjectSettings.rendering/global_illumination/gi/use_half_resolution] in the " +"Project Settings.\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." +msgstr "" +"如果为 [code]true[/code],则为将 [member GeometryInstance3D.gi_mode] 设置为 " +"[constant GeometryInstance3D.GI_MODE_STATIC] 的网格,启用有符号距离场全局照明" +"(即 SDFGI)。SDFGI 是一种实时全局照明技术,适用于程序生成和用户构建的关卡," +"包括在游戏过程中创建几何体的情况。有符号距离场会在相机移动时自动围绕相机生" +"成。支持动态光,但不支持动态遮挡物和自发光表面。\n" +"[b]注意:[/b]SDFGI 只支持 Forward+ 渲染方式,不支持 Mobile 或 " +"Compatibility。\n" +"[b]性能:[/b]SDFGI 对 GPU 的要求比较高,不适合集成显卡等低端硬件(可以考虑 " +"[LightmapGI])。要提高 SDFGI 性能,请在项目设置中启用 [member " +"ProjectSettings.rendering/global_illumination/gi/use_half_resolution]。\n" +"[b]注意:[/b]网格应该有足够厚的壁以避免漏光(避免单面壁)。对于内部关卡,将关" +"卡几何体放入一个足够大的盒子中,并桥接循环边以闭合网格。" + msgid "The [Sky] resource used for this [Environment]." msgstr "该 [Environment] 所使用的 [Sky] 资源。" @@ -28626,6 +30372,24 @@ msgstr "" "在AO纹理变暗的区域可见。" 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. Godot " +"uses a form of SSAO called Adaptive Screen Space Ambient Occlusion which is " +"itself a form of Horizon Based Ambient Occlusion.\n" +"[b]Note:[/b] SSAO is only supported in the Forward+ rendering method, not " +"Mobile or Compatibility." +msgstr "" +"如果为 [code]true[/code],则启用屏幕空间环境光遮蔽效果。这会使物体的角落和空" +"腔变暗,以模拟环境光像现实生活中那样不会到达整个物体。这适用于小型动态对象," +"但烘焙照明或环境光遮蔽纹理,在大型静态对象上显示环境光遮蔽方面效果更好。" +"Godot 使用一种称为自适应屏幕空间环境光遮蔽的 SSAO 形式,它本身就是一种基于地" +"平线的环境光遮蔽形式。\n" +"[b]注意:[/b]SSAO 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。" + +msgid "" "The threshold for considering whether a given point on a surface is occluded " "or not represented as an angle from the horizon mapped into the " "[code]0.0-1.0[/code] range. A value of [code]1.0[/code] results in no " @@ -28644,14 +30408,48 @@ msgstr "" "是说在直射光下无法看到其效果。高于[code]0[/code]的数值将使SSAO效果在直射光下" "可见。" +msgid "" +"If [code]true[/code], the screen-space indirect lighting effect is enabled. " +"Screen space indirect lighting is a form of indirect lighting that allows " +"diffuse light to bounce between nearby objects. Screen-space indirect " +"lighting works very similarly to screen-space ambient occlusion, in that it " +"only affects a limited range. It is intended to be used along with a form of " +"proper global illumination like SDFGI or [VoxelGI]. Screen-space indirect " +"lighting is not affected by individual light's [member Light3D." +"light_indirect_energy].\n" +"[b]Note:[/b] SSIL is only supported in the Forward+ rendering method, not " +"Mobile or Compatibility." +msgstr "" +"如果为 [code]true[/code],则启用屏幕空间间接照明效果。屏幕空间间接照明是一种" +"间接照明形式,它允许漫射光在附近的物体之间反射。屏幕空间间接照明与屏幕空间环" +"境光遮蔽的工作方式非常相似,因为它只影响有限的范围。它旨在与 SDFGI 或 " +"[VoxelGI] 等适当的全局照明形式一起使用。屏幕空间间接光照不受单个光源 [member " +"Light3D.light_indirect_energy] 的影响。\n" +"[b]注意:[/b]SSIL 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。" + msgid "The depth tolerance for screen-space reflections." msgstr "屏幕空间反射的深度公差。" msgid "" +"If [code]true[/code], screen-space reflections are enabled. Screen-space " +"reflections are more accurate than reflections from [VoxelGI]s or " +"[ReflectionProbe]s, but are slower and can't reflect surfaces occluded by " +"others.\n" +"[b]Note:[/b] SSR is only supported in the Forward+ rendering method, not " +"Mobile or Compatibility." +msgstr "" +"如果为 [code]true[/code],则启用屏幕空间反射。屏幕空间反射比来自 [VoxelGI] " +"或 [ReflectionProbe] 的反射更准确,但更慢并且不能反射被其他物体遮挡的表面。\n" +"[b]注意:[/b]SSR 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。" + +msgid "" "The maximum number of steps for screen-space reflections. Higher values are " "slower." msgstr "屏幕空间反射的最大步数。数值越高,速度越慢。" +msgid "The brightness of the emitted light from the volumetric fog." +msgstr "从体积雾发出的光的亮度。" + msgid "Clears the background using a custom clear color." msgstr "使用自定义的底色清除背景。" @@ -28719,6 +30517,101 @@ msgid "A class that stores an expression you can execute." msgstr "存储你可以执行的表达式的类。" 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" +"[codeblocks]\n" +"[gdscript]\n" +"var expression = Expression.new()\n" +"\n" +"func _ready():\n" +" $LineEdit.text_submitted.connect(self._on_text_submitted)\n" +"\n" +"func _on_text_submitted(command):\n" +" var error = expression.parse(command)\n" +" if error != OK:\n" +" print(expression.get_error_text())\n" +" return\n" +" var result = expression.execute()\n" +" if not expression.has_execute_failed():\n" +" $LineEdit.text = str(result)\n" +"[/gdscript]\n" +"[csharp]\n" +"private Expression _expression = new Expression();\n" +"\n" +"public override void _Ready()\n" +"{\n" +" GetNode<LineEdit>(\"LineEdit\").TextSubmitted += OnTextEntered;\n" +"}\n" +"\n" +"private void OnTextEntered(string command)\n" +"{\n" +" Error error = _expression.Parse(command);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.Print(_expression.GetErrorText());\n" +" return;\n" +" }\n" +" Variant result = _expression.Execute();\n" +" if (!_expression.HasExecuteFailed())\n" +" {\n" +" GetNode<LineEdit>(\"LineEdit\").Text = result.ToString();\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"表达式可以由任何算术运算、内置数学函数调用、传递实例的方法调用或内置类型构造" +"调用组成。\n" +"一个使用内置数学函数的示例表达式文本可以是 [code]sqrt(pow(3, 2) + pow(4, 2))" +"[/code]。\n" +"在下面的示例中,我们使用 [LineEdit] 节点来编写表达式并显示结果。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var expression = Expression.new()\n" +"\n" +"func _ready():\n" +" $LineEdit.text_submitted.connect(self._on_text_submitted)\n" +"\n" +"func _on_text_submitted(command):\n" +" var error = expression.parse(command)\n" +" if error != OK:\n" +" print(expression.get_error_text())\n" +" return\n" +" var result = expression.execute()\n" +" if not expression.has_execute_failed():\n" +" $LineEdit.text = str(result)\n" +"[/gdscript]\n" +"[csharp]\n" +"private Expression _expression = new Expression();\n" +"\n" +"public override void _Ready()\n" +"{\n" +" GetNode<LineEdit>(\"LineEdit\").TextSubmitted += OnTextEntered;\n" +"}\n" +"\n" +"private void OnTextEntered(string command)\n" +"{\n" +" Error error = _expression.Parse(command);\n" +" if (error != Error.Ok)\n" +" {\n" +" GD.Print(_expression.GetErrorText());\n" +" return;\n" +" }\n" +" Variant result = _expression.Execute();\n" +" if (!_expression.HasExecuteFailed())\n" +" {\n" +" GetNode<LineEdit>(\"LineEdit\").Text = result.ToString();\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +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" @@ -28730,9 +30623,6 @@ msgstr "" "如果你在 [method parse] 中定义了输入变量,你可以在输入数组中以同样的顺序指定" "它们的值。" -msgid "Returns the error text if [method parse] has failed." -msgstr "如果 [method parse] 失败了,返回错误文本。" - msgid "Returns [code]true[/code] if [method execute] has failed." msgstr "如果 [method execute] 失败,返回 [code]true[/code]。" @@ -28756,6 +30646,126 @@ msgid "Type to handle file reading and writing operations." msgstr "用于处理文件读写操作的类型。" 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" +"[codeblocks]\n" +"[gdscript]\n" +"func save(content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE)\n" +" file.store_string(content)\n" +"\n" +"func load():\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ)\n" +" var content = file.get_as_text()\n" +" return content\n" +"[/gdscript]\n" +"[csharp]\n" +"public void Save(string content)\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write);\n" +" file.StoreString(content);\n" +"}\n" +"\n" +"public string Load()\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read);\n" +" string content = file.GetAsText();\n" +" return content;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"In the example above, the file will be saved in the user data folder as " +"specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/" +"url] documentation.\n" +"[FileAccess] will close when it's freed, which happens when it goes out of " +"scope or when it gets assigned with [code]null[/code]. In C# the reference " +"must be disposed after we are done using it, this can be done with the " +"[code]using[/code] statement or calling the [code]Dispose[/code] method " +"directly.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var file = FileAccess.open(\"res://something\") # File is opened and locked " +"for use.\n" +"file = null # File is closed.\n" +"[/gdscript]\n" +"[csharp]\n" +"using var file = FileAccess.Open(\"res://something\"); // File is opened and " +"locked for use.\n" +"// The using statement calls Dispose when going out of scope.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] To access project resources once exported, it is recommended to " +"use [ResourceLoader] instead of the [FileAccess] 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" +"[codeblocks]\n" +"[gdscript]\n" +"func save(content):\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.WRITE)\n" +" file.store_string(content)\n" +"\n" +"func load():\n" +" var file = FileAccess.open(\"user://save_game.dat\", FileAccess.READ)\n" +" var content = file.get_as_text()\n" +" return content\n" +"[/gdscript]\n" +"[csharp]\n" +"public void Save(string content)\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Write);\n" +" file.StoreString(content);\n" +"}\n" +"\n" +"public string Load()\n" +"{\n" +" using var file = FileAccess.Open(\"user://save_game.dat\", FileAccess." +"ModeFlags.Read);\n" +" string content = file.GetAsText();\n" +" return content;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"在上面的例子中,文件将被保存在[url=$DOCS_URL/tutorials/io/data_paths.html]数" +"据路径[/url]文件中指定的用户数据文件夹中。\n" +"[FileAccess] 将在释放时关闭,这发生在变量超出作用域或被分配 [code]null[/" +"code] 时。在 C# 中,引用必须在我们使用完后释放,这可以通过 [code]using[/" +"code] 语句或直接调用 [code]Dispose[/code] 方法来完成。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var file = FileAccess.open(\"res://something\") # 文件已打开并锁定以供使" +"用。\n" +"file = null # 文件关闭。\n" +"[/gdscript]\n" +"[csharp]\n" +"using var file = FileAccess.Open(\"res://something\"); // 文件已打开并锁定以" +"供使用。\n" +"// using 语句在超出作用域时调用 Dispose。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]要在导出后访问项目资源,建议使用 [ResourceLoader] 而不是 " +"[FileAccess] API,因为有些文件被转换为特定于引擎的格式,并且它们的原始源文件" +"可能并不存在于导出的 PCK 包中。\n" +"[b]注意:[/b]只有当进程“正常”退出时(例如通过单击窗口管理器的关闭按钮或按 " +"[b]Alt + F4[/b]),文件才会自动关闭。如果在项目运行时按 [b]F8[/b] 停止项目执" +"行,则不会关闭文件,因为游戏进程将被杀死。可以通过定期调用 [method flush] 来" +"解决这个问题。" + +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.\n" @@ -28772,6 +30782,20 @@ msgstr "" "[code]using[/code] 语句或直接调用 [code]Dispose[/code] 方法。" 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.\n" +"For a non-static, relative equivalent, use [method DirAccess.file_exists]." +msgstr "" +"如果文件存在于给定路径中,则返回 [code]true[/code]。\n" +"[b]注意:[/b]许多资源类型是导入的(例如纹理或声音文件),它们的源资产不会包含" +"在导出的游戏中,因为只使用导入的版本。有关考虑资源重新映射的替代方法,请参阅 " +"[method ResourceLoader.exists]。\n" +"对于非静态的相对等效项,请使用 [method DirAccess.file_exists]。" + +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 "" @@ -28799,6 +30823,9 @@ msgstr "" "以整数形式返回文件中接下来的 8 位。请参阅 [method store_8],详细了解哪些值可" "以通过这种方式存储和检索。" +msgid "Returns next [param length] bytes of the file as a [PackedByteArray]." +msgstr "将文件中接下来的 [param length] 个字节作为 [PackedByteArray] 返回。" + msgid "Returns the next 64 bits from the file as a floating-point number." msgstr "将文件中接下来的 64 位作为浮点数返回。" @@ -28809,6 +30836,19 @@ msgstr "" "返回试图执行操作时发生的最后一个错误。请与 [enum Error] 中的 " "[code]ERR_FILE_*[/code] 常量比较。" +msgid "" +"Returns the whole [param path] file contents as a [PackedByteArray] without " +"any decoding." +msgstr "" +"将 [param path] 文件中的所有内容作为 [PackedByteArray] 返回,不进行任何解码。" + +msgid "" +"Returns the whole [param path] file contents as a [String]. Text is " +"interpreted as being UTF-8 encoded." +msgstr "" +"将 [param path] 文件中的所有内容作为 [String] 返回。作为 UTF-8 编码的文本解" +"析。" + msgid "Returns the next 32 bits from the file as a floating-point number." msgstr "将文件中接下来的 32 位作为浮点数返回。" @@ -28852,10 +30892,54 @@ msgid "" msgstr "" "返回一个给定路径的文件的 SHA-256 字符串,如果失败则返回一个空的 [String]。" +msgid "" +"Returns the next [Variant] value from the file. If [param allow_objects] is " +"[code]true[/code], decoding objects is allowed.\n" +"Internally, this uses the same decoding mechanism as the [method " +"@GlobalScope.bytes_to_var] method.\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] 值。如果 [param allow_objects] 为 [code]true[/" +"code],则允许解码对象。\n" +"在内部,这使用与 [method @GlobalScope.bytes_to_var] 方法相同的解码机制。\n" +"[b]警告:[/b]反序列化得到的对象可能包含被执行的代码。如果序列化的对象来自不受" +"信任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。" + msgid "Returns [code]true[/code] if the file is currently opened." msgstr "如果文件当前被打开,返回 [code]true[/code]。" msgid "" +"Creates a new [FileAccess] object and 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.\n" +"Returns [code]null[/code] if opening the file failed. You can use [method " +"get_open_error] to check the error that occurred." +msgstr "" +"创建一个新的 [FileAccess] 对象,并打开一个压缩文件以进行读取或写入。\n" +"[b]注意:[/b][method open_compressed] 只能读取 Godot 保存的文件,不能读取第三" +"方压缩格式。有关解决方法,请参阅 [url=https://github.com/godotengine/godot/" +"issues/28999]GitHub 问题 #28999[/url]。\n" +"如果打开文件失败,则返回 [code]null[/code]。可以使用 [method get_open_error] " +"来检查发生的错误。" + +msgid "" +"Creates a new [FileAccess] object and 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.\n" +"Returns [code]null[/code] if opening the file failed. You can use [method " +"get_open_error] to check the error that occurred." +msgstr "" +"创建一个新的 [FileAccess] 对象,并以写入或读取模式打开一个加密文件。需要传入" +"一个二进制密钥来加密/解密它。\n" +"[b]注意:[/b]提供的密钥必须是 32 字节长。\n" +"如果打开文件失败,则返回 [code]null[/code]。可以使用 [method get_open_error] " +"来检查发生的错误。" + +msgid "" "Changes the file reading/writing cursor to the specified position (in bytes " "from the beginning of the file)." msgstr "将文件的读/写光标改变到指定的位置(从文件开始的字节数)。" @@ -28869,6 +30953,124 @@ msgstr "" "将文件的读/写光标改变到指定的位置(从文件的末端算起,以字节为单位)。\n" "[b]注意:[/b]这是一个偏移量,所以你应该使用负数,否则光标会在文件的末端。" +msgid "" +"Stores an integer as 16 bits in the file.\n" +"[b]Note:[/b] The [param value] 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" +"[codeblocks]\n" +"[gdscript]\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 = FileAccess.open(\"user://file.dat\", FileAccess.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" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // This wraps around and stores 65494 " +"(2^16 - 42).\n" +" f.Store16(121); // In bounds, will store 121.\n" +" f.Seek(0); // Go back to start to read the stored value.\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"将一个整数以 16 位形式存储在文件中。\n" +"[b]注意:[/b][param value] 应该位于 [code][0, 2^16 - 1][/code] 区间内。任何其" +"他的值都会溢出并进行环绕。\n" +"要存储有符号的整数,请使用 [method store_64] 或者从区间 [code][-2^15, 2^15 - " +"1][/code] 中存储一个有符号的整数(即保留一位作为符号),在读取时手动计算其符" +"号。例如:\n" +"[codeblocks]\n" +"[gdscript]\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 = FileAccess.open(\"user://file.dat\", FileAccess.WRITE_READ)\n" +" f.store_16(-42) # 发生环绕,存储 65494 (2^16 - 42)。\n" +" f.store_16(121) # 在范围内,存储 121。\n" +" f.seek(0) # 回到开头,读取存储的值。\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" +"[/gdscript]\n" +"[csharp]\n" +"public override void _Ready()\n" +"{\n" +" using var f = FileAccess.Open(\"user://file.dat\", FileAccess.ModeFlags." +"WriteRead);\n" +" f.Store16(unchecked((ushort)-42)); // 发生环绕,存储 65494 (2^16 - " +"42)。\n" +" f.Store16(121); // 在范围内,存储 121。\n" +" f.Seek(0); // 回到开头,读取存储的值。\n" +" ushort read1 = f.Get16(); // 65494\n" +" ushort read2 = f.Get16(); // 121\n" +" short converted1 = (short)read1; // -42\n" +" short converted2 = (short)read2; // 121\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Stores an integer as 32 bits in the file.\n" +"[b]Note:[/b] The [param value] 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][param value] 应该位于 [code][0, 2^32 - 1][/code] 区间内。任何其" +"他的值都会溢出并环绕。\n" +"要存储有符号的整数,请使用 [method store_64],或者手动转换(见 [method " +"store_16] 的例子)。" + +msgid "" +"Stores an integer as 64 bits in the file.\n" +"[b]Note:[/b] The [param value] must lie in the interval [code][-2^63, 2^63 - " +"1][/code] (i.e. be a valid [int] value)." +msgstr "" +"将一个整数以 64 位形式存储在文件中。\n" +"[b]注意:[/b][param value] 必须位于 [code][-2^63, 2^63 - 1][/code] 的区间内" +"(即有效的 [int] 值)。" + +msgid "" +"Stores an integer as 8 bits in the file.\n" +"[b]Note:[/b] The [param value] 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][param value] 应该位于 [code][0, 255][/code] 的区间内。任何其他" +"的值都会溢出并环绕。\n" +"要存储有符号的整数,请使用 [method store_64],或者手动转换(见 [method " +"store_16] 的例子)。" + msgid "Stores the given array of bytes in the file." msgstr "在文件中存储给定的字节数组。" @@ -28890,6 +31092,28 @@ msgid "Stores a floating-point number in the file." msgstr "将浮点数存储在文件中。" msgid "" +"Stores any Variant value in the file. If [param full_objects] is [code]true[/" +"code], encoding objects is allowed (and can potentially include code).\n" +"Internally, this uses the same encoding mechanism as the [method " +"@GlobalScope.var_to_bytes] method.\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 "" +"在文件中存储任何 Variant 值。如果 [param full_objects] 为 [code]true[/code]," +"则允许编码对象(并且可能包含代码)。\n" +"在内部,这使用与 [method @GlobalScope.var_to_bytes] 方法相同的编码机制。\n" +"[b]注意:[/b]并非所有属性都包括在内。只有配置了 [constant " +"PROPERTY_USAGE_STORAGE] 标志集的属性才会被序列化。可以通过覆盖类中的 [method " +"Object._get_property_list] 方法来向属性添加新的使用标志。还可以通过调用 " +"[method Object._get_property_list] 来检查属性使用的配置方式。有关可能的使用标" +"志,请参阅 [enum PropertyUsageFlags]。" + +msgid "" "Opens the file for read operations. The cursor is positioned at the " "beginning of the file." msgstr "打开文件进行读取操作。光标位于文件的开头。" @@ -29373,6 +31597,54 @@ msgstr "返回字体样式标志,见 [enum TextServer.FontStyle]。" msgid "Returns font style name." msgstr "返回字体样式名称。" +msgid "" +"Returns the size of a bounding box of a single-line string, taking kerning, " +"advance and subpixel positioning into account. See also [method " +"get_multiline_string_size] and [method draw_string].\n" +"For example, to get the string size as displayed by a single-line Label, " +"use:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var string_size = $Label.get_theme_font(\"font\").get_string_size($Label." +"text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label." +"get_theme_font_size(\"font_size\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"Label label = GetNode<Label>(\"Label\");\n" +"Vector2 stringSize = label.GetThemeFont(\"font\").GetStringSize(label.Text, " +"HorizontalAlignment.Left, -1, label.GetThemeFontSize(\"font_size\"));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Since kerning, advance and subpixel positioning are taken into " +"account by [method get_string_size], using separate [method get_string_size] " +"calls on substrings of a string then adding the results together will return " +"a different result compared to using a single [method get_string_size] call " +"on the full string.\n" +"[b]Note:[/b] Real height of the string is context-dependent and can be " +"significantly different from the value returned by [method get_height]." +msgstr "" +"返回一个单行字符串的边界框的大小,考虑字距调整、提前量和子像素定位。另见 " +"[method get_multiline_string_size] 和 [method draw_string]。\n" +"例如,要获取单行 Label 所显示的字符串大小,请使用:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var string_size = $Label.get_theme_font(\"font\").get_string_size($Label." +"text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label." +"get_theme_font_size(\"font_size\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"Label label = GetNode<Label>(\"Label\");\n" +"Vector2 stringSize = label.GetThemeFont(\"font\").GetStringSize(label.Text, " +"HorizontalAlignment.Left, -1, label.GetThemeFontSize(\"font_size\"));\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]由于 [method get_string_size] 考虑了字距调整、提前量和子像素定" +"位,因此对字符串的子字符串使用单独的 [method get_string_size] 调用,然后将结" +"果加在一起,将返回与对完整字符串使用单个 [method get_string_size] 调用的返回" +"值不同的结果 。\n" +"[b]注意:[/b]字符串的实际高度取决于上下文,并且可能与 [method get_height] 返" +"回的值有很大不同。" + msgid "Returns list of OpenType features supported by font." msgstr "返回字体支持的 OpenType 特性列表。" @@ -29501,6 +31773,18 @@ msgstr "行顶部的额外间距,单位为像素。" msgid "A script implemented in the GDScript programming language." msgstr "用 GDScript 编程语言实现的脚本。" +msgid "" +"A script implemented in the GDScript programming language. The script " +"extends the functionality of all objects that instantiate 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] 会扩展该对象。" + msgid "GDScript documentation index" msgstr "GDScript 文档索引" @@ -29565,7 +31849,7 @@ msgstr "负方向的最小旋转,以挣脱并围绕 X 轴旋转。" msgid "" "The amount of rotational restitution across the X axis. The lower, the more " "restitution occurs." -msgstr "X 轴上的旋转恢复量。值越低,恢复量越大。" +msgstr "X 轴上的旋转恢复量。值越小,产生的恢复量越大。" msgid "The speed of all rotations across the X axis." msgstr "跨越 X 轴的所有旋转的速度。" @@ -29575,6 +31859,11 @@ msgid "" "the X axis." msgstr "正方向的最小旋转,以挣脱并绕 X 轴旋转。" +msgid "" +"The amount of rotational damping across the Y axis. The lower, the more " +"damping occurs." +msgstr "Y轴上的旋转阻尼量。值越小,产生的阻尼就越大。" + msgid "If [code]true[/code], rotation across the Y axis is limited." msgstr "如果为 [code]true[/code],则跨越 Y 轴的旋转将受到限制。" @@ -29607,6 +31896,11 @@ msgid "" "the Y axis." msgstr "正方向的最小旋转,以挣脱并绕 Y 轴旋转。" +msgid "" +"The amount of rotational damping across the Z axis. The lower, the more " +"damping occurs." +msgstr "跨越 Z 轴的旋转阻尼量。值越小,产生的阻尼就越大。" + msgid "If [code]true[/code], rotation across the Z axis is limited." msgstr "如果为 [code]true[/code],则跨越 Z 轴的旋转将受到限制。" @@ -29863,6 +32157,66 @@ msgstr "" "个点相同。" msgid "" +"Inflates or deflates [param polygon] by [param delta] units (pixels). If " +"[param delta] is positive, makes the polygon grow outward. If [param delta] " +"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 [param delta] 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 [param join_type], " +"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, multiply them " +"to a [Transform2D]:\n" +"[codeblocks]\n" +"[gdscript]\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) * polygon\n" +"print(polygon) # prints [(50, 50), (150, 50), (150, 150), (50, 150)]\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new " +"Vector2(100, 100), new Vector2(0, 100) };\n" +"var offset = new Vector2(50, 50);\n" +"polygon = new Transform2D(0, offset) * polygon;\n" +"GD.Print((Variant)polygon); // prints [(50, 50), (150, 50), (150, 150), (50, " +"150)]\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"按 [param delta] 单位(像素)膨胀或缩小 [param polygon]。如果 [param delta] " +"为正,则使多边形向外增长。如果 [param delta] 为负,则使多边形向内收缩。返回一" +"个多边形数组,因为膨胀/收缩可能会产生多个离散的多边形。如果 [param delta] 为" +"负,且其绝对值大约超过多边形的最小边界矩形尺寸,则返回一个空数组。\n" +"每个多边形的顶点将根据 [param join_type] 决定进行舍入,参见 [enum " +"PolyJoinType]。\n" +"该操作可能会产生一个外部多边形(边界)和内部多边形(孔),这可以通过调用 " +"[method is_polygon_clockwise] 来区分。\n" +"[b]注意:[/b]要具体平移多边形的顶点,将它们乘以一个 [Transform2D]:\n" +"[codeblocks]\n" +"[gdscript]\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) * polygon\n" +"print(polygon) # 输出 [(50, 50), (150, 50), (150, 150), (50, 150)]\n" +"[/gdscript]\n" +"[csharp]\n" +"var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new " +"Vector2(100, 100), new Vector2(0, 100) };\n" +"var offset = new Vector2(50, 50);\n" +"polygon = new Transform2D(0, offset) * polygon;\n" +"GD.Print((Variant)polygon); // 输出 [(50, 50), (150, 50), (150, 150), (50, " +"150)]\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" "Create regions where either subject or clip polygons (or both) are filled." msgstr "创建区域,其中主体或剪辑多边形(或两者)被填充。" @@ -29947,9 +32301,9 @@ msgid "" "level of detail at farther distances.\n" "Useful for testing level of detail transitions in the editor." msgstr "" -"改变网格过渡到较低细节层次的速度。值为 0 将强制网格达到最低细节层次,值为 1 " -"将使用默认设置,更大的值将使网格在更远的距离处保持更高的细节层次。\n" -"对于测试编辑器中的细节层次的过渡很有用。" +"改变网格过渡到较低细节级别的速度。值为 0 将强制网格达到最低细节级别,值为 1 " +"将使用默认设置,更大的值将使网格在更远的距离处保持更高的细节级别。\n" +"对于测试编辑器中的细节级别的过渡很有用。" msgid "" "The material overlay for the whole geometry.\n" @@ -29982,6 +32336,70 @@ msgstr "代表 [enum LightmapScale] 枚举的大小。" msgid "Represents a GLTF camera." msgstr "代表 GLTF 相机。" +msgid "Represents a camera as defined by the base GLTF spec." +msgstr "代表基础 GLTF 规格中定义的相机。" + +msgid "GLTF camera detailed specification" +msgstr "GLTF 相机的详细规格" + +msgid "GLTF camera spec and example file" +msgstr "GLTF 相机规格和示例文件" + +msgid "Creates a new GLTFCamera instance by parsing the given [Dictionary]." +msgstr "通过解析给定的 [Dictionary] 新建 GLTFCamera 实例。" + +msgid "Create a new GLTFCamera instance from the given Godot [Camera3D] node." +msgstr "从给定的 Godot [Camera3D] 节点新建 GLTFCamera 实例。" + +msgid "Serializes this GLTFCamera instance into a [Dictionary]." +msgstr "将这个 GLTFCamera 实例序列化为 [Dictionary]。" + +msgid "Converts this GLTFCamera instance into a Godot [Camera3D] node." +msgstr "将这个 GLTFCamera 实例转换为 Godot [Camera3D] 节点。" + +msgid "" +"The distance to the far culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to GLTF's [code]zfar[/code] property." +msgstr "" +"该相机与远剔除边界的距离,相对于其本地 Z 轴,单位为米。映射到 GLTF 的 " +"[code]zfar[/code] 属性。" + +msgid "" +"The distance to the near culling boundary for this camera relative to its " +"local Z axis, in meters. This maps to GLTF's [code]znear[/code] property." +msgstr "" +"该相机与近剔除边界的距离,相对于其本地 Z 轴,单位为米。映射到 GLTF 的 " +"[code]znear[/code] 属性。" + +msgid "" +"The FOV of the camera. This class and GLTF define the camera FOV in radians, " +"while Godot uses degrees. This maps to GLTF's [code]yfov[/code] property. " +"This value is only used for perspective cameras, when [member perspective] " +"is true." +msgstr "" +"该相机的 FOV。这个类和 GLTF 在定义相机 FOV 时使用的都是弧度,但 Godot 使用的" +"是度。映射到 GLTF 的 [code]yfov[/code] 属性。只在透视相机中使用,即 [member " +"perspective] 为 true 时。" + +msgid "" +"Whether or not the camera is in perspective mode. If false, the camera is in " +"orthographic/orthogonal mode. This maps to GLTF's camera [code]type[/code] " +"property. See [member Camera3D.projection] and the GLTF spec for more " +"information." +msgstr "" +"该相机是否处于透视模式。如果为 false,则该相机处于正交模式。映射到 GLTF 的相" +"机 [code]type[/code] 属性。详情见 [member Camera3D.projection] 及 GLTF 规格。" + +msgid "" +"The size of the camera. This class and GLTF define the camera size magnitude " +"as a radius in meters, while Godot defines it as a diameter in meters. This " +"maps to GLTF's [code]ymag[/code] property. This value is only used for " +"orthographic/orthogonal cameras, when [member perspective] is false." +msgstr "" +"该相机的大小。这个类和 GLTF 在定义相机大小尺度时使用的都是半径的米数,但 " +"Godot 使用的是直径的米数。映射到 GLTF 的 [code]ymag[/code] 属性。只在正交相机" +"中使用,即 [member perspective] 为 false 时。" + msgid "[GLTFDocument] extension class." msgstr "[GLTFDocument] 扩展类。" @@ -30309,6 +32727,78 @@ msgstr "" "纹理的填充从偏移量 [member fill_from] 开始到 [member fill_to],两个方向都按照" "相同的模式镜像重复。" +msgid "" +"[b]Note:[/b] Please be aware that this node will undergo extensive " +"refactoring in a future 4.x version involving compatibility-breaking API " +"changes.\n" +"GraphEdit provides tools for creation, manipulation, and display of various " +"graphs. Its main purpose in the engine is to power the visual programming " +"systems, such as visual shaders, but it is also available for use in user " +"projects.\n" +"GraphEdit by itself is only an empty container, representing an infinite " +"grid where [GraphNode]s can be placed. Each [GraphNode] represent a node in " +"the graph, a single unit of data in the connected scheme. GraphEdit, in " +"turn, helps to control various interactions with nodes and between nodes. " +"When the user attempts to connect, disconnect, or close a [GraphNode], a " +"signal is emitted in the GraphEdit, but no action is taken by default. It is " +"the responsibility of the programmer utilizing this control to implement the " +"necessary logic to determine how each request should be handled.\n" +"[b]Performance:[/b] It is greatly advised to enable low-processor usage mode " +"(see [member OS.low_processor_usage_mode]) when using GraphEdits." +msgstr "" +"[b]注意:[/b]请注意,此节点将在未来的 4.x 版本中进行大量重构,其中涉及破坏兼" +"容性的 API 更改。\n" +"GraphEdit 提供了用于创建、操作和显示各种图形的工具。它在引擎中的主要目的是为" +"可视化编程系统提供动力,例如可视化着色器,但它也可以在用户项目中使用。\n" +"GraphEdit 本身只是一个空容器,表示一个可以放置 [GraphNode] 的无限栅格。每个 " +"[GraphNode] 代表图形中的一个节点,是连接方案中的单个数据单元。反过来," +"GraphEdit 有助于控制与节点和节点之间的各种交互。当用户尝试连接、断开或关闭 " +"[GraphNode] 时,GraphEdit 中会发出一个信号,但默认情况下不执行任何操作。使用" +"此控件的程序员有责任实施必要的逻辑,来确定应如何处理每个请求。\n" +"[b]性能:[/b]强烈建议在使用 GraphEdit 时启用低处理器使用模式(参见 [member " +"OS.low_processor_usage_mode])。" + +msgid "" +"This virtual method can be used to insert additional error detection while " +"the user is dragging a connection over a valid port.\n" +"Return [code]true[/code] if the connection is indeed valid or return " +"[code]false[/code] if the connection is impossible. If the connection is " +"impossible, no snapping to the port and thus no connection request to that " +"port will happen.\n" +"In this example a connection to same node is suppressed:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _is_node_hover_valid(from, from_port, to, to_port):\n" +" return from != to\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, " +"StringName toNode, int toPort)\n" +"{\n" +" return fromNode != toNode;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"当用户在有效端口上拖动连接时,该虚拟方法可用于插入额外的错误检测。\n" +"如果连接确实有效,则返回 [code]true[/code];如果连接不可能,则返回 " +"[code]false[/code]。如果连接是不可能的,则不会捕捉到该端口,因此不会发起对该" +"端口的连接请求。\n" +"在该示例中,抑制了与同一节点的连接:\n" +"[codeblocks]\n" +"[gdscript]\n" +"func _is_node_hover_valid(from, from_port, to, to_port):\n" +" return from != to\n" +"[/gdscript]\n" +"[csharp]\n" +"public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, " +"StringName toNode, int toPort)\n" +"{\n" +" return fromNode != toNode;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Removes all connections between nodes." msgstr "移除节点之间的所有连接。" @@ -30431,6 +32921,49 @@ msgstr "吸附动按钮的图标。" msgid "The background drawn under the grid." msgstr "绘制在栅格下方的背景。" +msgid "" +"[b]Note:[/b] Please be aware that this node will undergo extensive " +"refactoring in a future 4.x version involving compatibility-breaking API " +"changes.\n" +"GraphNode allows to create nodes for a [GraphEdit] graph with customizable " +"content based on its child [Control]s. GraphNode is a [Container] and is " +"responsible for placing its children on screen. This works similar to " +"[VBoxContainer]. Children, in turn, provide GraphNode with so-called slots, " +"each of which can have a connection port on either side. This is similar to " +"how [TabContainer] uses children to create the tabs.\n" +"Each GraphNode slot is defined by its index and can provide the node with up " +"to two ports: one on the left, and one on the right. By convention the left " +"port is also referred to as the input port and the right port is referred to " +"as the output port. Each port can be enabled and configured individually, " +"using different type and color. The type is an arbitrary value that you can " +"define using your own considerations. The parent [GraphEdit] will receive " +"this information on each connect and disconnect request.\n" +"Slots can be configured in the Inspector dock once you add at least one " +"child [Control]. The properties are grouped by each slot's index in the " +"\"Slot\" section.\n" +"[b]Note:[/b] While GraphNode is set up using slots and slot indices, " +"connections are made between the ports which are enabled. Because of that " +"[GraphEdit] uses port's index and not slot's index. You can use [method " +"get_connection_input_slot] and [method get_connection_output_slot] to get " +"the slot index from the port index." +msgstr "" +"[b]注意:[/b]请注意,此节点将在未来的 4.x 版本中进行大量重构,其中涉及破坏兼" +"容性的 API 更改。\n" +"GraphNode 允许为 [GraphEdit] 图形创建节点,并根据其子 [Control] 定制内容。" +"GraphNode 是一个 [Container] 并负责将其子节点放置在屏幕上。这类似于 " +"[VBoxContainer]。反过来,子节点为 GraphNode 提供所谓的插槽,每个插槽的两侧都" +"可以有一个连接端口。这类似于 [TabContainer] 使用子项创建选项卡的方式。\n" +"每个 GraphNode 插槽由其索引定义,并且可以为节点提供最多两个端口:一个在左侧," +"一个在右侧。按照惯例,左侧端口也被称为输入端口,右侧端口被称为输出端口。每个" +"端口都可以单独启用和配置,以使用不同的类型和颜色。该类型是您可以根据自己的考" +"虑来定义的任意值。父 [GraphEdit] 将在每个连接和断开连接请求中收到此信息。\n" +"添加至少一个子 [Control] 后,可以在检查器停靠面板中配置插槽。这些属性在“插" +"槽”部分中按每个插槽的索引进行分组。\n" +"[b]注意:[/b]虽然 GraphNode 是使用插槽和插槽索引设置的,但连接是在启用的端口" +"之间建立的。因为 [GraphEdit] 使用端口的索引,而不是插槽的索引。可以使用 " +"[method get_connection_input_slot] 和 [method get_connection_output_slot] 从" +"端口索引中获取插槽索引。" + msgid "Disables all input and output slots of the GraphNode." msgstr "禁用 GraphNode 的所有输入和输出槽。" @@ -30650,6 +33183,18 @@ msgid "Clear all cells." msgstr "清除所有单元格。" msgid "" +"Returns the [RID] of the navigation map this GridMap node uses for its cell " +"baked navigation meshes.\n" +"This function returns always the map set on the GridMap node and not the map " +"on the NavigationServer. If the map is changed directly with the " +"NavigationServer API the GridMap node will not be aware of the map change." +msgstr "" +"返回该 GridMap 节点用于其单元格烘焙导航网格的导航地图的 [RID]。\n" +"该函数始终返回在 GridMap 节点上设置的地图,而不是 NavigationServer 上的地图。" +"如果直接使用 NavigationServer API 更改地图,则 GridMap 节点将不会感知到地图的" +"更改。" + +msgid "" "Returns an array of [Vector3] with the non-empty cell coordinates in the " "grid map." msgstr "返回一个包含网格中非空单元格坐标的 [Vector3] 数组。" @@ -30751,6 +33296,114 @@ msgstr "沟槽的长度。沟槽是从关键原点沿着关节局部 Y 轴朝向 msgid "Context to compute cryptographic hashes over multiple iterations." msgstr "在多次迭代中计算加密哈希的上下文。" +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" +"[codeblocks]\n" +"[gdscript]\n" +"const CHUNK_SIZE = 1024\n" +"\n" +"func hash_file(path):\n" +" # Check that file exists.\n" +" if not FileAccess.file_exists(path):\n" +" return\n" +" # Start a SHA-256 context.\n" +" var ctx = HashingContext.new()\n" +" ctx.start(HashingContext.HASH_SHA256)\n" +" # Open the file to hash.\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" # Update the context after reading each chunk.\n" +" while not file.eof_reached():\n" +" ctx.update(file.get_buffer(CHUNK_SIZE))\n" +" # Get the computed hash.\n" +" var res = ctx.finish()\n" +" # Print the result as hex string and array.\n" +" printt(res.hex_encode(), Array(res))\n" +"[/gdscript]\n" +"[csharp]\n" +"public const int ChunkSize = 1024;\n" +"\n" +"public void HashFile(string path)\n" +"{\n" +" // Check that file exists.\n" +" if (!FileAccess.FileExists(path))\n" +" {\n" +" return;\n" +" }\n" +" // Start a SHA-256 context.\n" +" var ctx = new HashingContext();\n" +" ctx.Start(HashingContext.HashType.Sha256);\n" +" // Open the file to hash.\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" // Update the context after reading each chunk.\n" +" while (!file.EofReached())\n" +" {\n" +" ctx.Update(file.GetBuffer(ChunkSize));\n" +" }\n" +" // Get the computed hash.\n" +" byte[] res = ctx.Finish();\n" +" // Print the result as hex string and array.\n" +" GD.PrintT(res.HexEncode(), (Variant)res);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"HashingContext 类提供了一个接口,用于在多次迭代中计算加密哈希值。这在计算大文" +"件的哈希值(因此不必将它们全部加载到内存中)、网络流、和一般数据流(因此不必" +"持有缓冲区)时很有用。\n" +"[enum HashType] 枚举显示了支持的哈希算法。\n" +"[codeblocks]\n" +"[gdscript]\n" +"const CHUNK_SIZE = 1024\n" +"\n" +"func hash_file(path):\n" +" # 检查文件是否存在。\n" +" if not FileAccess.file_exists(path):\n" +" return\n" +" # 启动一个 SHA-256 上下文。\n" +" var ctx = HashingContext.new()\n" +" ctx.start(HashingContext.HASH_SHA256)\n" +" # 打开文件进行哈希处理。\n" +" var file = FileAccess.open(path, FileAccess.READ)\n" +" # 读取每个块后更新上下文。\n" +" while not file.eof_reached():\n" +" ctx.update(file.get_buffer(CHUNK_SIZE))\n" +" # 获取计算的哈希值。\n" +" var res = ctx.finish()\n" +" # 将结果打印为十六进制字符串和数组。\n" +" printt(res.hex_encode(), Array(res))\n" +"[/gdscript]\n" +"[csharp]\n" +"public const int ChunkSize = 1024;\n" +"\n" +"public void HashFile(string path)\n" +"{\n" +" // 检查文件是否存在。\n" +" if (!FileAccess.FileExists(path))\n" +" {\n" +" return;\n" +" }\n" +" // 启动一个 SHA-256 上下文。\n" +" var ctx = new HashingContext();\n" +" ctx.Start(HashingContext.HashType.Sha256);\n" +" // 打开文件进行哈希处理。\n" +" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n" +" // 读取每个块后更新上下文。\n" +" while (!file.EofReached())\n" +" {\n" +" ctx.Update(file.GetBuffer(ChunkSize));\n" +" }\n" +" // 获取计算的哈希值。\n" +" byte[] res = ctx.Finish();\n" +" // 将结果打印为十六进制字符串和数组。\n" +" GD.PrintT(res.HexEncode(), (Variant)res);\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Closes the current context, and return the computed hash." msgstr "关闭当前上下文,并返回计算出的哈希值。" @@ -31088,6 +33741,75 @@ msgstr "在中间区域绘制的抓取图标。" msgid "Low-level hyper-text transfer protocol client." msgstr "低级别的超文本传输协议客户端。" +msgid "" +"Hyper-text transfer protocol client (sometimes called \"User Agent\"). Used " +"to make HTTP requests to download web content, upload files and other data " +"or to communicate with various services, among other use cases.\n" +"See the [HTTPRequest] node for a higher-level alternative.\n" +"[b]Note:[/b] This client only needs to connect to a host once (see [method " +"connect_to_host]) to send multiple requests. Because of this, methods that " +"take URLs usually take just the part after the host instead of the full URL, " +"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 " +"Transport Layer Security (TLS), including 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 exporting to Android, make sure to enable the " +"[code]INTERNET[/code] permission in the Android export preset before " +"exporting the project or using one-click deploy. Otherwise, network " +"communication of any kind will be blocked by Android.\n" +"[b]Note:[/b] It's recommended to use transport encryption (TLS) and to avoid " +"sending sensitive information (such as login credentials) in HTTP GET URL " +"parameters. Consider using HTTP POST requests or HTTP headers for such " +"information instead.\n" +"[b]Note:[/b] When performing HTTP requests from a project exported to Web, " +"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] 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] 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 请求以下载网络内" +"容,上传文件和其他数据、或与各种服务通信,以及其他用例。\n" +"请参阅 [HTTPRequest] 节点以获取更高级别的替代方案。\n" +"[b]注意:[/b]这个客户端只需要连接一个主机一次(见[method connect_to_host])," +"就可以发送多个请求。因此,使用 URL 的方法通常只使用主机后面的部分而不是完整" +"的 URL,因为客户端已经连接到主机。请参阅 [method request] 以获取完整示例并开" +"始使用。\n" +"[HTTPClient] 应该在多个请求之间重用、或连接到不同的主机,而不是为每个请求创建" +"一个客户端。支持传输层安全 (TLS),包括服务器证书验证。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]导出到 Android 时,在导出项目或使用一键部署前,请确保在 Android " +"导出预设中启用 [code]INTERNET[/code] 权限。否则,任何类型的网络通信都将被 " +"Android 阻止。\n" +"[b]注意:[/b]建议使用传输加密(TLS)并避免在 HTTP GET URL 参数中发送敏感信息" +"(例如登录凭据)。考虑改用 HTTP POST 请求或 HTTP 标头来获取此类信息。\n" +"[b]注意:[/b]当从导出到 Web 的项目执行 HTTP 请求时,请记住,由于 " +"[url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url],远程" +"服务器可能不允许来自站外的请求。如果托管到有问题的服务器,应该修改其后台,以" +"通过添加 [code]Access-Control-Allow-Origin: *[/code] HTTP 标头来允许来自站外" +"的请求。\n" +"[b]注意:[/b]TLS 支持目前仅限于 TLS 1.0、TLS 1.1 和 TLS 1.2。尝试连接到仅支" +"持 TLS 1.3 的服务器时将返回一个错误。\n" +"[b]警告:[/b]目前不支持 TLS 证书撤销和证书绑定。只要吊销的证书在其他方面有" +"效,就会被接受。如果这是一个问题,您可能希望使用有效期较短的自动管理的证书。" + msgid "HTTP client class" msgstr "HTTP 客户端类" @@ -31098,6 +33820,20 @@ msgid "Closes the current connection, allowing reuse of this [HTTPClient]." msgstr "关闭当前连接,允许重用此[HTTPClient]。" msgid "" +"Connects to a host. This needs to be done before any requests are sent.\n" +"If no [param port] is specified (or [code]-1[/code] is used), it is " +"automatically set to 80 for HTTP and 443 for HTTPS. You can pass the " +"optional [param tls_options] parameter to customize the trusted " +"certification authorities, or the common name verification when using HTTPS. " +"See [method TLSOptions.client] and [method TLSOptions.client_unsafe]." +msgstr "" +"连接到主机。这需要在发送任何请求之前完成。\n" +"如果未指定 [param port](或使用 [code]-1[/code]),则自动将其设置为 80(用于 " +"HTTP)和 443(用于 HTTPS)。可以传入可选的 [param tls_options] 参数来自定义受" +"信任的证书颁发机构,或者使用 HTTPS 时的通用名称验证。请参阅 [method " +"TLSOptions.client] 和 [method TLSOptions.client_unsafe]。" + +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, " @@ -31153,6 +33889,80 @@ msgid "" "results with [method get_status]." msgstr "调用此方法才能对请求进行处理。使用 [method get_status] 获取检查。" +msgid "" +"Generates a GET/POST application/x-www-form-urlencoded style query string " +"from a provided dictionary, e.g.:\n" +"[codeblocks]\n" +"[gdscript]\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" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } };\n" +"string queryString = httpClient.QueryStringFromDict(fields);\n" +"// Returns \"username=user&password=pass\"\n" +"[/csharp]\n" +"[/codeblocks]\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" +"[codeblocks]\n" +"[gdscript]\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¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary\n" +"{\n" +" { \"single\", 123 },\n" +" { \"notValued\", default },\n" +" { \"multiple\", new Godot.Collections.Array { 22, 33, 44 } },\n" +"};\n" +"string queryString = httpClient.QueryStringFromDict(fields);\n" +"// Returns \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"从提供的字典生成 GET/POST application/x-www-form-urlencoded 样式的查询字符" +"串,例如:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fields = {\"username\": \"user\", \"password\": \"pass\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"# 返回 \"username=user&password=pass\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary { { \"username\", \"user\" }, " +"{ \"password\", \"pass\" } };\n" +"string queryString = httpClient.QueryStringFromDict(fields);\n" +"// 返回 \"username=user&password=pass\"\n" +"[/csharp]\n" +"[/codeblocks]\n" +"此外,如果键具有 [code]null[/code] 值,则仅添加键本身,而不添加等号和值。如果" +"该值是一个数组,则添加该相同键,与其中的每个值组成一对。\n" +"[codeblocks]\n" +"[gdscript]\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¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var fields = new Godot.Collections.Dictionary\n" +"{\n" +" { \"single\", 123 },\n" +" { \"notValued\", default },\n" +" { \"multiple\", new Godot.Collections.Array { 22, 33, 44 } },\n" +"};\n" +"string queryString = httpClient.QueryStringFromDict(fields);\n" +"// 返回 \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Reads one chunk from the response." msgstr "从响应中读取一块数据。" @@ -32949,6 +35759,22 @@ msgstr "" "通道 9 是为打击乐器保留的,其余通道供非打击乐器使用。" msgid "" +"If the message is [constant MIDI_MESSAGE_CONTROL_CHANGE], this indicates the " +"controller number, otherwise this is zero. Controllers include devices such " +"as pedals and levers." +msgstr "" +"如果消息是 [constant MIDI_MESSAGE_CONTROL_CHANGE],则表示控制器号,否则为零。" +"控制器包含踏板、推杆等设备。" + +msgid "" +"If the message is [constant MIDI_MESSAGE_CONTROL_CHANGE], this indicates the " +"controller value, otherwise this is zero. Controllers include devices such " +"as pedals and levers." +msgstr "" +"如果消息是 [constant MIDI_MESSAGE_CONTROL_CHANGE],则表示控制器值,否则为零。" +"控制器包含踏板、推杆等设备。" + +msgid "" "The instrument of this input event. This value ranges from 0 to 127. Refer " "to the instrument list on the General MIDI wikipedia article to see a list " "of instruments, except that this value is 0-index, so subtract one from " @@ -32960,6 +35786,28 @@ msgstr "" "都减一。标准钢琴的乐器号为 0。" msgid "" +"Returns a value indicating the type of message for this MIDI signal. This is " +"a member of the [enum MIDIMessage] enum.\n" +"For MIDI messages between 0x80 and 0xEF, only the left half of the bits are " +"returned as this value, as the other part is the channel (ex: 0x94 becomes " +"0x9). For MIDI messages from 0xF0 to 0xFF, the value is returned as-is.\n" +"Notes will return [constant MIDI_MESSAGE_NOTE_ON] when activated, but they " +"might not always return [constant MIDI_MESSAGE_NOTE_OFF] when deactivated, " +"therefore your code should treat the input as stopped if some period of time " +"has passed.\n" +"For more information, see the MIDI message status byte list chart linked " +"above." +msgstr "" +"返回表示这个 MIDI 信号类型的值,是 [enum MIDIMessage] 枚举的成员。\n" +"对于在 0x80 和 0xEF 之间的 MIDI 消息,这个值返回的是左半部分的比特位,另一半" +"是通道(例:0x94 会变成 0x9)。对于在 0xF0 到 0xFF 之间的 MIDI 消息,这个值是" +"原样返回的。\n" +"激活音符时会返回 [constant MIDI_MESSAGE_NOTE_ON],但失活时并不一定会返回 " +"[constant MIDI_MESSAGE_NOTE_OFF],因此你的代码应该在经过一段时间后将输入处理" +"为停止。\n" +"更多消息请参阅上面链接的 MIDI 消息状态字节列表。" + +msgid "" "The pitch index number of this MIDI signal. This value ranges from 0 to 127. " "On a piano, middle C is 60, and A440 is 69, see the \"MIDI note\" column of " "the piano key frequency chart on Wikipedia for more information." @@ -32972,6 +35820,19 @@ msgid "" "devices, this value is always zero." msgstr "MIDI 信号的压力。这个值在 0 到 127 之间。对于很多设备,这个值总是 0。" +msgid "" +"The velocity of the MIDI signal. This value ranges from 0 to 127. For a " +"piano, this corresponds to how quickly the key was pressed, and is rarely " +"above about 110 in practice. Note that some MIDI devices may send a " +"[constant MIDI_MESSAGE_NOTE_ON] message with zero velocity and expect this " +"to be treated the same as a [constant MIDI_MESSAGE_NOTE_OFF] message, but " +"device implementations vary so Godot reports event data exactly as received." +msgstr "" +"MIDI 信号的速度。这个值在 0 到 127 之间。对于钢琴,这对应的是按键有多块,实际" +"很少超过 110。请注意,部分 MIDI 设备可能会发送速度为零的 [constant " +"MIDI_MESSAGE_NOTE_ON] 并期望进行和 [constant MIDI_MESSAGE_NOTE_OFF] 一样的处" +"理,但因设备实现而异,所以 Godot 会原样汇报事件数据。" + msgid "Base input event type for mouse events." msgstr "鼠标事件的基本输入事件类型。" @@ -32979,6 +35840,11 @@ msgid "Stores general mouse events information." msgstr "存储一般的鼠标事件信息。" msgid "" +"The mouse button mask identifier, one of or a bitwise combination of the " +"[enum MouseButton] button masks." +msgstr "鼠标按键掩码标识符,[enum MouseButton] 按钮掩码或将其按位组合。" + +msgid "" "When received in [method Node._input] or [method Node._unhandled_input], " "returns the mouse's position in the root [Viewport] using the coordinate " "system of the root [Viewport].\n" @@ -33012,6 +35878,11 @@ msgstr "包含鼠标点击信息。见 [method Node._input]。" msgid "Mouse and input coordinates" msgstr "鼠标和输入坐标" +msgid "" +"The mouse button identifier, one of the [enum MouseButton] button or button " +"wheel constants." +msgstr "鼠标按键标识符,[enum MouseButton] 按钮或按钮滚轮常量。" + msgid "If [code]true[/code], the mouse button's state is a double-click." msgstr "如果为 [code]true[/code],鼠标按钮的状态是双击。" @@ -33036,6 +35907,25 @@ msgid "Input event type for mouse motion events." msgstr "鼠标移动事件的输入事件类型。" msgid "" +"Contains mouse and pen motion information. Supports relative, absolute " +"positions and velocity. 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, set [member Input." +"use_accumulated_input] to [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]默认情况下,该事件每个渲染帧最多只会发出一个。如果你需要更精确的" +"输入汇报,请将 [member Input.use_accumulated_input] 设置为 [code]false[/" +"code],尽可能频繁地发出事件。如果你使用 InputEventMouseMotion 来画线,请考虑" +"同时实现[url=https://zh.wikipedia.org/zh-cn/" +"%E5%B8%83%E9%9B%B7%E6%A3%AE%E6%BC%A2%E5%A7%86%E7%9B%B4%E7%B7%9A%E6%BC%94%E7%AE%97%E6%B3%95]" +"布雷森汉姆直线算法[/url],以避免在用户快速移动鼠标时出现可见的线条空隙。" + +msgid "" "Returns [code]true[/code] when using the eraser end of a stylus pen.\n" "[b]Note:[/b] This property is implemented on Linux, macOS and Windows." msgstr "" @@ -33234,6 +36124,22 @@ msgstr "" msgid "Removes an action from the [InputMap]." msgstr "从 [InputMap] 中删除一个动作。" +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 [param exact_match] is [code]false[/code], it ignores additional input " +"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the " +"direction for [InputEventJoypadMotion] events." +msgstr "" +"如果给定的事件是现有动作的一部分,返回 [code]true[/code]。如果给定的 " +"[InputEvent] 没有被按下,这个方法会忽略键盘(为了正确地检测释放)。如果你不想" +"要这种行为,请参阅 [method action_has_event]。\n" +"如果 [param exact_match] 是 [code]false[/code],它会忽略 [InputEventKey] 和 " +"[InputEventMouseButton] 事件的额外输入修饰符,以及 [InputEventJoypadMotion] " +"事件的方向。" + msgid "Returns an array of all actions in the [InputMap]." msgstr "返回 [InputMap] 中所有动作的数组。" @@ -33253,6 +36159,27 @@ msgid "Placeholder for the root [Node] of a [PackedScene]." msgstr "[PackedScene] 根 [Node] 的占位符。" msgid "" +"Turning on the option [b]Load As Placeholder[/b] for an instantiated scene " +"in the editor causes it to be replaced by an [InstancePlaceholder] when " +"running the game, this will not replace the node in the editor. This makes " +"it possible to delay actually loading the scene until calling [method " +"create_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] 不具备变换属性。因此任何子节点都会相对于 [Viewport] 从 " +"(0, 0) 点开始定位,而不是在编辑器中显示的父节点。用一个具有变换属性的场景来替" +"换占位符,将使子节点再次相对于它们的父节点进行变换。" + +msgid "" "Call this method to actually load in the node. The created node will be " "placed as a sibling [i]above[/i] the [InstancePlaceholder] in the scene " "tree. The [Node]'s reference is also returned for convenience.\n" @@ -33265,6 +36192,27 @@ msgstr "" "[b]注意:[/b][method create_instance] 不是线程安全的。从线程中调用时请使用 " "[method Object.call_deferred]。" +msgid "" +"Gets the path to the [PackedScene] resource file that is loaded by default " +"when calling [method create_instance]. Not thread-safe. Use [method Object." +"call_deferred] if calling from a thread." +msgstr "" +"获取调用 [method create_instance] 时默认加载的 [PackedScene] 资源文件的路径。" +"不是线程安全的。如果从线程调用,请使用 [method Object.call_deferred]。" + +msgid "" +"Returns the list of properties that will be applied to the node when [method " +"create_instance] is called.\n" +"If [param with_order] is [code]true[/code], a key named [code].order[/code] " +"(note the leading period) is added to the dictionary. This [code].order[/" +"code] key is an [Array] of [String] property names specifying the order in " +"which properties will be applied (with index 0 being the first)." +msgstr "" +"返回在调用 [method create_instance] 时会应用到节点上的属性列表。\n" +"如果 [param with_order] 为 [code]true[/code],会在字典中加入 [code].order[/" +"code] 字段(注意有个前缀的点)。这个 [code].order[/code] 字段是属性名称 " +"[String] 的 [Array],指定属性的应用顺序(索引为 0 的是第一个)。" + msgid "Integer built-in type." msgstr "整数内置类型。" @@ -33661,9 +36609,44 @@ msgstr "" msgid "Creates an idle interval in a [Tween] animation." msgstr "在 [Tween] 动画中创建空闲间隔。" +msgid "" +"[IntervalTweener] is used to make delays in a tweening sequence. See [method " +"Tween.tween_interval] for more usage information.\n" +"[b]Note:[/b] [method Tween.tween_interval] is the only correct way to create " +"[IntervalTweener]. Any [IntervalTweener] created manually will not function " +"correctly." +msgstr "" +"[IntervalTweener] 可用于在补间序列中制作延迟。更多用法信息请参阅 [method " +"Tween.tween_interval]。\n" +"[b]注意:[/b]创建 [IntervalTweener] 的唯一正确方法是 [method Tween." +"tween_interval]。任何手动创建的 [IntervalTweener] 都无法正常工作。" + msgid "Internet protocol (IP) support functions such as DNS resolution." msgstr "网际协议(IP)支持函数,如 DNS 解析。" +msgid "" +"IP contains support functions for the Internet Protocol (IP). TCP/IP support " +"is in different classes (see [StreamPeerTCP] and [TCPServer]). IP provides " +"DNS hostname resolution support, both blocking and threaded." +msgstr "" +"IP 包含网际协议(IP)的支持函数。TCP/IP 的支持在其他类中(请参阅 " +"[StreamPeerTCP] 和 [TCPServer])。IP 提供 DNS 主机名解析支持,包括阻塞式和线" +"程式。" + +msgid "" +"Removes all of a [param hostname]'s cached references. If no [param " +"hostname] is given, all cached IP addresses are removed." +msgstr "" +"移除所有 [param hostname] 主机名的缓存引用。如果没有给出 [param hostname],所" +"有缓存的 IP 地址将被删除。" + +msgid "" +"Removes a given item [param id] from the queue. This should be used to free " +"a queue after it has completed to enable more queries to happen." +msgstr "" +"从队列中删除一个给定的项目 [param id]。这应该被用来在队列完成后释放队列,以便" +"进行更多的查询。" + msgid "Returns all the user's current IPv4 and IPv6 addresses as an array." msgstr "以数组形式返回所有用户的当前 IPv4 和 IPv6 地址。" @@ -33692,12 +36675,51 @@ msgstr "" "[/codeblock]" msgid "" +"Returns a queued hostname's IP address, given its queue [param id]. Returns " +"an empty string on error or if resolution hasn't happened yet (see [method " +"get_resolve_item_status])." +msgstr "" +"给定队列 [param id],返回排队主机名的 IP 地址。出现错误或解析尚未发生时返回一" +"个空字符串(见 [method get_resolve_item_status])。" + +msgid "" "Returns resolved addresses, or an empty array if an error happened or " "resolution didn't happen yet (see [method get_resolve_item_status])." msgstr "" "如果发生错误或尚未发生解析,则返回已解析的地址或空数组(请参阅 [method " "get_resolve_item_status])。" +msgid "" +"Returns a queued hostname's status as a [enum ResolverStatus] constant, " +"given its queue [param id]." +msgstr "" +"给定队列 [param id],以 [enum ResolverStatus] 常量的形式返回排队主机名的状" +"态。" + +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 [param ip_type]." +msgstr "" +"在解析时返回一个给定的主机名的 IPv4 或 IPv6 地址(阻塞类型方法)。返回的地址" +"类型取决于作为 [param ip_type] 的 [enum Type] 常量。" + +msgid "" +"Resolves a given hostname in a blocking way. Addresses are returned as an " +"[Array] of IPv4 or IPv6 addresses depending on [param ip_type]." +msgstr "" +"以阻塞方式解析给定的主机名。地址作为 IPv4 或 IPv6 的 [Array] 数组返回,具体取" +"决于 [param ip_type]。" + +msgid "" +"Creates a queue item to resolve a hostname to an IPv4 or IPv6 address " +"depending on the [enum Type] constant given as [param ip_type]. Returns the " +"queue ID if successful, or [constant RESOLVER_INVALID_ID] on error." +msgstr "" +"创建一个队列项目,根据 [enum Type] 常量 [param ip_type],将主机名解析为 IPv4 " +"或 IPv6 地址。如果成功,则返回队列 ID,否则返回 [constant " +"RESOLVER_INVALID_ID]。" + msgid "DNS hostname resolver status: No status." msgstr "DNS 主机名解析器状态:无状态。" @@ -33753,6 +36775,15 @@ msgid "" msgstr "确保当前选择可见,根据需要调整滚动位置。" msgid "" +"Returns the item index at the given [param position].\n" +"When there is no item at that point, -1 will be returned if [param exact] is " +"[code]true[/code], and the closest item index will be returned otherwise." +msgstr "" +"在给定的位置 [param position] 返回项目索引。\n" +"当此时没有项目时,如果精确 [param exact] 为 [code]true[/code],则将返回 -1," +"否则将返回最近的项目索引。" + +msgid "" "Returns the custom background color of the item specified by [param idx] " "index." msgstr "返回项目的自定义背景色,项目由索引 [param idx] 指定。" @@ -34037,6 +37068,9 @@ msgstr "允许通过按住 [kbd]Ctrl[/kbd] 或 [kbd]Shift[/kbd] 来选择多个 msgid "Default text [Color] of the item." msgstr "项目的默认文本颜色 [Color]。" +msgid "The tint of text outline of the item." +msgstr "项目文本轮廓的色调。" + msgid "Text [Color] used when the item is selected." msgstr "选择项目时使用的文本颜色 [Color]。" @@ -34054,6 +37088,20 @@ msgstr "项目的图标和文本之间的间距。" msgid "The vertical spacing between each line of text." msgstr "每行文字之间的行距。" +msgid "" +"The size of the item text outline.\n" +"[b]Note:[/b] If using a font with [member FontFile." +"multichannel_signed_distance_field] enabled, its [member FontFile." +"msdf_pixel_range] must be set to at least [i]twice[/i] the value of " +"[theme_item outline_size] for outline rendering to look correct. Otherwise, " +"the outline may appear to be cut off earlier than intended." +msgstr "" +"项目文本轮廓的大小。\n" +"[b]注意:[/b]如果使用启用了 [member FontFile." +"multichannel_signed_distance_field] 的字体,其 [member FontFile." +"msdf_pixel_range] 必须至少设置为 [theme_item outline_size] 的[i]两倍[/i],轮" +"廓渲染才能看起来正确。否则,轮廓可能会比预期的更早被切断。" + msgid "The vertical spacing between items." msgstr "项目菜单之间的垂直间距。" @@ -34439,6 +37487,20 @@ msgstr "文本阴影效果的颜色 [Color]。" msgid "Vertical space between lines in multiline [Label]." msgstr "多行 [Label] 中,行与行之间的垂直间距。" +msgid "" +"Text outline size.\n" +"[b]Note:[/b] If using a font with [member FontFile." +"multichannel_signed_distance_field] enabled, its [member FontFile." +"msdf_pixel_range] must be set to at least [i]twice[/i] the value of " +"[theme_item outline_size] for outline rendering to look correct. Otherwise, " +"the outline may appear to be cut off earlier than intended." +msgstr "" +"文字轮廓的大小。\n" +"[b]注意:[/b]如果使用启用了 [member FontFile." +"multichannel_signed_distance_field] 的字体,其 [member FontFile." +"msdf_pixel_range] 必须至少设置为 [theme_item outline_size] 的[i]两倍[/i],轮" +"廓渲染才能看起来正确。否则,轮廓可能会比预期的更早被切断。" + msgid "The horizontal offset of the text's shadow." msgstr "文本阴影的水平偏移。" @@ -34522,6 +37584,9 @@ msgstr "该 [Label3D] 的文本颜色 [Color]。" msgid "The text drawing offset (in pixels)." msgstr "文本绘制偏移(单位为像素)。" +msgid "The tint of text outline." +msgstr "文本轮廓的色调。" + msgid "" "Sets the render priority for the text outline. Higher priority objects will " "be sorted in front of lower priority objects.\n" @@ -34989,6 +38054,17 @@ msgstr "" "ProjectSettings.rendering/lightmapping/bake_quality/" "high_quality_probe_ray_count] 来调整此预设的质量。" +msgid "" +"Highest bake quality (slowest bake times). The quality of this preset can be " +"adjusted by changing [member ProjectSettings.rendering/lightmapping/" +"bake_quality/ultra_quality_ray_count] and [member ProjectSettings.rendering/" +"lightmapping/bake_quality/ultra_quality_probe_ray_count]." +msgstr "" +"最高的烘焙质量(最慢的烘焙时间)。可以通过更改 [member ProjectSettings." +"rendering/lightmapping/bake_quality/high_quality_ray_count] 和 [member " +"ProjectSettings.rendering/lightmapping/bake_quality/" +"ultra_quality_probe_ray_count] 来调整此预设的质量。" + msgid "Lowest level of subdivision (fastest bake times, smallest file sizes)." msgstr "最低级别的细分(烘焙时间最快,文件大小最小)。" @@ -35091,6 +38167,21 @@ msgid "The built-in GPU-based lightmapper for use with [LightmapGI]." msgstr "内置的基于 GPU 的光照贴图器,与 [LightmapGI] 一起使用。" msgid "" +"LightmapperRD (\"RD\" stands for [RenderingDevice]) is the built-in GPU-" +"based lightmapper for use with [LightmapGI]. On most dedicated GPUs, it can " +"bake lightmaps much faster than most CPU-based lightmappers. LightmapperRD " +"uses compute shaders to bake lightmaps, so it does not require CUDA or " +"OpenCL libraries to be installed to be usable.\n" +"[b]Note:[/b] Only usable when using the Vulkan backend (Forward+ or Mobile), " +"not OpenGL." +msgstr "" +"LightmapperRD(“RD”代表 [RenderingDevice])是基于 GPU 的内置光照贴图器,可与 " +"[LightmapGI] 一起使用。在大多数专用 GPU 上,它可以比大多数基于 CPU 的光照贴图" +"更快地烘焙光照贴图。LightmapperRD 使用计算着色器来烘焙光照贴图,因此它不需要" +"安装 CUDA 或 OpenCL 库即可使用。\n" +"[b]注意:[/b] 仅在使用 Vulkan 后端(Forward+ 或移动),而不是 OpenGL 时可用。" + +msgid "" "Represents a single manually placed probe for dynamic object lighting with " "[LightmapGI]." msgstr "表示使用 [LightmapGI] 进行动态物体照明的单个手动放置的探针。" @@ -35478,6 +38569,13 @@ msgstr "插入软连字符(SHY)字符。" msgid "Represents the size of the [enum MenuItems] enum." msgstr "代表 [enum MenuItems] 枚举的大小。" +msgid "" +"Color of the [LineEdit]'s caret (text cursor). This can be set to a fully " +"transparent color to hide the caret entirely." +msgstr "" +"[LineEdit] 的插入符号(文本光标)的颜色。可以设置为完全透明的颜色,从而完全隐" +"藏光标。" + msgid "Color used as default tint for the clear button." msgstr "用作清除按钮默认色调的颜色。" @@ -35487,6 +38585,9 @@ msgstr "按下清除按钮时使用的颜色。" msgid "Default font color." msgstr "默认字体颜色。" +msgid "The tint of text outline of the [LineEdit]." +msgstr "[LineEdit] 文本轮廓的色调。" + msgid "Font color for [member placeholder_text]." msgstr "[member placeholder_text] 的字体颜色。" @@ -35571,6 +38672,9 @@ msgstr "" msgid "Text [Color] used when the [LinkButton] is being hovered." msgstr "当 [LinkButton] 被悬停时使用的文本颜色 [Color]。" +msgid "The tint of text outline of the [LinkButton]." +msgstr "[LinkButton] 的文本轮廓的色调。" + msgid "Text [Color] used when the [LinkButton] is being pressed." msgstr "当 [LinkButton] 被按下时使用的文本颜色 [Color]。" @@ -35906,6 +39010,9 @@ msgstr "菜单项处于悬停状态时使用的文字 [Color]。" msgid "Text [Color] used when the menu item is being hovered and pressed." msgstr "菜单项处于悬停且按下状态时使用的文字 [Color]。" +msgid "The tint of text outline of the menu item." +msgstr "菜单项文本轮廓的色调。" + msgid "Text [Color] used when the menu item is being pressed." msgstr "菜单项处于按下状态时使用的文字 [Color]。" @@ -36005,6 +39112,9 @@ msgstr "" msgid "Text [Color] used when the [MenuButton] is being hovered." msgstr "该 [MenuButton] 处于悬停状态时的字体 [Color]。" +msgid "The tint of text outline of the [MenuButton]." +msgstr "该 [MenuButton] 的文本轮廓的色调。" + msgid "Text [Color] used when the [MenuButton] is being pressed." msgstr "当 [MenuButton] 被按下时使用的字体 [Color] 颜色。" @@ -36223,6 +39333,13 @@ msgstr "表示该自定义通道包含的是半精度浮点数颜色,编码为 msgid "" "Indicates this custom channel contains full float colors, in a " +"[PackedFloat32Array]. Only the red channel is used." +msgstr "" +"表示该自定义通道包含的是全精度浮点数颜色,使用 [PackedFloat32Array]。仅使用红" +"色通道。" + +msgid "" +"Indicates this custom channel contains full float colors, in a " "[PackedFloat32Array]. Only red and green channels are used." msgstr "" "表示该自定义通道包含的是全精度浮点数颜色,使用 [PackedFloat32Array]。仅使用" @@ -36455,9 +39572,6 @@ msgstr "网格实例与场景相结合的节点。" msgid "The [Mesh] resource for the instance." msgstr "该实例的 [Mesh] 资源。" -msgid "Sets the skin to be used by this instance." -msgstr "设置此实例要使用的蒙皮。" - msgid "Library of meshes." msgstr "网格库。" @@ -37558,9 +40672,15 @@ msgstr "在地图上新建两个地点之间的链接。" msgid "Returns the ending position of this [code]link[/code]." msgstr "返回该 [code]link[/code] 的结束位置。" +msgid "Returns the enter cost of this [param link]." +msgstr "返回 [param link] 链接的进入消耗。" + msgid "Returns the starting position of this [code]link[/code]." msgstr "返回该 [code]link[/code] 的起始位置。" +msgid "Returns the travel cost of this [param link]." +msgstr "返回 [param link] 链接的移动消耗。" + msgid "Sets the exit position for the [code]link[/code]." msgstr "设置 [code]link[/code] 的出口位置。" @@ -37599,9 +40719,15 @@ msgstr "设置用于焊接兼容地区边界的地图边界连接边距。" msgid "Creates a new region." msgstr "创建一个新的地区。" +msgid "Returns the enter cost of this [param region]." +msgstr "返回 [param region] 地区的进入消耗。" + msgid "Returns the region's navigation layers." msgstr "返回该地区的导航层。" +msgid "Returns the travel cost of this [param region]." +msgstr "返回 [param region] 地区的移动消耗。" + msgid "Sets the [param enter_cost] for this [param region]." msgstr "设置 [param region] 地区的进入消耗 [param enter_cost]。" @@ -39325,6 +42451,9 @@ msgstr "该 [OptionButton] 处于悬停状态时使用的文本 [Color]。" msgid "Text [Color] used when the [OptionButton] is being hovered and pressed." msgstr "该 [OptionButton] 处于悬停且按下状态时使用的文本 [Color]。" +msgid "The tint of text outline of the [OptionButton]." +msgstr "该 [OptionButton] 的文本轮廓的色调。" + msgid "Text [Color] used when the [OptionButton] is being pressed." msgstr "当 [OptionButton] 被按下时使用的文本 [Color]。" @@ -39621,6 +42750,18 @@ msgstr "铃声目录路径。" msgid "A packed array of bytes." msgstr "字节紧缩数组。" +msgid "" +"An array specifically designed to hold bytes. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"[PackedByteArray] also provides methods to encode/decode various types to/" +"from bytes. The way values are encoded is an implementation detail and " +"shouldn't be relied upon when interacting with external apps." +msgstr "" +"专门设计用于存放字节的数组。数据是紧密存放的,因此能够在数组较大时节省内" +"存。\n" +"[PackedByteArray] 还提供了在许多类型和字节之间进行编码/解码的方法。这些值的编" +"码方式属于实现细节,与外部应用程序交互时不应依赖这种编码。" + msgid "Constructs an empty [PackedByteArray]." msgstr "构造空的 [PackedByteArray]。" @@ -39990,6 +43131,13 @@ msgstr "如果数组内容不同,则返回 [code]true[/code]。" msgid "A packed array of [Color]s." msgstr "[Color] 紧缩数组。" +msgid "" +"An array specifically designed to hold [Color]. Packs data tightly, so it " +"saves memory for large array sizes." +msgstr "" +"专门设计用于存放 [Color] 的数组。数据是紧密存放的,因此能够在数组较大时节省内" +"存。" + msgid "Constructs an empty [PackedColorArray]." msgstr "构造空的 [PackedColorArray]。" @@ -40017,6 +43165,15 @@ msgstr "[PackedDataContainer] 的引用计数版本。" msgid "A packed array of 32-bit floating-point values." msgstr "32 位浮点数紧缩数组。" +msgid "" +"An array specifically designed to hold 32-bit floating-point values (float). " +"Packs data tightly, so it saves memory for large array sizes.\n" +"If you need to pack 64-bit floats tightly, see [PackedFloat64Array]." +msgstr "" +"专门设计用于存放 32 位浮点值(float)的数组。数据是紧密存放的,因此能够在数组" +"较大时节省内存。\n" +"如果你需要紧密存放 64 位浮点数,请参阅 [PackedFloat64Array]。" + msgid "Constructs an empty [PackedFloat32Array]." msgstr "构造空的 [PackedFloat32Array]。" @@ -40039,6 +43196,17 @@ msgstr "更改给定索引处的浮点数。" msgid "A packed array of 64-bit floating-point values." msgstr "64 位浮点数紧缩数组。" +msgid "" +"An array specifically designed to hold 64-bit floating-point values " +"(double). Packs data tightly, so it saves memory for large array sizes.\n" +"If you only need to pack 32-bit floats tightly, see [PackedFloat32Array] for " +"a more memory-friendly alternative." +msgstr "" +"专门设计用于存放 64 位浮点值(double)的数组。数据是紧密存放的,因此能够在数" +"组较大时节省内存。\n" +"如果你只需要紧密存放 32 位浮点数,请参阅 [PackedFloat32Array],是对内存更友好" +"的选择。" + msgid "Constructs an empty [PackedFloat64Array]." msgstr "构造空的 [PackedFloat64Array]。" @@ -40058,6 +43226,22 @@ msgstr "在该数组的末尾追加一个 [PackedFloat64Array]。" msgid "A packed array of 32-bit integers." msgstr "32 位整数紧缩数组。" +msgid "" +"An array specifically designed to hold 32-bit integer values. Packs data " +"tightly, so it saves memory for large array sizes.\n" +"[b]Note:[/b] This type stores signed 32-bit integers, which means it can " +"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. If you need to pack 64-bit integers tightly, see [PackedInt64Array]." +msgstr "" +"专门设计用于存放 32 位整数值的数组。数据是紧密存放的,因此能够在数组较大时节" +"省内存。\n" +"[b]注意:[/b]该类型存储的是 32 位有符号整数,也就是说它可以取区间 [code]" +"[-2^31, 2^31 - 1][/code] 内的值,即 [code][-2147483648, 2147483647][/code]。" +"超过这些界限将环绕往复。相比之下,[int] 使用带符号的 64 位整数,可以容纳更大" +"的值。如果您需要紧密存放 64 位整数,请参阅 [PackedInt64Array]。" + msgid "Constructs an empty [PackedInt32Array]." msgstr "构造空的 [PackedInt32Array]。" @@ -40076,6 +43260,22 @@ msgstr "在该数组的末尾追加一个 [PackedInt32Array]。" msgid "A packed array of 64-bit integers." msgstr "64 位整数紧缩数组。" +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 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]该类型存储的是 64 位有符号整数,也就是说它可以取区间 [code]" +"[-2^63, 2^63 - 1][/code] 内的值,即 [code][-9223372036854775808, " +"9223372036854775807][/code]。超过这些界限将环绕往复。如果你只需要紧密存放 32 " +"位整数,请参阅 [PackedInt32Array],是对内存更友好的选择。" + msgid "Constructs an empty [PackedInt64Array]." msgstr "构造空的 [PackedInt64Array]。" @@ -40131,6 +43331,25 @@ msgstr "" msgid "A packed array of [String]s." msgstr "[String] 紧缩数组。" +msgid "" +"An array specifically designed to hold [String]s. Packs data tightly, so it " +"saves memory for large array sizes.\n" +"If you want to join the strings in the array, use [method String.join].\n" +"[codeblock]\n" +"var string_array = PackedStringArray([\"hello\", \"world\"])\n" +"var string = \" \".join(string_array)\n" +"print(string) # \"hello world\"\n" +"[/codeblock]" +msgstr "" +"专门设计用于存放 [String] 的数组。数据是紧密存放的,因此能够在数组较大时节省" +"内存。\n" +"如果要连接数组中的字符串,请使用 [method String.join]。\n" +"[codeblock]\n" +"var string_array = PackedStringArray([\"hello\", \"world\"])\n" +"var string = \" \".join(string_array)\n" +"print(string) # \"hello world\"\n" +"[/codeblock]" + msgid "Constructs an empty [PackedStringArray]." msgstr "构造空的 [PackedStringArray]。" @@ -40152,9 +43371,19 @@ msgstr "在数组的末尾追加字符串元素。" msgid "Changes the [String] at the given index." msgstr "更改给定索引处的 [String]。" +msgid "Returns a [PackedByteArray] with each string encoded as bytes." +msgstr "返回 [PackedByteArray],每个字符串都被编码为字节。" + msgid "A packed array of [Vector2]s." msgstr "[Vector2] 紧缩数组。" +msgid "" +"An array specifically designed to hold [Vector2]. Packs data tightly, so it " +"saves memory for large array sizes." +msgstr "" +"专门设计用于存放 [Vector2] 的数组。数据是紧密存放的,因此能够在数组较大时节省" +"内存。" + msgid "2D Navigation Astar Demo" msgstr "2D 导航 Astar 演示" @@ -40180,9 +43409,19 @@ msgstr "在末尾插入一个 [Vector2]。" msgid "Changes the [Vector2] at the given index." msgstr "更改给定索引处的 [Vector2]。" +msgid "Returns a [PackedByteArray] with each vector encoded as bytes." +msgstr "返回 [PackedByteArray],每个向量都被编码为字节。" + msgid "A packed array of [Vector3]s." msgstr "[Vector3] 紧缩数组。" +msgid "" +"An array specifically designed to hold [Vector3]. Packs data tightly, so it " +"saves memory for large array sizes." +msgstr "" +"专门设计用于存放 [Vector3] 的数组。数据是紧密存放的,因此能够在数组较大时节省" +"内存。" + msgid "Constructs an empty [PackedVector3Array]." msgstr "构造空的 [PackedVector3Array]。" @@ -42326,6 +45565,24 @@ msgstr "用于悬停文本的 [Color]。" msgid "[Color] used for labeled separators' text. See [method add_separator]." msgstr "用于标注分隔符文本的颜色 [Color]。见 [method add_separator]。" +msgid "The tint of text outline of the labeled separator." +msgstr "带标签分隔符的文本轮廓的色调。" + +msgid "The horizontal space between the item's elements." +msgstr "菜单项元素之间的水平间距。" + +msgid "Width of the single indentation level." +msgstr "单个缩进级别的宽度。" + +msgid "Horizontal padding to the right of the items (or left, in RTL layout)." +msgstr "所有菜单项右侧的水平内边距(RTL 布局中为左侧)。" + +msgid "Horizontal padding to the left of the items (or right, in RTL layout)." +msgstr "所有菜单项左侧的水平内边距(RTL 布局中为右侧)。" + +msgid "The size of the labeled separator text outline." +msgstr "带标签分隔符的文本轮廓的大小。" + msgid "The vertical space between each menu item." msgstr "每个菜单项之间的垂直间距。" @@ -42335,6 +45592,9 @@ msgstr "用于菜单项的 [Font] 字体。" msgid "[Font] used for the labeled separator." msgstr "用于带文字分隔线的 [Font] 字体。" +msgid "Font size of the labeled separator." +msgstr "带标签分隔符的字体大小。" + msgid "Font size of the menu items." msgstr "菜单项的字体大小。" @@ -42471,6 +45731,9 @@ msgstr "进度从下到上填充。" msgid "The color of the text." msgstr "文本的颜色。" +msgid "The tint of text outline of the [ProgressBar]." +msgstr "[ProgressBar] 的文本轮廓的色调。" + msgid "The color of the text's shadow." msgstr "文本阴影的颜色。" @@ -47034,9 +50297,127 @@ msgstr "硬件支持多线程。这个枚举目前在 Godot 3.x 中没有使用 msgid "Base class for all resources." msgstr "所有资源的基类。" +msgid "" +"Resource is the base class for all Godot-specific resource types, serving " +"primarily as data containers. Since they inherit from [RefCounted], " +"resources are reference-counted and freed when no longer in use. They can " +"also be nested within other resources, and saved on disk. Once loaded from " +"disk, further attempts to load a resource by [member resource_path] returns " +"the same reference. [PackedScene], one of the most common [Object]s in a " +"Godot project, is also a resource, uniquely capable of storing and " +"instantiating the [Node]s it contains as many times as desired.\n" +"In GDScript, resources can loaded from disk by their [member resource_path] " +"using [method @GDScript.load] or [method @GDScript.preload].\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 特定资源类型的基类,主要作为数据容器。因为资源继承自 " +"[RefCounted],所以进行了引用计数,不再使用时会被释放。资源也可以嵌套到其他资" +"源里、保存到磁盘上。一旦从磁盘加载,后续尝试使用 [member resource_path] 加载" +"资源时都会返回相同的引用。[PackedScene] 也是一种资源,它是 Godot 项目中最常用" +"的 [Object] 之一,独特的能力是可以将若干 [Node] 保存起来、随意进行实例化。\n" +"在 GDScript 中,可以根据 [member resource_path] 从磁盘上加载资源,使用 " +"[method @GDScript.load] 或 [method @GDScript.preload] 即可。\n" +"[b]注意:[/b]在 C# 中,资源不再被使用后不会立即被释放。相反,垃圾回收将定期运" +"行,并释放不再使用的资源。这意味着未使用的资源在被删除之前会停留一段时间。" + msgid "Resources" msgstr "资源" +msgid "" +"Override this method to return a custom [RID] when [method get_rid] is " +"called." +msgstr "可以覆盖此方法,从而在调用 [method get_rid] 时返回自定义 [RID]。" + +msgid "" +"Duplicates this resource, returning a new resource with its [code]export[/" +"code]ed or [constant PROPERTY_USAGE_STORAGE] properties copied from the " +"original.\n" +"If [param subresources] is [code]false[/code], a shallow copy is returned; " +"nested resources within subresources are not duplicated and are shared from " +"the original resource. If [param subresources] is [code]true[/code], a deep " +"copy is returned; nested subresources will be duplicated and are not " +"shared.\n" +"Subresource properties with the [constant PROPERTY_USAGE_ALWAYS_DUPLICATE] " +"flag are always duplicated even with [param subresources] set to " +"[code]false[/code], and properties with the [constant " +"PROPERTY_USAGE_NEVER_DUPLICATE] flag are never duplicated even with [param " +"subresources] set to [code]true[/code].\n" +"[b]Note:[/b] For custom resources, this method will fail if [method Object." +"_init] has been defined with required parameters." +msgstr "" +"制作该资源的副本,返回资源中,[code]export[/code] 的属性以及 [constant " +"PROPERTY_USAGE_STORAGE] 的属性都会从原始资源中复制。\n" +"如果 [param subresources] 为 [code]false[/code],则返回的是浅拷贝;子资源中的" +"嵌套资源不会被复制,仍然会被共享。如果 [param subresources] 为 [code]true[/" +"code],则返回的是深拷贝;会制作嵌套子资源的副本,不会进行共享。\n" +"带有 [constant PROPERTY_USAGE_ALWAYS_DUPLICATE] 标志的子资源属性始终会被复" +"制,即便 [param subresources] 为 [code]false[/code]。而带有 [constant " +"PROPERTY_USAGE_NEVER_DUPLICATE] 标志的子资源属性始终不会被复制,即便 [param " +"subresources] 为 [code]true[/code]。\n" +"[b]注意:[/b]对于自定义资源,如果定义 [method Object._init] 时使用了必填的参" +"数,则此方法会失败。" + +msgid "" +"Emits the [signal changed] signal. This method is called automatically for " +"built-in resources.\n" +"[b]Note:[/b] For custom resources, it's recommended to call this method " +"whenever a meaningful change occurs, such as a modified property. This " +"ensures that custom [Object]s depending on the resource are properly " +"updated.\n" +"[codeblock]\n" +"var damage:\n" +" set(new_value):\n" +" if damage != new_value:\n" +" damage = new_value\n" +" emit_changed()\n" +"[/codeblock]" +msgstr "" +"发出 [signal changed] 更改信号。内置资源会自动调用此方法。\n" +"[b]注意:[/b]对于自定义资源,推荐在发生任何有意义的变化时都调用此方法,例如修" +"改属性时。这样能够保证依赖于此资源的自定义 [Object] 能够正确更新其属性。\n" +"[codeblock]\n" +"var damage:\n" +" set(new_value):\n" +" if damage != new_value:\n" +" damage = new_value\n" +" emit_changed()\n" +"[/codeblock]" + +msgid "" +"If [member resource_local_to_scene] is set to [code]true[/code] and the " +"resource has been loaded from a [PackedScene] instantiation, returns the " +"root [Node] of the scene where this resource is used. Otherwise, returns " +"[code]null[/code]." +msgstr "" +"如果 [member resource_local_to_scene] 为 [code]true[/code],并且该资源是从 " +"[PackedScene] 实例中加载的,则返回使用该资源的场景的根 [Node]。否则返回 " +"[code]null[/code]。" + +msgid "" +"Returns the [RID] of this resource (or an empty RID). Many resources (such " +"as [Texture2D], [Mesh], and so on) are high-level abstractions of resources " +"stored in a specialized server ([DisplayServer], [RenderingServer], etc.), " +"so this function will return the original [RID]." +msgstr "" +"返回该资源的 [RID](或者空的 RID)。许多资源(如 [Texture2D]、[Mesh] 等)是存" +"储在服务器([DisplayServer]、[RenderingServer] 等)中的资源的高级抽象,所以这" +"个函数将返回原始的 [RID]。" + +msgid "" +"If [code]true[/code], the resource is duplicated for each instance of all " +"scenes using it. At run-time, the resource can be modified in one scene " +"without affecting other instances (see [method PackedScene.instantiate]).\n" +"[b]Note:[/b] Changing this property at run-time has no effect on already " +"created duplicate resources." +msgstr "" +"如果为 [code]true[/code],那么在本地场景的各个实例中,该资源都会被唯一化。在" +"运行时,在某个场景中对该资源的修改不会影响其他实例(见 [method PackedScene." +"instantiate])。\n" +"[b]注意:[/b]运行时,在已创建副本的资源上修改该属性不会有效果。" + msgid "Loads a specific resource type from a file." msgstr "从文件中加载特定资源类型。" @@ -47167,11 +50548,41 @@ msgid "" "code] prefix)." msgstr "不要保存编辑器特定的元数据(由其 [code]__editor[/code] 前缀标识)。" +msgid "Save as big endian (see [member FileAccess.big_endian])." +msgstr "保存为大端序(见 [member FileAccess.big_endian])。" + +msgid "" +"Compress the resource on save using [constant FileAccess.COMPRESSION_ZSTD]. " +"Only available for binary resource types." +msgstr "" +"在保存时使用 [constant FileAccess.COMPRESSION_ZSTD] 压缩资源。仅适用于二进制" +"资源类型。" + msgid "" "Take over the paths of the saved subresources (see [method Resource." "take_over_path])." msgstr "接管保存的子资源的路径(见 [method Resource.take_over_path])。" +msgid "Singleton for managing a cache of resource UIDs within a project." +msgstr "用于管理项目中资源 UID 缓存的单例。" + +msgid "" +"Returns the path that the given UID value refers to.\n" +"Fails with an error if the UID does not exist, so be sure to check [method " +"has_id] beforehand." +msgstr "" +"返回给定 UID 值引用的路径。\n" +"如果 UID 不存在则失败并报错,因此请务必使用 [method has_id] 事先检查。" + +msgid "Returns whether the given UID value is known to the cache." +msgstr "返回给定的 UID 值是否为缓存所知。" + +msgid "Converts the given UID to a [code]uid://[/code] string value." +msgstr "将给定的 UID 转换为 [code]uid://[/code] 字符串值。" + +msgid "Extracts the UID value from the given [code]uid://[/code] string." +msgstr "从给定的 [code]uid://[/code] 字符串中提取 UID 值。" + msgid "A custom effect for use with [RichTextLabel]." msgstr "与 [RichTextLabel] 一起使用的自定义效果。" @@ -47294,6 +50705,14 @@ msgid "Adds a newline tag to the tag stack." msgstr "在标签栈中添加一个换行标签。" msgid "" +"The assignment version of [method append_text]. Clears the tag stack and " +"inserts the new content." +msgstr "[method append_text] 的赋值版本。清空标签栈并插入新内容。" + +msgid "Parses BBCode parameter [param expressions] into a dictionary." +msgstr "将 BBCode 参数 [param expressions] 解析为字典。" + +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 "" @@ -47308,22 +50727,22 @@ msgid "" "the same as adding a [code][b][/code] tag if not currently in a [code][i][/" "code] tag." msgstr "" -"在标签栈中添加一个 [code][font][/code] 标签,字体为黑体。如果当前没有 [code]" -"[i][/code] 标签,这与添加一个 [code][b][/code] 标签相同。" +"在标签栈中添加 [code][font][/code] 标签,字体为黑体。如果当前没有 [code][i][/" +"code] 标签,则与添加 [code][b][/code] 标签相同。" msgid "" "Adds a [code][font][/code] tag with a bold italics font to the tag stack." -msgstr "在标签栈中添加一个 [code][font][/code] 标签,字体为粗斜体。" +msgstr "在标签栈中添加 [code][font][/code] 标签,字体为粗斜体。" msgid "" "Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]" "[table][/code] tag. See [method push_table] for details." msgstr "" -"在标签栈中添加一个 [code][cell][/code] 标签。必须位于 [code][table][/code] 标" -"签内。详见 [method push_table]。" +"在标签栈中添加 [code][cell][/code] 标签。必须位于 [code][table][/code] 标签" +"内。详见 [method push_table]。" msgid "Adds a [code][color][/code] tag to the tag stack." -msgstr "在标签栈中添加一个 [code][color][/code] 标签。" +msgstr "在标签栈中添加 [code][color][/code] 标签。" msgid "Adds a [code][fgcolor][/code] tag to the tag stack." msgstr "向标签栈中添加 [code][fgcolor][/code] 标签。" @@ -47331,22 +50750,55 @@ msgstr "向标签栈中添加 [code][fgcolor][/code] 标签。" msgid "" "Adds a [code][font][/code] tag to the tag stack. Overrides default fonts for " "its duration." +msgstr "在标签栈中添加 [code][font][/code] 标签。在其有效期内覆盖默认字体。" + +msgid "" +"Adds a [code][font_size][/code] tag to the tag stack. Overrides default font " +"size for its duration." +msgstr "" +"在标签栈中添加 [code][font_size][/code] 标签。在其有效期内覆盖默认字体大小。" + +msgid "" +"Adds a [code][hint][/code] tag to the tag stack. Same as BBCode [code]" +"[hint=something]{text}[/hint][/code]." msgstr "" -"在标签栈中添加一个 [code][font][/code] 标签。在其有效期内覆盖默认字体。" +"向标签栈中添加 [code][hint][/code] 标签。类似于 BBCode 的 [code]" +"[hint=something]{text}[/hint][/code]。" 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] 标签相同。" +"在标签栈中添加 [code][font][/code] 标签,字体为斜体。如果当前没有 [code][b][/" +"code] 标签,这与添加 [code][i][/code] 标签相同。" + +msgid "" +"Adds a meta tag to the tag stack. Similar to the BBCode [code][url=something]" +"{text}[/url][/code], but supports non-[String] metadata types." +msgstr "" +"在标签栈中添加元标签。类似于 BBCode 的 [code][url=something]{text}[/url][/" +"code],但支持非 [String] 元数据类型。" msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack." -msgstr "在标签栈中添加一个 [code][font][/code] 标签,该标签为等宽字体。" +msgstr "在标签栈中添加 [code][font][/code] 标签,该标签为等宽字体。" msgid "Adds a [code][font][/code] tag with a normal font to the tag stack." -msgstr "在标签栈中添加一个具有正常字体的 [code][font][/code] 标签。" +msgstr "在标签栈中添加具有正常字体的 [code][font][/code] 标签。" + +msgid "" +"Adds a [code][outline_color][/code] tag to the tag stack. Adds text outline " +"for its duration." +msgstr "" +"在标签栈中添加 [code][outline_color][/code] 标签。在其有效期内为文本添加轮" +"廓。" + +msgid "" +"Adds a [code][outline_size][/code] tag to the tag stack. Overrides default " +"text outline size for its duration." +msgstr "" +"在标签栈中添加 [code][outline_size][/code] 标签。在其有效期内覆盖默认的文本轮" +"廓大小。" msgid "Adds a [code][p][/code] tag to the tag stack." msgstr "向标签栈中添加 [code][p][/code] 标签。" @@ -47383,6 +50835,14 @@ msgstr "设置表格的单元格边框颜色。" msgid "Sets inner padding of a table cell." msgstr "设置表格的单元格内边距。" +msgid "" +"Sets color of a table cell. Separate colors for alternating rows can be " +"specified." +msgstr "设置某个表格单元格的颜色。可以为交替行指定单独的颜色。" + +msgid "Sets minimum and maximum size overrides for a table cell." +msgstr "设置某个表格单元格的最小和最大尺寸覆盖。" + msgid "If [code]true[/code], the label uses BBCode formatting." msgstr "如果为 [code]true[/code],则该标签使用 BBCode 格式。" @@ -47468,9 +50928,15 @@ msgstr "每个列表项都有罗马数字标记。" msgid "Each list item has a filled circle marker." msgstr "每个列表项都有实心圆标记。" +msgid "Selects the whole [RichTextLabel] text." +msgstr "全选 [TextEdit] 文本。" + msgid "The default text color." msgstr "默认文本颜色。" +msgid "The default tint of text outline." +msgstr "文本轮廓的默认色调。" + msgid "The color of the font's shadow." msgstr "字体阴影的颜色。" @@ -47817,6 +51283,9 @@ msgstr "" "这个类不能直接实例化,它是作为 [method PackedScene.get_state] 的结果为一个给" "定的场景检索的。" +msgid "Returns the list of bound parameters for the signal at [param idx]." +msgstr "返回 [param idx] 处信号的绑定参数列表。" + msgid "" "Returns the number of signal connections in the scene.\n" "The [code]idx[/code] argument used to query connection metadata in other " @@ -47827,10 +51296,33 @@ msgstr "" "用于查询其他 [code]get_connection_*[/code] 方法中的连接元数据的 [code]idx[/" "code] 参数,范围是 [code][0, get_connection_count() - 1][/code]。" +msgid "" +"Returns the connection flags for the signal at [param idx]. See [enum Object." +"ConnectFlags] constants." +msgstr "" +"返回 [param idx] 处的信号的连接标志。见 [enum Object.ConnectFlags] 常量。" + +msgid "Returns the method connected to the signal at [param idx]." +msgstr "返回连接到 [param idx] 处信号的方法。" + msgid "Returns the name of the signal at [param idx]." msgstr "返回索引为 [param idx] 的信号的名称。" msgid "" +"Returns the path to the node that owns the signal at [param idx], relative " +"to the root node." +msgstr "返回拥有 [param idx] 处信号的节点路径,相对于根节点。" + +msgid "" +"Returns the path to the node that owns the method connected to the signal at " +"[param idx], relative to the root node." +msgstr "" +"返回到拥有连接到 [param idx] 处的信号的方法的节点的路径,相对于根节点。" + +msgid "Returns the number of unbound parameters for the signal at [param idx]." +msgstr "返回 [param idx] 处信号的解绑参数数量。" + +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() - " @@ -48032,6 +51524,9 @@ msgstr "作为资源存储的类。" msgid "Scripting documentation index" msgstr "脚本文档索引" +msgid "Returns [code]true[/code] if the script can be instantiated." +msgstr "如果该脚本可以被实例化,则返回 [code]true[/code]。" + msgid "Returns the script directly inherited by this script." msgstr "返回由该脚本直接继承的脚本。" @@ -48220,6 +51715,9 @@ msgstr "启用滚动,滚动条隐藏。" msgid "The background [StyleBox] of the [ScrollContainer]." msgstr "[ScrollContainer] 的背景 [StyleBox]。" +msgid "Segment shape resource for 2D physics." +msgstr "用于 2D 物理的线段形状资源。" + msgid "The segment's first point position." msgstr "该段的第一点的位置。" @@ -48342,11 +51840,93 @@ msgid "The [Shape3D]-derived shape to be used for collision queries." msgstr "派生自 [Shape3D] 的形状,用于碰撞查询。" msgid "A shortcut for binding input." -msgstr "绑定输入的快捷方式。" +msgstr "用于绑定输入的快捷键。" + +msgid "" +"Shortcuts are commonly used for interacting with a [Control] element from an " +"[InputEvent] (also known as hotkeys).\n" +"One shortcut can contain multiple [InputEvent]'s, allowing the possibility " +"of triggering one action with multiple different inputs." +msgstr "" +"快捷键通常用于通过 [InputEvent] 与 [Control] 元素进行交互(也叫热键)。\n" +"一个快捷键可以包含多个 [InputEvent],因此能够使用多种不同的输入触发某个动作。" + +msgid "Returns the shortcut's first valid [InputEvent] as a [String]." +msgstr "返回该快捷键的第一个有效 [InputEvent] 的 [String] 形式。" + +msgid "" +"Returns whether [member events] contains an [InputEvent] which is valid." +msgstr "返回 [member events] 是否包含有效的 [InputEvent]。" + +msgid "" +"Returns whether any [InputEvent] in [member events] equals [param event]." +msgstr "返回 [member events] 中是否有等于 [param event] 的 [InputEvent]。" + +msgid "" +"The shortcut's [InputEvent] array.\n" +"Generally the [InputEvent] used is an [InputEventKey], though it can be any " +"[InputEvent], including an [InputEventAction]." +msgstr "" +"快捷键的 [InputEvent] 数组。\n" +"通常使用的 [InputEvent] 是 [InputEventKey],尽管也可以是任何 [InputEvent],包" +"括 [InputEventAction]。" msgid "Built-in type representing a signal defined in an object." msgstr "内置类型,代表对象中定义的某个信号。" +msgid "" +"[Signal] is a built-in [Variant] type that represents a signal of an " +"[Object] instance. Like all [Variant] types, it can be stored in variables " +"and passed to functions. Signals allow all connected [Callable]s (and by " +"extension their respective objects) to listen and react to events, without " +"directly referencing one another. This keeps the code flexible and easier to " +"manage.\n" +"In GDScript, signals can be declared with the [code]signal[/code] keyword. " +"In C#, you may use the [code][Signal][/code] attribute on a delegate.\n" +"[codeblocks]\n" +"[gdscript]\n" +"signal attacked\n" +"\n" +"# Additional arguments may be declared.\n" +"# These arguments must be passed when the signal is emitted.\n" +"signal item_dropped(item_name, amount)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Signal]\n" +"delegate void AttackedEventHandler();\n" +"\n" +"// Additional arguments may be declared.\n" +"// These arguments must be passed when the signal is emitted.\n" +"[Signal]\n" +"delegate void ItemDroppedEventHandler(string itemName, int amount);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"信号 [Signal] 是内置的 [Variant] 类型,代表 [Object] 实例的某个信息。信号和所" +"有 [Variant] 类型一样,可以在变量中存储、传递给函数。信号能够让所有连接的 " +"[Callable](及相应扩展对象)监听事件并作出反应,不必直接互相引用。这样就能让" +"代码更灵活、更易于管理。\n" +"在 GDScript 中,信号可以使用 [code]signal[/code] 关键字声明。在 C# 中,你可以" +"在代理上使用 [code][Signal][/code] 属性。\n" +"[codeblocks]\n" +"[gdscript]\n" +"signal attacked\n" +"\n" +"# 可以声明额外的参数。\n" +"# 这些参数必须在发出信号时传递。\n" +"signal item_dropped(item_name, amount)\n" +"[/gdscript]\n" +"[csharp]\n" +"[Signal]\n" +"delegate void AttackedEventHandler();\n" +"\n" +"// 可以声明额外的参数。\n" +"// 这些参数必须在发出信号时传递。\n" +"[Signal]\n" +"delegate void ItemDroppedEventHandler(string itemName, int amount);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Using Signals" msgstr "使用信号" @@ -48363,6 +51943,67 @@ msgid "" "Creates a new [Signal] named [param signal] in the specified [param object]." msgstr "在指定对象 [param object] 中新建名称 [param signal] 的 [Signal]。" +msgid "" +"Connects this signal to the specified [param callable]. Optional [param " +"flags] can be also added to configure the connection's behavior (see [enum " +"Object.ConnectFlags] constants). You can provide additional arguments to the " +"connected [param callable] by using [method Callable.bind].\n" +"A signal can only be connected once to the same [Callable]. If the signal is " +"already connected, returns [constant ERR_INVALID_PARAMETER] and pushes an " +"error message, unless the signal is connected with [constant Object." +"CONNECT_REFERENCE_COUNTED]. To prevent this, use [method is_connected] first " +"to check for existing connections.\n" +"[codeblock]\n" +"for button in $Buttons.get_children():\n" +" button.pressed.connect(_on_pressed.bind(button))\n" +"\n" +"func _on_pressed(button):\n" +" print(button.name, \" was pressed\")\n" +"[/codeblock]" +msgstr "" +"将此信号连接到指定的 [param callable]。还可以添加 [param flags] 对连接的行为" +"进行配置(见 [enum Object.ConnectFlags] 常量)。可以使用 [method Callable." +"bind] 为连接的 [param callable] 提供额外的参数。\n" +"一个信号只能和同一个 [Callable] 连接一次。如果该信号已连接,则会返回 " +"[constant ERR_INVALID_PARAMETER] 并推入错误消息,除非信号是用 [constant " +"Object.CONNECT_REFERENCE_COUNTED] 连接的。要防止这个问题,请先使用 [method " +"is_connected] 检查已有连接。\n" +"[codeblock]\n" +"for button in $Buttons.get_children():\n" +" button.pressed.connect(_on_pressed.bind(button))\n" +"\n" +"func _on_pressed(button):\n" +" print(button.name, \" 被按下了\")\n" +"[/codeblock]" + +msgid "" +"Disconnects this signal from the specified [Callable]. If the connection " +"does not exist, generates an error. Use [method is_connected] to make sure " +"that the connection exists." +msgstr "" +"将该信号与给定的 [Callable] 断开连接。如果该连接不存在,则会生成错误。请使用 " +"[method is_connected] 来确保连接存在。" + +msgid "" +"Emits this signal. All [Callable]s connected to this signal will be " +"triggered. This method supports a variable number of arguments, so " +"parameters can be passed as a comma separated list." +msgstr "" +"发出该信号。与该信号相连的所有 [Callable] 都将被触发。此方法支持可变数量的参" +"数,所以参数可以用逗号分隔列表的形式传递。" + +msgid "" +"Returns an [Array] of connections for this signal. Each connection is " +"represented as a [Dictionary] that contains three entries:\n" +"- [code]signal[/code] is a reference to this signal;\n" +"- [code]callable[/code] is a reference to the connected [Callable];\n" +"- [code]flags[/code] is a combination of [enum Object.ConnectFlags]." +msgstr "" +"返回该信号的连接 [Array]。连接用 [Dictionary] 表示,包含三个条目:\n" +"- [code]signal[/code] 是对此信号的引用。\n" +"- [code]callable[/code] 是对连接的 [Callable] 的引用。\n" +"- [code]flags[/code] 是 [enum Object.ConnectFlags] 的组合。" + msgid "Returns the name of this signal." msgstr "返回该信号的名称。" @@ -48580,6 +52221,9 @@ msgstr "" "如果为 [code]true[/code],指示 IK 求解器在解算器链时考虑次要磁铁目标(极点目" "标)。使用磁铁位置(磁极目标)来控制 IK 链的弯曲。" +msgid "A resource that operates on [Bone2D] nodes in a [Skeleton2D]." +msgstr "对 [Skeleton2D] 中的 [Bone2D] 节点进行操作的资源。" + msgid "" "Returns the maximum angle constraint for the joint at [param joint_idx]." msgstr "返回索引为 [param joint_idx] 的关节的最大角约束。" @@ -48820,6 +52464,9 @@ msgstr "" "[b]警告:[/b]这是一个必要的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏" "它或它的任何子节点,请使用其 [member CanvasItem.visible] 属性。" +msgid "Changes the alignment of the underlying [LineEdit]." +msgstr "更改底层 [LineEdit] 的对齐方式。" + msgid "" "If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be " "read only." @@ -49026,6 +52673,15 @@ msgstr "当 [member texture] 更改时发出。" msgid "2D sprite node in a 3D world." msgstr "3D 世界中的 2D 精灵节点。" +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. See also [SpriteBase3D] where properties such as the billboard " +"mode are defined." +msgstr "" +"在 3D 环境中显示 2D 纹理的节点。显示的纹理可以是来自较大图集纹理的区域,也可" +"以是来自精灵表动画的帧。另见 [SpriteBase3D],定义有公告板模式等属性。" + msgid "2D sprite node in 3D environment." msgstr "3D 环境中的 2D 精灵节点。" @@ -49448,6 +53104,19 @@ msgstr "为 [code]true[/code] 时,该 [StreamPeer] 进行编解码时会使用 msgid "Data buffer stream peer." msgstr "数据缓冲区流对等体。" +msgid "" +"Data buffer stream peer that uses a byte array as the stream. This object " +"can be used to handle binary data from network sessions. To handle binary " +"data stored in files, [FileAccess] can be used directly.\n" +"A [StreamPeerBuffer] object keeps an internal cursor which is the offset in " +"bytes to the start of the buffer. Get and put operations are performed at " +"the cursor position and will move the cursor accordingly." +msgstr "" +"使用字节数组作为流的数据缓冲区流对等体。该对象可用于处理来自网络会话的二进制" +"数据。要处理保存在文件中的二进制数据,可以直接使用 [FileAccess]。\n" +"[StreamPeerBuffer] 对象会保存一个内部指针,是距离该缓冲区开头的字节偏移量。" +"Get 和 put 操作都在该指针处进行,并会将其进行对应的移动。" + msgid "Clears the [member data_array] and resets the cursor." msgstr "清除 [member data_array] 并重置指针。" @@ -49870,6 +53539,51 @@ msgstr "" "[method begins_with]。" msgid "" +"Returns the index of the [b]first[/b] occurrence of [param what] in this " +"string, or [code]-1[/code] if there are none. The search's start can be " +"specified with [param from], continuing to the end of the string.\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(\"Team\".find(\"I\")) # Prints -1\n" +"\n" +"print(\"Potato\".find(\"t\")) # Prints 2\n" +"print(\"Potato\".find(\"t\", 3)) # Prints 4\n" +"print(\"Potato\".find(\"t\", 5)) # Prints -1\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(\"Team\".Find(\"I\")); // Prints -1\n" +"\n" +"GD.Print(\"Potato\".Find(\"t\")); // Prints 2\n" +"GD.Print(\"Potato\".Find(\"t\", 3)); // Prints 4\n" +"GD.Print(\"Potato\".Find(\"t\", 5)); // Prints -1\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] If you just want to know whether the string contains [param " +"what], use [method contains]. In GDScript, you may also use the [code]in[/" +"code] operator." +msgstr "" +"返回 [param what] 在该字符串中[b]第一次[/b]出现的索引,如果不存在则返回 " +"[code]-1[/code]。搜索的起点可以用 [param from] 指定,持续到字符串结尾。\n" +"[codeblocks]\n" +"[gdscript]\n" +"print(\"Team\".find(\"I\")) # 输出 -1\n" +"\n" +"print(\"Potato\".find(\"t\")) # 输出 2\n" +"print(\"Potato\".find(\"t\", 3)) # 输出 4\n" +"print(\"Potato\".find(\"t\", 5)) # 输出 -1\n" +"[/gdscript]\n" +"[csharp]\n" +"GD.Print(\"Team\".Find(\"I\")); // 输出 -1\n" +"\n" +"GD.Print(\"Potato\".Find(\"t\")); // 输出 2\n" +"GD.Print(\"Potato\".Find(\"t\", 3)); // 输出 4\n" +"GD.Print(\"Potato\".Find(\"t\", 5)); // 输出 -1\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]如果你只是想要知道该字符串中是否包含 [param what],请使用 " +"[method contains]。在 GDScript 中,你还可以使用 [code]in[/code] 运算符。" + +msgid "" "Returns the index of the [b]first[/b] [b]case-insensitive[/b] occurrence of " "[param what] in this string, or [code]-1[/code] if there are none. The " "starting search index can be specified with [param from], continuing to the " @@ -49880,6 +53594,68 @@ msgstr "" "串的末尾。" msgid "" +"Formats the string by replacing all occurrences of [param placeholder] with " +"the elements of [param values].\n" +"[param values] can be a [Dictionary] or an [Array]. Any underscores in " +"[param placeholder] will be replaced with the corresponding keys in advance. " +"Array elements use their index as keys.\n" +"[codeblock]\n" +"# Prints \"Waiting for Godot is a play by Samuel Beckett, and Godot Engine " +"is named after it.\"\n" +"var use_array_values = \"Waiting for {0} is a play by {1}, and {0} Engine is " +"named after it.\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {id} is {name}.\".format({\"id\": 42, \"name\": \"Godot\"}))\n" +"[/codeblock]\n" +"Some additional handling is performed when [param values] is an [Array]. If " +"[param placeholder] does not contain an underscore, the elements of the " +"[param values] array will be used to replace one occurrence of the " +"placeholder in order; If an element of [param values] is another 2-element " +"array, it'll be interpreted as a key-value pair.\n" +"[codeblock]\n" +"# Prints \"User 42 is Godot.\"\n" +"print(\"User {} is {}.\".format([42, \"Godot\"], \"{}\"))\n" +"print(\"User {id} is {name}.\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]]))\n" +"[/codeblock]\n" +"See also the [url=$DOCS_URL/tutorials/scripting/gdscript/" +"gdscript_format_string.html]GDScript format string[/url] tutorial.\n" +"[b]Note:[/b] In C#, it's recommended to [url=https://learn.microsoft.com/en-" +"us/dotnet/csharp/language-reference/tokens/interpolated]interpolate strings " +"with \"$\"[/url], instead." +msgstr "" +"通过将所有出现的 [param placeholder] 替换为 [param values] 的元素来格式化字符" +"串。\n" +"[param values] 可以是 [Dictionary] 或 [Array]。[param placeholder] 中的任何下" +"划线将被预先被替换为对应的键。数组元素使用它们的索引作为键。\n" +"[codeblock]\n" +"# 输出:Waiting for Godot 是 Samuel Beckett 的戏剧,Godot 引擎由此得名。\n" +"var use_array_values = \"Waiting for {0} 是 {1} 的戏剧,{0} 引擎由此得" +"名。\"\n" +"print(use_array_values.format([\"Godot\", \"Samuel Beckett\"]))\n" +"\n" +"# 输出:第 42 号用户是 Godot。\n" +"print(\"第 {id} 号用户是 {name}。\".format({\"id\": 42, \"name\": " +"\"Godot\"}))\n" +"[/codeblock]\n" +"当 [param values] 是 [Array] 时还会执行一些额外的处理。 如果 [param " +"placeholder] 不包含下划线,则 [param values] 数组的元素将用于按顺序替换出现的" +"占位符;如果 [param values] 的元素是另一个 2 元素数组,则它将被解释为键值" +"对。\n" +"[codeblock]\n" +"# 输出:第 42 号用户是 Godot。\n" +"print(\"第 {} 号用户是 {}。\".format([42, \"Godot\"], \"{}\"))\n" +"print(\"第 {id} 号用户是 {name}。\".format([[\"id\", 42], [\"name\", " +"\"Godot\"]]))\n" +"[/codeblock]\n" +"另请参阅 [url=$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string." +"html]GDScript 格式化字符串[/url]教程。\n" +"[b]注意:[/b]在 C# 中推荐改为[url=https://learn.microsoft.com/en-us/dotnet/" +"csharp/language-reference/tokens/interpolated]使用“$”插入字符串[/url]。" + +msgid "" "If the string is a valid file path, returns the base directory name.\n" "[codeblock]\n" "var dir_path = \"/path/to/file.txt\".get_base_dir() # dir_path is \"/path/" @@ -50242,6 +54018,50 @@ msgstr "" "%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80]保留 IP 地址[/url]是有效的。" msgid "" +"Returns the concatenation of [param parts]' elements, with each element " +"separated by the string calling this method. This method is the opposite of " +"[method split].\n" +"[b]Example:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"]\n" +"\n" +"print(\", \".join(fruits)) # Prints \"Apple, Orange, Pear, Kiwi\"\n" +"print(\"---\".join(fruits)) # Prints \"Apple---Orange---Pear---Kiwi\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var fruits = new string[] {\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"};\n" +"\n" +"// In C#, this method is static.\n" +"GD.Print(string.Join(\", \", fruits)); // Prints \"Apple, Orange, Pear, " +"Kiwi\"\n" +"GD.Print(string.Join(\"---\", fruits)); // Prints \"Apple---Orange---Pear---" +"Kiwi\"\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回将 [param parts] 中的元素连接组成的字符串,元素间使用调用该方法的字符串进" +"行分隔。该方法和 [method split] 相反。\n" +"[b]示例:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var fruits = [\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"]\n" +"\n" +"print(\", \".join(fruits)) # 输出 \"Apple, Orange, Pear, Kiwi\"\n" +"print(\"---\".join(fruits)) # 输出 \"Apple---Orange---Pear---Kiwi\"\n" +"[/gdscript]\n" +"[csharp]\n" +"var fruits = new string[] {\"Apple\", \"Orange\", \"Pear\", \"Kiwi\"};\n" +"\n" +"// 这个方法在 C# 中是静态的。\n" +"GD.Print(string.Join(\", \", fruits)); // 输出 \"Apple, Orange, Pear, " +"Kiwi\"\n" +"GD.Print(string.Join(\"---\", fruits)); // 输出 \"Apple---Orange---Pear---" +"Kiwi\"\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" "Returns a copy of the string with special characters escaped using the JSON " "standard. Because it closely matches the C standard, it is possible to use " "[method c_unescape] to unescape the string, if necessary." @@ -51140,6 +54960,44 @@ msgstr "" msgid "An optimized string type for unique names." msgstr "针对唯一名称优化的字符串类型。" +msgid "" +"[StringName]s are immutable strings designed for general-purpose " +"representation of unique names (also called \"string interning\"). " +"[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.\n" +"You will usually just pass a [String] to methods expecting a [StringName] " +"and it will be automatically converted, but you may occasionally want to " +"construct a [StringName] ahead of time with the [StringName] constructor or, " +"in GDScript, the literal syntax [code]&\"example\"[/code].\n" +"See also [NodePath], which is a similar concept specifically designed to " +"store pre-parsed node paths.\n" +"Some string methods have corresponding variations. Variations suffixed with " +"[code]n[/code] ([method countn], [method findn], [method replacen], etc.) " +"are [b]case-insensitive[/b] (they make no distinction between uppercase and " +"lowercase letters). Method variations prefixed with [code]r[/code] ([method " +"rfind], [method rsplit], etc.) are reversed, and start from the end of the " +"string, instead of the beginning.\n" +"[b]Note:[/b] In a boolean context, a [StringName] will evaluate to " +"[code]false[/code] if it is empty ([code]StringName(\"\")[/code]). " +"Otherwise, a [StringName] will always evaluate to [code]true[/code]." +msgstr "" +"[StringName] 是不可变的字符串,用于唯一名称的通用表示(也叫“字符串内嵌”)。" +"[StringName] 能够保证给定的名称只存在一个实例(这样值相同的两个 [StringName] " +"就是同一个对象)。进行比较时比普通 [String] 要快很多,因为只需要比较指针,不" +"需要比较完整的字符串。\n" +"对于需要 [StringName] 的方法,你通常可以只传 [String],会自动进行转换,不过有" +"时候你可能会想要提前使用 [StringName] 构造函数来构造 [StringName],在 " +"GDScript 中也可以用 [code]&\"example\"[/code] 语法。\n" +"另见 [NodePath],这是与此类似的概念,针对存储预解析的节点路径设计。\n" +"部分字符串方法有对应的变体。后缀 [code]n[/code] 的变体([method countn]、" +"[method findn]、[method replacen] 等)[b]大小写不敏感[/b](不区分大写字符和小" +"写字符)。前缀 [code]r[/code] 的方法变体([method rfind]、[method rsplit] " +"等)是逆序的,会从字符串末尾开始,而不是从开头开始。\n" +"[b]注意:[/b]转换为布尔值时,空的 [StringName]([code]StringName(\"\")[/" +"code])为 [code]false[/code],其他 [StringName] 均为 [code]true[/code]。" + msgid "Constructs an empty [StringName]." msgstr "构造空的 [StringName]。" @@ -51187,6 +55045,13 @@ msgstr "" "url]。" msgid "" +"Appends [param right] at the end of this [StringName], returning a [String]. " +"This is also known as a string concatenation." +msgstr "" +"将 [param right] 追加到该 [StringName] 的末尾,返回的是 [String]。也称作字符" +"串连接。" + +msgid "" "Returns [code]true[/code] if this [StringName] is equivalent to the given " "[String]." msgstr "如果该 [StringName] 与给定的 [String] 等价,则返回 [code]true[/code]。" @@ -52210,6 +56075,9 @@ msgstr "[theme_item drop_mark] 图标的调制颜色。" msgid "Font color of disabled tabs." msgstr "禁用选项卡的字体颜色。" +msgid "The tint of text outline of the tab name." +msgstr "选项卡名称的文本轮廓的色调。" + msgid "Font color of the currently selected tab." msgstr "当前所选选项卡的字体颜色。" @@ -52219,6 +56087,20 @@ msgstr "其他未被选中的选项卡的字体颜色。" msgid "The horizontal separation between the elements inside tabs." msgstr "选项卡内元素之间的水平分隔。" +msgid "" +"The size of the tab text outline.\n" +"[b]Note:[/b] If using a font with [member FontFile." +"multichannel_signed_distance_field] enabled, its [member FontFile." +"msdf_pixel_range] must be set to at least [i]twice[/i] the value of " +"[theme_item outline_size] for outline rendering to look correct. Otherwise, " +"the outline may appear to be cut off earlier than intended." +msgstr "" +"选项卡文字轮廓的大小。\n" +"[b]注意:[/b]如果使用启用了 [member FontFile." +"multichannel_signed_distance_field] 的字体,其 [member FontFile." +"msdf_pixel_range] 必须至少设置为 [theme_item outline_size] 的[i]两倍[/i],轮" +"廓渲染才能看起来正确。否则,轮廓可能会比预期的更早被切断。" + msgid "The font used to draw tab names." msgstr "用于绘制选项卡名称的字体。" @@ -52486,12 +56368,30 @@ msgstr "删除选定的文本。" msgid "Deselects the current selection." msgstr "取消当前选择。" +msgid "Returns the column the editing caret is at." +msgstr "返回编辑光标所在的列。" + msgid "Returns the number of carets in this [TextEdit]." msgstr "返回该 [TextEdit] 中的光标数。" +msgid "Returns the caret pixel draw position." +msgstr "返回光标的像素绘制位置。" + +msgid "Returns the line the editing caret is on." +msgstr "返回编辑光标所在的行。" + msgid "Returns the first visible line." msgstr "返回第一个可见行。" +msgid "Returns the name of the gutter at the given index." +msgstr "返回给定索引处边栏的名称。" + +msgid "Returns the type of the gutter at the given index." +msgstr "返回给定索引处边栏的类型。" + +msgid "Returns the width of the gutter at the given index." +msgstr "返回给定索引处边栏的宽度。" + msgid "Returns the [HScrollBar] used by [TextEdit]." msgstr "设置该 [TextEdit] 所使用的 [HScrollBar]。" @@ -52652,6 +56552,12 @@ msgstr "" msgid "Sets the text for [param gutter] on [param line] to [param text]." msgstr "将边栏 [param gutter] 在第 [param line] 行的文本设置为 [param text]。" +msgid "Sets the current selection mode." +msgstr "设置当前的选区模式。" + +msgid "Sets the tab size for the [TextEdit] to use." +msgstr "设置该 [TextEdit] 使用的制表符大小。" + msgid "" "Provide custom tooltip text. The callback method must take the following " "args: [code]hovered_word: String[/code]." @@ -52830,6 +56736,20 @@ msgstr "自定义绘制。" msgid "Sets the background [Color] of this [TextEdit]." msgstr "设置该 [TextEdit] 的背景 [Color]。" +msgid "[Color] of the text behind the caret when using a block caret." +msgstr "使用块状光标时,光标下文本的 [Color]。" + +msgid "" +"[Color] of the caret. This can be set to a fully transparent color to hide " +"the caret entirely." +msgstr "光标的 [Color]。可以设为完全透明的颜色,从而完全隐藏光标。" + +msgid "The tint of text outline of the [TextEdit]." +msgstr "该 [TextEdit] 的文本轮廓的色调。" + +msgid "Sets the font [Color] when [member editable] is disabled." +msgstr "设置禁用 [member editable] 时的字体 [Color]。" + msgid "" "Sets the highlight [Color] of multiple occurrences. [member " "highlight_all_occurrences] has to be enabled." @@ -52839,6 +56759,10 @@ msgstr "" msgid "Sets the [StyleBox] of this [TextEdit]." msgstr "设置这个 [TextEdit] 的 [StyleBox]。" +msgid "" +"Sets the [StyleBox] of this [TextEdit] when [member editable] is disabled." +msgstr "设置这个 [TextEdit] 在禁用 [member editable] 时的 [StyleBox]。" + msgid "Returns TextServer buffer RID." msgstr "返回 TextServer 缓冲区 RID。" @@ -54468,6 +58392,10 @@ msgstr "返回地形集的数量。" msgid "Returns the number of terrains in the given terrain set." msgstr "返回给定地形集中的地形数。" +msgid "" +"Returns if there is an alternative-level proxy for the given identifiers." +msgstr "返回给定的标识符是否存在备选级别的代理。" + msgid "Returns if there is a coodinates-level proxy for the given identifiers." msgstr "返回给定的标识符是否存在坐标级别的代理。" @@ -56516,13 +60444,6 @@ msgid "Resumes a paused or stopped [Tween]." msgstr "恢复已暂停或已停止的 [Tween]。" msgid "" -"Sets the default ease type for [PropertyTweener]s and [MethodTweener]s " -"animated by this [Tween]." -msgstr "" -"设置由这个 [Tween] 进行动画的 [PropertyTweener] 和 [MethodTweener] 的默认缓动" -"类型。" - -msgid "" "Sets the number of times the tweening sequence will be repeated, i.e. " "[code]set_loops(2)[/code] will run the animation twice.\n" "Calling this method without arguments will make the [Tween] run infinitely, " @@ -56574,13 +60495,6 @@ msgid "" msgstr "补间的速度缩放。影响所有 [Tweener] 及其延迟。" msgid "" -"Sets the default transition type for [PropertyTweener]s and [MethodTweener]s " -"animated by this [Tween]." -msgstr "" -"设置由这个 [Tween] 进行动画的 [PropertyTweener] 和 [MethodTweener] 的默认过渡" -"类型。" - -msgid "" "Stops the tweening and resets the [Tween] to its initial state. This will " "not remove any appended [Tweener]s." msgstr "停止补间,并将该 [Tween] 重置为初始状态。不会移除已追加的 [Tweener]。" @@ -60778,6 +64692,9 @@ msgstr "" msgid "Real-time global illumination (GI) probe." msgstr "实时全局光照(GI)探测。" +msgid "VoxelGI" +msgstr "VoxelGI" + msgid "Calls [method bake] with [code]create_visual_debug[/code] enabled." msgstr "在启用 [code]create_visual_debug[/code] 的情况下调用 [method bake] 。" @@ -61673,6 +65590,29 @@ msgstr "" msgid "Moves the [Window] on top of other windows and focuses it." msgstr "将该 [Window] 移动到其他窗口的顶部并聚焦。" +msgid "" +"Popups the [Window] at the center of the current screen, with optionally " +"given minimum size.\n" +"If the [Window] is embedded, it will be centered in the parent [Viewport] " +"instead.\n" +"[b]Note:[/b] Calling it with the default value of [param minsize] is " +"equivalent to calling it with [member size]." +msgstr "" +"在当前屏幕的中心弹出该 [Window],可以选择给定最小尺寸。\n" +"如果该 [Window] 是嵌入的,它将在父 [Viewport] 中居中。\n" +"[b]注意:[/b]用 [param minsize] 的默认值调用它等同于用 [member size] 调用它。" + +msgid "" +"Popups the [Window] centered inside its parent [Window].\n" +"[code]fallback_ratio[/code] determines the maximum size of the [Window], in " +"relation to its parent.\n" +"[b]Note:[/b] Calling it with the default value of [param minsize] is " +"equivalent to calling it with [member size]." +msgstr "" +"在父 [Window] 中居中弹出该 [Window]。\n" +"[code]fallback_ratio[/code] 确定 [Window] 相对于其父级的最大尺寸。\n" +"[b]注意:[/b]用 [param minsize] 的默认值调用它等同于用 [member size] 调用它。" + msgid "Sets a specified window flag." msgstr "设置指定的窗口标志。" |