From ef025711a694071a1407b5035a6fe3e67c2a5b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 4 Apr 2023 00:33:24 +0200 Subject: [PATCH] i18n: Sync translations with Weblate (cherry picked from commit 9099ac39cf4a7e853730d819c8c1ec1932ba81aa) --- doc/translations/es.po | 178 +- doc/translations/fr.po | 956 +- doc/translations/zh_CN.po | 31619 ++++++++++++++++++++-- editor/translations/editor/ar.po | 394 +- editor/translations/editor/ca.po | 155 +- editor/translations/editor/cs.po | 8 +- editor/translations/editor/de.po | 120 +- editor/translations/editor/es.po | 1116 +- editor/translations/editor/fr.po | 711 +- editor/translations/editor/gl.po | 100 +- editor/translations/editor/id.po | 16 +- editor/translations/editor/it.po | 9 +- editor/translations/editor/ko.po | 26 +- editor/translations/editor/pl.po | 3104 ++- editor/translations/editor/pt.po | 4461 ++- editor/translations/editor/pt_BR.po | 88 +- editor/translations/editor/ro.po | 32 +- editor/translations/editor/ru.po | 447 +- editor/translations/editor/sk.po | 1648 +- editor/translations/editor/tr.po | 4 +- editor/translations/editor/uk.po | 9 +- editor/translations/editor/zh_CN.po | 49 +- editor/translations/editor/zh_TW.po | 16 +- editor/translations/properties/de.po | 107 +- editor/translations/properties/es.po | 109 +- editor/translations/properties/fr.po | 401 +- editor/translations/properties/it.po | 78 +- editor/translations/properties/ja.po | 78 +- editor/translations/properties/ko.po | 93 +- editor/translations/properties/pl.po | 325 +- editor/translations/properties/pt.po | 1241 +- editor/translations/properties/pt_BR.po | 264 +- editor/translations/properties/ru.po | 139 +- editor/translations/properties/tr.po | 61 +- editor/translations/properties/uk.po | 99 +- editor/translations/properties/zh_CN.po | 162 +- editor/translations/properties/zh_TW.po | 78 +- 37 files changed, 45278 insertions(+), 3223 deletions(-) diff --git a/doc/translations/es.po b/doc/translations/es.po index faa87d03272..b85284ee31e 100644 --- a/doc/translations/es.po +++ b/doc/translations/es.po @@ -47,12 +47,13 @@ # Dariem Lázaro García López , 2023. # Adrian Migueles , 2023. # Joinner Medina , 2023. +# Denis Anfruns , 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2023-03-12 20:08+0000\n" -"Last-Translator: Joinner Medina \n" +"PO-Revision-Date: 2023-03-26 03:46+0000\n" +"Last-Translator: Denis Anfruns \n" "Language-Team: Spanish \n" "Language: es\n" @@ -60,7 +61,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.2-dev\n" +"X-Generator: Weblate 4.17-dev\n" msgid "Description" msgstr "Descripción" @@ -179,27 +180,6 @@ msgstr "" msgid "GDScript exports" msgstr "Exportaciones de Scripts GD" -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 "" -"Devuelve un [Color] construido a partir de rojo ([param r8]), verde ([param " -"g8]), azul ([param b8]) y opcionalmente alfa ([param a8]), cada uno dividido " -"por [code]255.0[/code] para obtener su valor final.\n" -"[codeblock]\n" -"var red = Color8(255, 0, 0) # Igual que Color(1, " -"0, 0)\n" -"var dark_blue = Color8(0, 0, 51) # Igual que Color(0, 0, " -"0.2).\n" -"var my_color = Color8(306, 255, 0, 102) # Igual 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 " @@ -295,6 +275,56 @@ msgstr "" "Convierte un [param dictionary] (creado con [method inst_to_dict]) en una " "instancia de objeto. Puede ser útil para deserializar datos." +msgid "" +"Returns an array of dictionaries representing the current call stack. See " +"also [method print_stack].\n" +"[codeblock]\n" +"func _ready():\n" +" foo()\n" +"\n" +"func foo():\n" +" bar()\n" +"\n" +"func bar():\n" +" print(get_stack())\n" +"[/codeblock]\n" +"Starting from [code]_ready()[/code], [code]bar()[/code] would print:\n" +"[codeblock]\n" +"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, " +"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n" +"[/codeblock]\n" +"[b]Note:[/b] This function only works if the running instance is connected " +"to a debugging server (i.e. an editor instance). [method get_stack] will not " +"work in projects exported in release mode, or in projects exported in debug " +"mode if not connected to a debugging server.\n" +"[b]Note:[/b] Calling this function from a [Thread] is not supported. Doing " +"so will return an empty array." +msgstr "" +"Devuelve un array de diccionarios que representan la pila de llamadas " +"actual. Véase también [method print_stack].\n" +"[codeblock]\n" +"func _ready():\n" +" foo()\n" +"\n" +"func foo():\n" +" bar()\n" +"\n" +"func bar():\n" +" print(get_stack())\n" +"[/codeblock]\n" +"Empezando desde [code]_ready()[/code],[code]bar()[/code] esto imprimirá:\n" +"[codeblock]\n" +"[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, " +"source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]\n" +"[/codeblock]\n" +"[b]Nota:[/b] Esta función sólo funciona si la instancia en ejecución está " +"conectada a un servidor de depuración (i.e. una instancia de editor). " +"[method get_stack] no funcionará en proyectos exportados en modo release, o " +"en proyectos exportados en modo depuración si no se está conectado a un " +"servidor de depuración.\n" +"[b]Nota:[/b] La llamada a esta función desde un [Thread] no está soportada. " +"Si lo hace, devolverá un array vacío." + msgid "" "Returns an array with the given range. [method range] can be called in three " "ways:\n" @@ -4815,19 +4845,6 @@ msgstr "" "Las capas de renderización en las que este [CanvasItem] responde a los nodos " "[Light2D]." -msgid "The material applied to textures on this [CanvasItem]." -msgstr "El material aplicado a las texturas en este [CanvasItem]." - -msgid "The color applied to textures on this [CanvasItem]." -msgstr "El color aplicado a las texturas en este [CanvasItem]." - -msgid "" -"The color applied to textures on this [CanvasItem]. This is not inherited by " -"children [CanvasItem]s." -msgstr "" -"El color aplicado a las texturas en este [CanvasItem]. Esto no es heredado " -"por los hijos de [CanvasItem]." - msgid "If [code]true[/code], the object draws behind its parent." msgstr "Si [code]true[/code], el objeto se dibuja detrás de su padre." @@ -5296,9 +5313,6 @@ msgstr "Establece la [Transform2D] del propietario de la forma dada." msgid "Base node for collision objects." msgstr "Nodo base para objetos de colisión." -msgid "Defines a 2D collision polygon." -msgstr "Define un polígono de colisión en 2D." - msgid "Collision build mode. Use one of the [enum BuildMode] constants." msgstr "" "Modo de construcción de colisión. Use una de las constantes de [enum " @@ -5316,37 +5330,9 @@ msgstr "" "altos harán la forma más gruesa, y funcionará mejor para los colisionadores " "que entran en el polígono a alta velocidad." -msgid "Collisions will include the polygon and its contained area." -msgstr "Las colisiones incluirán el polígono y su área de contención." - -msgid "Collisions will only include the polygon edges." -msgstr "Las colisiones sólo incluirán los bordes del polígono." - -msgid "" -"Length that the resulting collision extends in either direction " -"perpendicular to its polygon." -msgstr "" -"Longitud que la colisión resultante se extiende en cualquier dirección " -"perpendicular a su polígono." - msgid "If [code]true[/code], no collision will be produced." msgstr "Si [code]true[/code], no se producirá ninguna colisión." -msgid "" -"Array of vertices which define the polygon.\n" -"[b]Note:[/b] The returned value is a copy of the original. Methods which " -"mutate the size or properties of the return value will not impact the " -"original polygon. To change properties of the polygon, assign it to a " -"temporary variable and make changes before reassigning the [code]polygon[/" -"code] member." -msgstr "" -"Conjunto de vértices que definen el polígono.\n" -"[b]Nota:[/b] El valor devuelto es una copia del original. Los métodos que " -"mutan el tamaño o las propiedades del valor de retorno no afectarán al " -"polígono original. Para cambiar las propiedades del polígono, asígnalo a una " -"variable temporal y haz los cambios antes de reasignar el miembro " -"[code]polygon[/code]." - msgid "Node that represents collision shape data in 2D space." msgstr "" "Nodo que representa los datos de la forma de colisión en el espacio 2D." @@ -5940,17 +5926,11 @@ msgstr "[StyleBox] que se utiliza cuando se pulsa el [ColorPickerButton]." msgid "Colored rectangle." msgstr "Rectángulo coloreado." -msgid "" -"The array of points that make up the [ConcavePolygonShape2D]'s line segments." -msgstr "" -"El array de puntos que forman los segmentos de línea de un " -"[ConcavePolygonShape2D]." +msgid "Returns the value of the specified parameter." +msgstr "Devuelve el valor del parámetro especificado." -msgid "Returns the faces (an array of triangles)." -msgstr "Devuelve las caras (un array de triángulos)." - -msgid "Sets the faces (an array of triangles)." -msgstr "Establece las caras (un array de triángulos)." +msgid "Sets the value of the specified parameter." +msgstr "Establece el valor del parámetro especificado." msgid "" "The speed with which the swing or twist will take place.\n" @@ -9738,15 +9718,9 @@ msgstr "" msgid "Returns the value of the specified flag." msgstr "Devuelve el valor de la flag especificada." -msgid "Returns the value of the specified parameter." -msgstr "Devuelve el valor del parámetro especificado." - msgid "If [code]true[/code], enables the specified flag." msgstr "Si [code]true[/code], activa la flag especificada." -msgid "Sets the value of the specified parameter." -msgstr "Establece el valor del parámetro especificado." - msgid "" "The speed with which the rotation across the axis perpendicular to the hinge " "gets corrected." @@ -11788,16 +11762,6 @@ msgstr "" msgid "Placeholder for the root [Node] of a [PackedScene]." msgstr "Marcador de posición para la raíz [Node] de una [PackedScene]." -msgid "Integer built-in type." -msgstr "Tipo entero interno." - -msgid "" -"Cast a [bool] value to an integer value, [code]int(true)[/code] will be " -"equals to 1 and [code]int(false)[/code] will be equals to 0." -msgstr "" -"Transforma un valor [bool] a un valor entero, [code]int(true)[/code] será " -"igual a 1 y [code]int(false)[/code] será igual a 0." - msgid "Internet protocol (IP) support functions such as DNS resolution." msgstr "" "Funciones de soporte del protocolo de Internet (IP) como la resolución del " @@ -15320,27 +15284,6 @@ msgstr "Asigna el área a una o varias capas de la física." msgid "Sets which physics layers the area will monitor." msgstr "Establece qué capas de la física monitoreará el área." -msgid "" -"Sets the function to call when any body/area enters or exits the area. This " -"callback will be called for any object interacting with the area, and takes " -"five parameters:\n" -"1: [constant AREA_BODY_ADDED] or [constant AREA_BODY_REMOVED], depending on " -"whether the object entered or exited the area.\n" -"2: [RID] of the object that entered/exited the area.\n" -"3: Instance ID of the object that entered/exited the area.\n" -"4: The shape index of the object that entered/exited the area.\n" -"5: The shape index of the area where the object entered/exited." -msgstr "" -"Establece la función de llamar cuando cualquier cuerpo/área entra o sale del " -"área. Esta llamada será llamada para cualquier objeto que interactúe con el " -"área, y toma cinco parámetros:\n" -"1: [constant AREA_BODY_ADDED] o [constant AREA_BODY_REMOVED], dependiendo de " -"si el objeto entró o salió del área.\n" -"2: [RID] del objeto que entró/salió del área.\n" -"3: ID del objeto que entró/salió del área.\n" -"4: El índice de forma del objeto que entró/salió del área.\n" -"5: El índice de forma del área donde el objeto entró/salió del área." - msgid "" "Sets the value for an area parameter. A list of available parameters is on " "the [enum AreaParameter] constants." @@ -21580,11 +21523,6 @@ msgstr "" "acepte cualquier nueva conexión pendiente (por ejemplo, cuando todos tus " "jugadores se han conectado)." -msgid "Helper to manage undo/redo operations in the editor or custom tools." -msgstr "" -"Ayudante para gestionar las operaciones de deshacer/rehacer en el editor o " -"las herramientas personalizadas." - msgid "" "Gets the version. Every time a new action is committed, the [UndoRedo]'s " "version number is increased automatically.\n" diff --git a/doc/translations/fr.po b/doc/translations/fr.po index 4404b5feeba..5c764f41a46 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -36,7 +36,7 @@ # Toquey SiGauses , 2021. # GABRIELLE Damien , 2021. # Julien Vanelian , 2021. -# Perrier Mathis , 2021, 2022. +# Perrier Mathis , 2021, 2022, 2023. # Blackiris , 2021, 2022. # AndyNekena , 2021. # Legorel , 2021, 2022. @@ -66,13 +66,15 @@ # Dricom Dragon , 2023. # t8y , 2023. # GuruWP , 2023. +# Paul Cordellier , 2023. +# Alexis Robin , 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-03-08 00:26+0000\n" -"Last-Translator: GuruWP \n" +"PO-Revision-Date: 2023-04-03 15:09+0000\n" +"Last-Translator: Paul Cordellier \n" "Language-Team: French \n" "Language: fr\n" @@ -80,7 +82,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16.2-dev\n" +"X-Generator: Weblate 4.17-dev\n" msgid "Description" msgstr "Description" @@ -200,27 +202,6 @@ msgstr "" 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 " @@ -290,6 +271,37 @@ msgstr "" "a = char(8364) # a vaut « € »\n" "[/codeblock]" +msgid "" +"Converts [param what] to [param type] in the best way possible. The [param " +"type] uses the [enum Variant.Type] values.\n" +"[codeblock]\n" +"var a = [4, 2.5, 1.2]\n" +"print(a is Array) # Prints true\n" +"\n" +"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n" +"print(b) # Prints [4, 2, 1]\n" +"print(b is Array) # Prints false\n" +"[/codeblock]" +msgstr "" +"Convertit [param what] en [param type] de la meilleure façon possible. Le " +"[param type] utilise les valeurs de [enum Variant.Type].\n" +"[codeblock]\n" +"var a = [4, 2.5, 1.2]\n" +"print(a is Array) # Affiche true\n" +"\n" +"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n" +"print(b) # Affiche [4, 2, 1]\n" +"print(b is Array) # Affiche false\n" +"[/codeblock]" + +msgid "" +"Converts a [param dictionary] (created with [method inst_to_dict]) back to " +"an Object instance. Can be useful for deserializing." +msgstr "" +"Convertit un [param dictionary] (créé précédemment avec [method " +"inst_to_dict]) à nouveau en une instance d'Objet. Utile pour la dé-" +"sérialisation." + msgid "" "Returns an array of dictionaries representing the current call stack. See " "also [method print_stack].\n" @@ -377,6 +389,336 @@ msgstr "" "[, res://test.gd, bar]\n" "[/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 "" +"Renvoie [code]true[/code] si [param value] est une instance de [param type]. " +"La valeur de [param type] doit être l'une des suivantes :\n" +"- Une constante de l'énumération [enum Variant.Type], par exemple [constant " +"TYPE_INT].\n" +"- Une classe dérivée de [Object] qui existe dans [ClassDB], par exemple " +"[Node].\n" +"- Un [Script] (vous pouvez utiliser n'importe quelle classe, y compris une " +"classe interne).\n" +"Contrairement à l'opérande droit de l'opérateur [code]is[/code], [param " +"type] peut être une valeur non constante. L'opérateur [code]is[/code] prend " +"en charge davantage de fonctionnalités (telles que les tableaux typés) et " +"est plus performant. Utilisez l'opérateur au lieu de cette méthode si vous " +"n'avez pas besoin d'une vérification dynamique des types.\n" +"Exemples :\n" +"[bloc de code]\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] Si [param value] et/ou [param type] sont des objets libérés " +"(voir [method @GlobalScope.is_instance_valid]), ou si [param type] n'est pas " +"l'une des options ci-dessus, cette méthode lèvera une erreur d'exécution.\n" +"Voir aussi [method @GlobalScope.typeof], [method type_exists], [method Array." +"is_same_typed] (et autres méthodes [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 " +"generated and execution is stopped.\n" +"[codeblock]\n" +"a = [1, 2, 3, 4]\n" +"len(a) # Returns 4\n" +"\n" +"b = \"Hello!\"\n" +"len(b) # Returns 6\n" +"[/codeblock]" +msgstr "" +"Renvoie la longueur du Variant [param var]. La longueur peut être le nombre " +"de caractères d'une [String], le nombre d'éléments de n'importe quel type de " +"tableau ou la taille de [Dictionary]. Pour tout autre type de Variant, une " +"erreur d’exécution est générée et l’exécution est interrompue.\n" +"[codeblock]\n" +"a = [1, 2, 3, 4]\n" +"len(a) # Renvoie 4\n" +"\n" +"B = \"Hello!\"\n" +"len(a) # Renvoie 6\n" +"[/codeblock]" + +msgid "" +"Returns a [Resource] from the filesystem located at the absolute [param " +"path]. Unless it's already referenced elsewhere (such as in another script " +"or in the scene), the resource is loaded from disk on function call, which " +"might cause a slight delay, especially when loading large scenes. To avoid " +"unnecessary delays when loading something multiple times, either store the " +"resource in a variable or use [method preload].\n" +"[b]Note:[/b] Resource paths can be obtained by right-clicking on a resource " +"in the FileSystem dock and choosing \"Copy Path\", or by dragging the file " +"from the FileSystem dock into the current script.\n" +"[codeblock]\n" +"# Load a scene called \"main\" located in the root of the project directory " +"and cache it in a variable.\n" +"var main = load(\"res://main.tscn\") # main will contain a PackedScene " +"resource.\n" +"[/codeblock]\n" +"[b]Important:[/b] The path must be absolute. A relative path will always " +"return [code]null[/code].\n" +"This function is a simplified version of [method ResourceLoader.load], which " +"can be used for more advanced scenarios.\n" +"[b]Note:[/b] Files have to be imported into the engine first to load them " +"using this function. If you want to load [Image]s at run-time, you may use " +"[method Image.load]. If you want to import audio files, you can use the " +"snippet described in [member AudioStreamMP3.data]." +msgstr "" +"Retourne une [Resource] depuis le système de fichiers localisé au chemin " +"absolu [param path]. Sauf si cela est déjà référencé autre part (comme dans " +"un autre script ou dans une scène), la ressource est chargée depuis le " +"disque sur un appel de fonction, qui peut causé un petit délai, en " +"particulier pendant le chargement de larges scènes. Pour éviter des délais " +"inutiles lorsque vous chargez quelque chose plusieurs fois, vous pouvez " +"stocker la ressource dans une variable ou utiliser [method preload].\n" +"[b]Note :[/b] Les chemins des ressources peuvent être obtenus en faisant un " +"clic droit sur une ressource dans la barre d'outils du système de fichiers " +"et en choisissant \"Copier le chemin\", ou en déplaçant le fichier du " +"système de fichiers vers le script actuel.\n" +"[codeblock]\n" +"# Charge une scène appelée \"main\" située dans la racine du répertoire du " +"projet et la stocke dans une variable.\n" +"var main = load(\"res://main.tscn\") # main contiendra une ressource " +"PackedScene.\n" +"[/codeblock]\n" +"[b]Important :[/b] Le chemin doit être absolu. Un chemin relatif retournera " +"toujours [code]null[/code].\n" +"Cette fonction est une version simplifiée de [method ResourceLoader.load], " +"qui peut être utilisée pour des scénarios plus avancés.\n" +"[b]Note :[/b] Les fichiers doivent être importés dans le moteur de jeu en " +"premier pour qu'ils soient chargés en utilisant cette fonction. Si vous " +"voulez importer des [Image]s au run-time vous pouvez utiliser [method Image." +"load]. Si vous voulez importer des fichiers audio, vous pouvez utiliser " +"l'extrait décrit dans [member AudioStreamMP3.data]." + +msgid "" +"Returns a [Resource] from the filesystem located at [param path]. During run-" +"time, the resource is loaded when the script is being parsed. This function " +"effectively acts as a reference to that resource. Note that this function " +"requires [param path] to be a constant [String]. If you want to load a " +"resource from a dynamic/variable path, use [method load].\n" +"[b]Note:[/b] Resource paths can be obtained by right-clicking on a resource " +"in the Assets Panel and choosing \"Copy Path\", or by dragging the file from " +"the FileSystem dock into the current script.\n" +"[codeblock]\n" +"# Create instance of a scene.\n" +"var diamond = preload(\"res://diamond.tscn\").instantiate()\n" +"[/codeblock]" +msgstr "" +"Retourne la [Resource] localisée à [param path] dans le système de fichiers. " +"Pendant le run-time, la ressource est chargée lors de la lecture initiale du " +"script. Cette fonction agit efficacement comme une référence à cette " +"ressource. Notez que cette méthode nécessite que [param path] soit un " +"[String] constant. Si vous voulez charger une ressource depuis un chemin " +"variable/dynamique, utilisez [method load].\n" +"[b]Note:[/b] Les chemins des ressources peuvent être obtenus en cliquant " +"avec le bouton droit sur la ressource dans la fenêtre des Assets puis en " +"choisissant \"Copier le chemin\", ou en faisant glisser le fichier depuis la " +"fenêtre \"Système de fichiers\" vers le script courant.\n" +"[codeblock]\n" +"# Instancie une scène.\n" +"var diamant = preload(\"res://diamant.tscn\").instantiate()\n" +"[/codeblock]" + +msgid "" +"Like [method @GlobalScope.print], but includes the current stack frame when " +"running with the debugger turned on.\n" +"The output in the console may look like the following:\n" +"[codeblock]\n" +"Test print\n" +"At: res://test.gd:15:_process()\n" +"[/codeblock]\n" +"[b]Note:[/b] Calling this function from a [Thread] is not supported. Doing " +"so will instead print the thread ID." +msgstr "" +"Comme [method @GlobalScope.print], mais inclus l'image de la pile actuelle " +"quand le débogueur est activé.\n" +"La sortie dans la console ressemblerait à ceci :\n" +"[codeblock]\n" +"Test print\n" +"At: res://test.gd:15:_process()\n" +"[/codeblock]\n" +"[b]Note : [/b] Appeler cette fonction depuis un [Thread] n'est pas supporté. " +"Le faire imprimerait alors l'ID du thread." + +msgid "" +"Prints a stack trace at the current code location. See also [method " +"get_stack].\n" +"The output in the console may look like the following:\n" +"[codeblock]\n" +"Frame 0 - res://test.gd:16 in function '_process'\n" +"[/codeblock]\n" +"[b]Note:[/b] This function only works if the running instance is connected " +"to a debugging server (i.e. an editor instance). [method print_stack] will " +"not work in projects exported in release mode, or in projects exported in " +"debug mode if not connected to a debugging server.\n" +"[b]Note:[/b] Calling this function from a [Thread] is not supported. Doing " +"so will instead print the thread ID." +msgstr "" +"Affiche une trace d'appels à l'endroit actuel du code. Voir également " +"[method get_stack].\n" +"Le résultat dans le terminal pourrait ressembler à ci-dessous :\n" +"[codeblock]\n" +"Frame 0 - res://test.gd:16 in function '_process'\n" +"[/codeblock]\n" +"[b]Note :[/b] Cette fonction fonctionne uniquement si l'instance en cours " +"d’exécution est connectée à un serveur de débogage (par ex. une instance " +"d'éditeur). [method print_stack] ne fonctionnera pas dans les projets " +"exportés en mode publication, ou dans des projets exportés en mode débogage " +"s'il n'est pas connecté à un serveur de débogage.\n" +"[b]Note :[/b] Appeler cette fonction depuis un [Thread] n'est pas supporté. " +"Le faire ainsi écrira à la place l'ID du fil d'exécution." + +msgid "" +"Returns an array with the given range. [method range] can be called in three " +"ways:\n" +"[code]range(n: int)[/code]: Starts from 0, increases by steps of 1, and " +"stops [i]before[/i] [code]n[/code]. The argument [code]n[/code] is " +"[b]exclusive[/b].\n" +"[code]range(b: int, n: int)[/code]: Starts from [code]b[/code], increases by " +"steps of 1, and stops [i]before[/i] [code]n[/code]. The arguments [code]b[/" +"code] and [code]n[/code] are [b]inclusive[/b] and [b]exclusive[/b], " +"respectively.\n" +"[code]range(b: int, n: int, s: int)[/code]: Starts from [code]b[/code], " +"increases/decreases by steps of [code]s[/code], and stops [i]before[/i] " +"[code]n[/code]. The arguments [code]b[/code] and [code]n[/code] are " +"[b]inclusive[/b] and [b]exclusive[/b], respectively. The argument [code]s[/" +"code] [b]can[/b] be negative, but not [code]0[/code]. If [code]s[/code] is " +"[code]0[/code], an error message is printed.\n" +"[method range] converts all arguments to [int] before processing.\n" +"[b]Note:[/b] Returns an empty array if no value meets the value constraint " +"(e.g. [code]range(2, 5, -1)[/code] or [code]range(5, 5, 1)[/code]).\n" +"Examples:\n" +"[codeblock]\n" +"print(range(4)) # Prints [0, 1, 2, 3]\n" +"print(range(2, 5)) # Prints [2, 3, 4]\n" +"print(range(0, 6, 2)) # Prints [0, 2, 4]\n" +"print(range(4, 1, -1)) # Prints [4, 3, 2]\n" +"[/codeblock]\n" +"To iterate over an [Array] backwards, use:\n" +"[codeblock]\n" +"var array = [3, 6, 9]\n" +"for i in range(array.size(), 0, -1):\n" +" print(array[i - 1])\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock]\n" +"9\n" +"6\n" +"3\n" +"[/codeblock]\n" +"To iterate over [float], convert them in the loop.\n" +"[codeblock]\n" +"for i in range (3, 0, -1):\n" +" print(i / 10.0)\n" +"[/codeblock]\n" +"Output:\n" +"[codeblock]\n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" +msgstr "" +"Retourne un tableau avec l'intervalle donnée. [method range] peut être " +"appelé de trois façons :\n" +"[code]range(n: int)[/code] : Commence à 0, augmente par étape de 1, et " +"s'arrête [i]avant[/i] [code]n[/code]. L'argument [code]n[/code] est " +"[b]exclusif[/b].\n" +"[code]range(b: int, n: int)[/code]: Commence à [code]b[/code], augmente par " +"étape de 1, et s'arrête [i]avant[/i] [code]n[/code]. L'argument [code]b[/" +"code] est [b]inclusif[/b], et [code]n[/code] est [b]exclusif[/b], " +"respectivement.\n" +"[code]range(b: int, n: int, s: int)[/code] : Commence à [code]b[/code], " +"augmente/diminue par étape de [code]s[/code], et s'arrête [i]avant[/i] " +"[code]n[/code]. Les arguments [code]b[/code] et [code]n[/code] sont " +"[b]inclusifs[/b], et [code]n[/code] est [b]exclusif[/b]. L'argument [code]s[/" +"code] [b]peut[/b] être négatif, mais pas [code]0[/code]. Si [code]s[/code] " +"est [code]0[/code], un message d'erreur est affiché.\n" +"[method range] convertit tous les arguments en [int] avant le traitement.\n" +"[b]Note :[/b] Retourne un tableau vide si aucune valeur ne respecte les " +"contraintes (par ex. [code]range(2, 5, -1)[/code] ou [code]range(5, 5, 1)[/" +"code]).\n" +"Exemples :\n" +"[codeblock]\n" +"print(range(4)) # Affiche [0, 1, 2, 3]\n" +"print(range(2, 5)) # Affiche [2, 3, 4]\n" +"print(range(0, 6, 2)) # Affiche [0, 2, 4]\n" +"print(range(4, 1, -1)) # Affiche [4, 3, 2]\n" +"[/codeblock]\n" +"Pour parcourir un [Array] à l'envers, utilisez :\n" +"[codeblock]\n" +"var array = [3, 6, 9]\n" +"for i in range(array.size(), 0, -1):\n" +" print(array[i - 1])\n" +"[/codeblock]\n" +"En sortie :\n" +"[codeblock]\n" +"9\n" +"6\n" +"3\n" +"[/codeblock]\n" +"Pour itérer sur un [float], convertissez les dans la boucle.\n" +"[codeblock]\n" +"for i in range (3, 0, -1):\n" +" print(i / 10.0)\n" +"[/codeblock]\n" +"En sortie :\n" +"[codeblock]\n" +"0.3\n" +"0.2\n" +"0.1\n" +"[/codeblock]" + +msgid "" +"Returns [code]true[/code] if the given [Object]-derived class exists in " +"[ClassDB]. Note that [Variant] data types are not registered in [ClassDB].\n" +"[codeblock]\n" +"type_exists(\"Sprite2D\") # Returns true\n" +"type_exists(\"NonExistentClass\") # Returns false\n" +"[/codeblock]" +msgstr "" +"Renvoie [code]true[/code] si la classe dérivée [Object] donnée existe dans " +"[ClassDB]. Notez que les types de données [Variant] ne sont pas enregistrés " +"dans [ClassDB].\n" +"[codeblock]\n" +"type_exists(\"Sprite2D\") # Retourne true\n" +"type_exists(\"NonExistentClass\") # Retourne false\n" +"[/codeblock]" + +msgid "" +"Constant that represents how many times the diameter of a circle fits around " +"its perimeter. This is equivalent to [code]TAU / 2[/code], or 180 degrees in " +"rotations." +msgstr "" +"Constante qui représente le nombre de fois que le diamètre d'un cercle " +"correspond à son périmètre. Elle équivaut à [code]TAU / 2[/code], soit 180 " +"degrés de rotation." + msgid "" "The circle constant, the circumference of the unit circle in radians. This " "is equivalent to [code]PI * 2[/code], or 360 degrees in rotations." @@ -385,6 +727,205 @@ msgstr "" "radians. C'est l'équivalent de [code]PI * 2[/code] ou de 360 degrés en " "rotation." +msgid "" +"\"Not a Number\", an invalid floating-point value. [constant NAN] has " +"special properties, including that it is not equal to itself ([code]NAN == " +"NAN[/code] returns [code]false[/code]). It is output by some invalid " +"operations, such as dividing floating-point [code]0.0[/code] by [code]0.0[/" +"code].\n" +"[b]Warning:[/b] \"Not a Number\" is only a concept with floating-point " +"numbers, and has no equivalent for integers. Dividing an integer [code]0[/" +"code] by [code]0[/code] will not result in [constant NAN] and will result in " +"a run-time error instead." +msgstr "" +"\"Not a Number\" (n'est pas un nombre), un nombre flottant (nombre à " +"virgule) invalide. [constant NAN] a des propriétés particulières, notamment " +"le fait qu'elle n'est pas égale à elle-même ([code]NAN == NAN[/code] " +"retourne [code]false[/code]). Elle est produite par certaines opérations " +"invalides, comme la division d'un flottant [code]0.0[/code] par [code]0.0[/" +"code].\n" +"[b]Attention:[/b] \"Not a Number\" est seulement un concept spécifique aux " +"flottants. (et aux problèmes de précision de ces nombres), et n'a pas " +"d'équivalent pour les nombres entiers. La division d'un entier [code]0[/" +"code] par [code]0[/code] ne résultera pas en [constant NAN] mais entraînera " +"directement une erreur d'exécution." + +msgid "" +"Define a new category for the following exported properties. This helps to " +"organize properties in the Inspector dock.\n" +"See also [constant PROPERTY_USAGE_CATEGORY].\n" +"[codeblock]\n" +"@export_category(\"Statistics\")\n" +"@export var hp = 30\n" +"@export var speed = 1.25\n" +"[/codeblock]\n" +"[b]Note:[/b] Categories in the Inspector dock's list usually divide " +"properties coming from different classes (Node, Node2D, Sprite, etc.). For " +"better clarity, it's recommended to use [annotation @export_group] and " +"[annotation @export_subgroup], instead." +msgstr "" +"Définir une nouvelle catégorie pour les propriétés exportées suivantes. Cela " +"permet d'organiser les propriétés dans l'Inspector Dock.\n" +"Voir aussi [constante PROPERTY_USAGE_CATEGORY].\n" +"[codeblock]\n" +"@export_category(\"Statistics\")\n" +"@export var hp = 30\n" +"@export var speed = 1.25\n" +"[/codeblock]\n" +"[b]Note:[/b] Les catégories dans la liste de l'Inspector Dock divisent " +"généralement les propriétés provenant de différentes classes (Node, Node2D, " +"Sprite, etc.). Pour plus de clarté, il est recommandé d'utiliser plutôt " +"[annotation @export_group] et [annotation @export_subgroup]." + +msgid "" +"Export a [Color] property without allowing its transparency ([member Color." +"a]) to be edited.\n" +"See also [constant PROPERTY_HINT_COLOR_NO_ALPHA].\n" +"[codeblock]\n" +"@export_color_no_alpha var dye_color: Color\n" +"[/codeblock]" +msgstr "" +"Exporter une propriété [Color] sans permettre l'édition de sa transparence " +"([membre Color.a]).\n" +"Voir aussi [constante PROPERTY_HINT_COLOR_NO_ALPHA].\n" +"[codeblock]\n" +"@export_color_no_alpha var dye_color: Color\n" +"[/codeblock]" + +msgid "" +"Export a [String] property as a path to a directory. The path will be " +"limited to the project folder and its subfolders. See [annotation " +"@export_global_dir] to allow picking from the entire filesystem.\n" +"See also [constant PROPERTY_HINT_DIR].\n" +"[codeblock]\n" +"@export_dir var sprite_folder_path: String\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété [String] en tant que chemin d'accès à un répertoire. " +"Le chemin sera limité au dossier du projet et à ses sous-dossiers. Voir " +"[annotation @export_global_dir] pour permettre de choisir dans l'ensemble du " +"système de fichiers.\n" +"Voir aussi [constante PROPERTY_HINT_DIR].\n" +"[codeblock]\n" +"@export_dir var sprite_folder_path: String\n" +"[/codeblock]" + +msgid "" +"Export a floating-point property with an easing editor widget. Additional " +"hints can be provided to adjust the behavior of the widget. " +"[code]\"attenuation\"[/code] flips the curve, which makes it more intuitive " +"for editing attenuation properties. [code]\"positive_only\"[/code] limits " +"values to only be greater than or equal to zero.\n" +"See also [constant PROPERTY_HINT_EXP_EASING].\n" +"[codeblock]\n" +"@export_exp_easing var transition_speed\n" +"@export_exp_easing(\"attenuation\") var fading_attenuation\n" +"@export_exp_easing(\"positive_only\") var effect_power\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété nombre à virgule avec un widget d'éditeur de courbe. " +"Des aides additionnelles peuvent être ajoutées pour ajuster le comportement " +"de ce widget. [code]\"attenuation\"[/code] retourne la courbe, ce qui la " +"rend plus intuitive pour éditer des propriétés d'atténuation. " +"[code]\"positive_only\"[/code] oblige les valeurs à être supérieures ou " +"égales à zéro.\n" +"Voir aussi [constant PROPERTY_HINT_EXP_EASING].\n" +"[codeblock]\n" +"@export_exp_easing var transition_speed\n" +"@export_exp_easing(\"attenuation\") var fading_attenuation\n" +"@export_exp_easing(\"positive_only\") var effect_power\n" +"[/codeblock]" + +msgid "" +"Export an integer property as a bit flag field for 2D render layers. The " +"widget in the Inspector dock will use the layer names defined in [member " +"ProjectSettings.layer_names/2d_render/layer_1].\n" +"See also [constant PROPERTY_HINT_LAYERS_2D_RENDER].\n" +"[codeblock]\n" +"@export_flags_2d_render var render_layers: int\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété entière en tant qu'un champ drapeau bit pour le " +"calques de rendu 2D. Le widget dans la barre d'outils de l'Inspecteur " +"utilisera les noms des calques définis dans [member ProjectSettings." +"layer_names/2d_render/layer_1].\n" +"Voir également [constant PROPERTY_HINT_LAYERS_2D_RENDER].\n" +"[codeblock]\n" +"@export_flags_2d_render var render_layers: int\n" +"[/codeblock]" + +msgid "" +"Export a [String] property with a large [TextEdit] widget instead of a " +"[LineEdit]. This adds support for multiline content and makes it easier to " +"edit large amount of text stored in the property.\n" +"See also [constant PROPERTY_HINT_MULTILINE_TEXT].\n" +"[codeblock]\n" +"@export_multiline var character_biography\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété [String] avec un widget [TextEdit] large à la place " +"d'un [LineEdit]. Cela ajoute du support pour un contenu multi-ligne et rend " +"plus facile l'édition de beaucoup de texte stocké dans la propriété.\n" +"Voir également [constant PROPERTY_HINT_MULTILINE_TEXT].\n" +"[codeblock]\n" +"@export_multiline var character_biography\n" +"[/codeblock]" + +msgid "" +"Export a [NodePath] property with a filter for allowed node types.\n" +"See also [constant PROPERTY_HINT_NODE_PATH_VALID_TYPES].\n" +"[codeblock]\n" +"@export_node_path(\"Button\", \"TouchScreenButton\") var some_button\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété [NodePath] avec un filtre pour les types de nœud " +"autorisés.\n" +"Voir également [constant PROPERTY_HINT_NODE_PATH_VALID_TYPES].\n" +"[codeblock]\n" +"@export_node_path(\"Button\", \"TouchScreenButton\") var some_button\n" +"[/codeblock]" + +msgid "" +"Export a [String] property with a placeholder text displayed in the editor " +"widget when no value is present.\n" +"See also [constant PROPERTY_HINT_PLACEHOLDER_TEXT].\n" +"[codeblock]\n" +"@export_placeholder(\"Name in lowercase\") var character_id: String\n" +"[/codeblock]" +msgstr "" +"Exporte une propriété [String] avec un emplacement réservé de texte affiché " +"dans le widget d'éditeur widget quand aucune valeur n'est présente.\n" +"Voir également [constant PROPERTY_HINT_PLACEHOLDER_TEXT].\n" +"[codeblock]\n" +"@export_placeholder(\"Nom en minuscule\") var id_personnage: String\n" +"[/codeblock]" + +msgid "" +"Mark the following statement to ignore the specified [param warning]. See " +"[url=$DOCS_URL/tutorials/scripting/gdscript/warning_system.html]GDScript " +"warning system[/url].\n" +"[codeblock]\n" +"func test():\n" +" print(\"hello\")\n" +" return\n" +" @warning_ignore(\"unreachable_code\")\n" +" print(\"unreachable\")\n" +"[/codeblock]" +msgstr "" +"Marquez l'instruction suivante pour ignorer le [param warning] spécifié. " +"Voir [url=$DOCS_URL/tutorials/scripting/gdscript/warning_system." +"html]GDScript warning system[/url].\n" +"[codeblock]\n" +"func test():\n" +" print(\"hello\")\n" +" return\n" +" @warning_ignore(\"unreachable_code\")\n" +" print(\"unreachable\")\n" +"[/codeblock]" + +msgid "Global scope constants and functions." +msgstr "Constantes et fonction à portée globale." + msgid "Random number generation" msgstr "Génération de nombres aléatoires" @@ -5168,19 +5709,6 @@ msgid "" msgstr "" "Les calques de rendu où le [CanvasItem] est affecté par les nœuds [Light2D]." -msgid "The material applied to textures on this [CanvasItem]." -msgstr "Le matériau appliqué aux textures de ce [CanvasItem]." - -msgid "The color applied to textures on this [CanvasItem]." -msgstr "La couleur appliquée aux textures de ce [CanvasItem]." - -msgid "" -"The color applied to textures on this [CanvasItem]. This is not inherited by " -"children [CanvasItem]s." -msgstr "" -"La couleur appliquée aux textures sur ce [CanvasItem]. Cela n'est pas hérité " -"pour les [CanvasItem] enfants." - msgid "If [code]true[/code], the object draws behind its parent." msgstr "Si [code]true[/code], l'objet est affiché derrière son parent." @@ -5742,9 +6270,6 @@ msgstr "" msgid "Base node for collision objects." msgstr "Nœud de base pour les objets de collision." -msgid "Defines a 2D collision polygon." -msgstr "Définit un polygone de collision 2D." - msgid "Collision build mode. Use one of the [enum BuildMode] constants." msgstr "" "Le mode d'assemblage. Utilisez l'une des constantes de [enum BuildMode]." @@ -5773,37 +6298,9 @@ msgstr "" "plus élevées rendront la forme plus épaisse, et fonctionneront mieux pour " "les objets entrant en collision quand ils vont à une vitesse élevée." -msgid "Collisions will include the polygon and its contained area." -msgstr "Les collisions comprendront ce polygone et sa zone englobante." - -msgid "Collisions will only include the polygon edges." -msgstr "Les collisions n'incluront que les bords du polygone." - -msgid "" -"Length that the resulting collision extends in either direction " -"perpendicular to its polygon." -msgstr "" -"La longueur que la collision résultante s'étend dans la direction " -"perpendiculaire à son polygone." - msgid "If [code]true[/code], no collision will be produced." msgstr "Si [code]true[/code], aucune collision ne sera produite." -msgid "" -"Array of vertices which define the polygon.\n" -"[b]Note:[/b] The returned value is a copy of the original. Methods which " -"mutate the size or properties of the return value will not impact the " -"original polygon. To change properties of the polygon, assign it to a " -"temporary variable and make changes before reassigning the [code]polygon[/" -"code] member." -msgstr "" -"Un tableau de sommets qui définissent le polygone.\n" -"[b]Note :[/b] La valeur retournée est une copie de l'original. Les méthodes " -"qui modifie la taille ou les propriétés de la valeur de retour n'affecteront " -"pas le polygone d'origine. Pour modifier les propriétés du polygone, " -"assignez-le à une variable temporaire et faites des changements avant de le " -"réassigner au membre [code]polygon[/code]." - msgid "Node that represents collision shape data in 2D space." msgstr "" "Le nœud qui représente les données de forme de collision dans l'espace 2D." @@ -5909,6 +6406,10 @@ msgstr "Couleur beige." msgid "Bisque color." msgstr "Couleur bisque." +msgid "Black color. In GDScript, this is the default value of any color." +msgstr "" +"Couleur noire. Dans GDScript, c'est la valeur par défaut de chaque couleur." + msgid "Blue color." msgstr "Couleur bleue." @@ -5918,6 +6419,9 @@ msgstr "Couleur bleu violet." msgid "Brown color." msgstr "Couleur marron." +msgid "Burlywood color." +msgstr "Couleur bois dur." + msgid "Cadet blue color." msgstr "Couleur bleu cadet." @@ -6484,21 +6988,15 @@ msgstr "" "Affiche un rectangle rempli de la couleur [member color]. Si vous devez " "seulement afficher la bordure, utilisez plutôt un [ReferenceRect]." -msgid "" -"The array of points that make up the [ConcavePolygonShape2D]'s line segments." -msgstr "" -"Le tableau des points qui composent les segments de ligne de " -"[ConcavePolygonShape2D]." - -msgid "Returns the faces (an array of triangles)." -msgstr "Retourne les faces (un tableau de triangles)." - -msgid "Sets the faces (an array of triangles)." -msgstr "Définit les faces (un tableau de triangles)." - msgid "A twist joint between two 3D PhysicsBodies." msgstr "Une articulation de torsion entre deux PhysicsBodies 3D." +msgid "Returns the value of the specified parameter." +msgstr "Retourne la valeur du paramètre donné." + +msgid "Sets the value of the specified parameter." +msgstr "Définit une valeur pour le paramètre spécifié." + msgid "" "The speed with which the swing or twist will take place.\n" "The higher, the faster." @@ -6798,6 +7296,32 @@ msgstr "Envoyé lorsque le nœud reçoit le focus." msgid "Sent when the node loses focus." msgstr "Envoyé lorsque le nœud perd le focus." +msgid "" +"Sent when the node needs to refresh its theme items. This happens in one of " +"the following cases:\n" +"- The [member theme] property is changed on this node or any of its " +"ancestors.\n" +"- The [member theme_type_variation] property is changed on this node.\n" +"- One of the node's theme property overrides is changed.\n" +"- The node enters the scene tree.\n" +"[b]Note:[/b] As an optimization, this notification won't be sent from " +"changes that occur while this node is outside of the scene tree. Instead, " +"all of the theme item updates can be applied at once when the node enters " +"the scene tree." +msgstr "" +"Envoyé si le nœud a besoin de rafraîchir ses éléments de thème. Cela se " +"passe dans l'un des cas suivants :\n" +"- La propriété [member theme] est changée sur ce nœud ou sur un de ses " +"ancêtres.\n" +"- La propriété [member theme_type_variation] est changée sur ce nœud.\n" +"- Une des surcharges d'une propriété de thème est changée pour ce nœud.\n" +"- Le nœud entre la hiérarchie de la scène.\n" +"[b]Note :[/b] Pour plus d'optimisation, cette notification ne sera pas " +"envoyée pour les changements qui se passent pendant que ce nœud est en " +"dehors de la hiérarchie de la scène. À la place, toues les mises à jour " +"d'éléments de thème peuvent être appliqués dès que le nœud entre dans la " +"hiérarchie de la scène." + msgid "" "Sent when this node is inside a [ScrollContainer] which has begun being " "scrolled." @@ -7125,17 +7649,6 @@ msgstr "" "membres [code]anchor_*[/code], comme [member anchor_left]. Pour modifier les " "4 ancres à la fois, utilisez [method set_anchors_preset]." -msgid "" -"The polygon's list of vertices. Can be in either clockwise or " -"counterclockwise order. Only set this property with convex hull points, use " -"[method set_point_cloud] to generate a convex hull shape from concave shape " -"points." -msgstr "" -"La liste des sommets du polygone. Peut être dans le sens horaire ou dans le " -"sens anti-horaire. Ne définissez cette propriété qu'avec des points d'une " -"forme convexe, et utilisez [method set_point_cloud] pour générer une forme " -"convexe à partir de points d'une forme concave." - msgid "The list of 3D points forming the convex polygon shape." msgstr "La liste des points 3D formant le polygone convexe." @@ -8910,8 +9423,29 @@ msgstr "" msgid "Removes a custom type added by [method add_custom_type]." msgstr "Supprime un type personnalisé ajouté par [method add_custom_type]." +msgid "Removes an import plugin registered by [method add_import_plugin]." +msgstr "Supprime un plugin importé inscrit par [method add_import_plugin]." + msgid "Removes an inspector plugin registered by [method add_import_plugin]" -msgstr "Supprime un type personnalisé ajouté par [method add_custom_type]" +msgstr "Supprime un plugin d'inspecteur inscrit par [method add_import_plugin]" + +msgid "Removes a gizmo plugin registered by [method add_node_3d_gizmo_plugin]." +msgstr "" +"Supprime un plugin manipulateur ajouté par [method add_node_3d_gizmo_plugin]." + +msgid "" +"Removes a resource conversion plugin registered by [method " +"add_resource_conversion_plugin]." +msgstr "" +"Supprime un plugin de conversion de ressource inscrit par [method " +"add_resource_conversion_plugin]." + +msgid "" +"Removes a scene format importer registered by [method " +"add_scene_format_importer_plugin]." +msgstr "" +"Supprime un importeur de format scène inscrit par [method " +"add_scene_format_importer_plugin]." msgid "" "Emitted when user changes the workspace ([b]2D[/b], [b]3D[/b], [b]Script[/" @@ -9327,6 +9861,13 @@ msgstr "" "\"annuler\" est perdue. Ceci est utile surtout pour les nœuds retirés avec " "l'appel \"faire\" (et non pas l'appel \"annuler\" !)." +msgid "" +"Emitted when the version of any history has changed as a result of undo or " +"redo call." +msgstr "" +"Émis quand la version de n'importe quel historique a changé à cause d'un " +"appel d'annulation ou de retour en arrière." + msgid "" "Fetches new changes from the remote, but doesn't write changes to the " "current working directory. Equivalent to [code]git fetch[/code]." @@ -10539,15 +11080,9 @@ msgstr "Une articulation de torsion entre deux corps 3D." msgid "Returns the value of the specified flag." msgstr "Retourne la valeur de l'option donnée." -msgid "Returns the value of the specified parameter." -msgstr "Retourne la valeur du paramètre donné." - msgid "If [code]true[/code], enables the specified flag." msgstr "Si [code]true[/code], active le drapeau spécifié." -msgid "Sets the value of the specified parameter." -msgstr "Définit une valeur pour le paramètre spécifié." - msgid "" "The minimum rotation. Only active if [member angular_limit/enable] is " "[code]true[/code]." @@ -11736,16 +12271,6 @@ msgstr "" msgid "Placeholder for the root [Node] of a [PackedScene]." msgstr "Le nœud fictif pour le [Node] racine de la [PackedScene]." -msgid "Integer built-in type." -msgstr "Type intégré d'entier." - -msgid "" -"Cast a [bool] value to an integer value, [code]int(true)[/code] will be " -"equals to 1 and [code]int(false)[/code] will be equals to 0." -msgstr "" -"Transformer un [bool] en une valeur entière, [code]int(true)[/code] donnera " -"1 et [code]int(false)[/code] donnera 0." - msgid "Internet protocol (IP) support functions such as DNS resolution." msgstr "" "Le protocole internet (IP) supporte des fonctionnalités comme la résolution " @@ -12008,6 +12533,13 @@ msgstr "Le nœud attaché à la première extrémité (A) du joint." msgid "The node attached to the second side (B) of the joint." msgstr "Le nœud attaché à la seconde extrémité (B) du joint." +msgid "" +"Attempts to parse the [param json_string] provided and returns the parsed " +"data. Returns [code]null[/code] if parse failed." +msgstr "" +"Essaie de parser le [param json_string] fourni et retourne les données " +"parsées. Retourne [code]null[/code] si l'analyse du string a échouée." + msgid "Limits the lines of text the node shows on screen." msgstr "Limite le nombre de lignes de texte que le nœud affiche à l'écran." @@ -14944,7 +15476,7 @@ msgstr "" "Active ou désactive l'envoi de paquets de diffusion (par exemple " "[code]set_dest_address(\"255.255.255.255\", 4343)[/code]. Cette option est " "désactivée par défaut.\n" -"[b]Note :[/b] Certains appareils Android peuvent nécessiter la permission " +"[b]Note :[/b] Certains appareils Android peuvent nécessiter la permission " "[code]CHANGE_WIFI_MULTICAST_STATE[/code] et cette option pour être activée " "pour recevoir aussi des paquets de diffusion." @@ -14960,6 +15492,75 @@ msgstr "" "d'envoyer des paquets à une adresse de diffusion (par exemple " "[code]255.255.255[/code])." +msgid "" +"Waits for a packet to arrive on the bound address. See [method bind].\n" +"[b]Note:[/b] [method wait] can't be interrupted once it has been called. " +"This can be worked around by allowing the other party to send a specific " +"\"death pill\" packet like this:\n" +"[codeblocks]\n" +"[gdscript]\n" +"socket = PacketPeerUDP.new()\n" +"# Server\n" +"socket.set_dest_address(\"127.0.0.1\", 789)\n" +"socket.put_packet(\"Time to stop\".to_ascii())\n" +"\n" +"# Client\n" +"while socket.wait() == OK:\n" +" var data = socket.get_packet().get_string_from_ascii()\n" +" if data == \"Time to stop\":\n" +" return\n" +"[/gdscript]\n" +"[csharp]\n" +"var socket = new PacketPeerUDP();\n" +"// Server\n" +"socket.SetDestAddress(\"127.0.0.1\", 789);\n" +"socket.PutPacket(\"Time to stop\".ToAscii());\n" +"\n" +"// Client\n" +"while (socket.Wait() == OK)\n" +"{\n" +" string data = socket.GetPacket().GetStringFromASCII();\n" +" if (data == \"Time to stop\")\n" +" {\n" +" return;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"Attend qu'un paquet arrive sur l'adresse attachée. Voir [method bind].\n" +"[b]Note :[/b] [method wait] ne peut pas être interrompu une fois appelé. " +"Nous pouvons contourner cela en autorisant l'autre partie à envoyer un " +"paquet \"death pill\" comme cela :\n" +"[codeblock]\n" +"# Serveur\n" +"socket.set_dest_address(\"127.0.0.1\", 789)\n" +"socket.put_packet(\"Time to stop\".to_ascii())\n" +"\n" +"# Client\n" +"while socket.wait() == OK:\n" +" var data = socket.get_packet().get_string_from_ascii()\n" +" if data == \"Time to stop\":\n" +" return\n" +"[/gdscript]\n" +"[csharp]\n" +"var socket = new PacketPeerUDP();\n" +"// Serveur\n" +"socket.SetDestAddress(\"127.0.0.1\", 789);\n" +"socket.PutPacket(\"Time to stop\".ToAscii());\n" +"\n" +"// Client\n" +"while (socket.Wait() == OK)\n" +"{\n" +" string data = socket.GetPacket().GetStringFromASCII();\n" +" if (data == \"Time to stop\")\n" +" {\n" +" return;\n" +" }\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "Provides an opaque background for [Control] children." msgstr "Fournis un arrière-plan opaque pour le [Control] enfant." @@ -14993,6 +15594,21 @@ msgstr "" msgid "The style of [PanelContainer]'s background." msgstr "Le style de l'arrière-plan de [PanelContainer]." +msgid "A [Material] used with [Sky] to draw a background texture." +msgstr "" +"Un [Material] utilisé avec [Sky] utilisé pour dessiner une texture d'arrière-" +"plan." + +msgid "" +"A boolean value to determine if the background texture should be filtered or " +"not." +msgstr "" +"Une valeur booléenne pour déterminer si la texture de l'arrière-plan doit " +"être filtrée ou pas." + +msgid "[Texture2D] to be applied to the [PanoramaSkyMaterial]." +msgstr "La [Texture2D] à appliquer au [PanoramaSkyMaterial]." + msgid "The base position offset for all [ParallaxLayer] children." msgstr "" "Le décalage de la position de base pour tous les enfants du [ParallaxLayer]." @@ -17812,13 +18428,6 @@ msgstr "" "Marque l'objet donné pour être supprimé, l'appel [method Object.free] se " "fera après la trame actuelle." -msgid "" -"If [code]true[/code], the application automatically accepts quitting.\n" -"For mobile platforms, see [member quit_on_go_back]." -msgstr "" -"Si [code]true[/code], l'application accepte automatiquement de se fermer.\n" -"Pour les plateformes mobiles, voir [method set_quit_on_go_back]." - msgid "The current scene." msgstr "La scène actuelle." @@ -18990,6 +19599,52 @@ msgstr "" "définie et que vous ne l'avez pas fournie pour le premier sommet, cette " "information peut ne jamais être utilisée." +msgid "Used to indicate a disabled custom channel." +msgstr "Utilisé pour indiquer un canal personnalisé désactivé." + +msgid "Each individual vertex can be influenced by up to 8 bone weights." +msgstr "" +"Chaque somment individuel peut être influencé uniquement par 8 poids d'os." + +msgid "Virtual method which can be overridden to clear any local caches." +msgstr "" +"Méthode virtuelle qui peut être surchargée pour nettoyer certains caches " +"locaux." + +msgid "" +"Virtual method which can be overridden to return syntax highlighting data.\n" +"See [method get_line_syntax_highlighting] for more details." +msgstr "" +"Méthode virtuelle qui peut être surchargée pour retourner des données de " +"syntaxe.\n" +"Voir [method get_line_syntax_highlighting] pour plus de détails." + +msgid "Virtual method which can be overridden to update any local caches." +msgstr "" +"Méthode virtuelle qui peut être surchargée pour mettre à jour les caches " +"locaux." + +msgid "Returns the associated [TextEdit] node." +msgstr "Retourne le nœud associé [TextEdit]." + +msgid "If set to [code]true[/code], italic or oblique font is preferred." +msgstr "" +"Si définit à [code]true[/code], les polices en italique ou oblique sont " +"préférées." + +msgid "" +"Array of font family names to search, first matching font found is used." +msgstr "" +"Tableau de noms de familles de polices à chercher, la première police " +"correspondante est utilisée." + +msgid "" +"Preferred font stretch amount, compared to a normal width. A percentage " +"value between [code]50%[/code] and [code]200%[/code]." +msgstr "" +"Valeur préférée de l'étirement de la police, comparée une largeur normale. " +"Une valeur de pourcentage entre [code]50%[/code] et [code]200%[/code]." + msgid "" "Simple tabs control, similar to [TabContainer] but is only in charge of " "drawing tabs, not interacting with children." @@ -19001,6 +19656,9 @@ msgstr "" msgid "Adds a new tab." msgstr "Ajoute un nouvel onglet." +msgid "Clears all tabs." +msgstr "Efface tous les onglets." + msgid "Moves the scroll view to make the tab visible." msgstr "Déplace la vue de défilement pour rendre l'onglet visible." @@ -19015,12 +19673,64 @@ msgstr "" msgid "Returns the previously active tab index." msgstr "Retourne l'index de l'onglet précédemment actif." +msgid "" +"Returns the [Texture2D] for the right button of the tab at index [param " +"tab_idx] or [code]null[/code] if the button has no [Texture2D]." +msgstr "" +"Retourne la [Texture2D] pour le bouton droit de l'onglet à l'index [param " +"tab_idx] ou [code]null[/code] si le bouton n'a pas de [Texture2D]." + +msgid "" +"Returns the [Texture2D] for the tab at index [param tab_idx] or [code]null[/" +"code] if the tab has no [Texture2D]." +msgstr "" +"Retourne la [Texture2D] pour l'onglet à l'index [param tab_idx] ou " +"[code]null[/code] si l'onglet n'a pas de [Texture2D]." + +msgid "" +"Returns the index of the tab at local coordinates [param point]. Returns " +"[code]-1[/code] if the point is outside the control boundaries or if there's " +"no tab at the queried position." +msgstr "" +"Retourne l'index de l'onglet aux coordonnées locales [param point]. Retourne " +"[code]-1[/code] si le point est en dehors des limites de contrôle ou s'il " +"n'y a pas d'onglet à la position demandée." + msgid "Returns the number of hidden tabs offsetted to the left." msgstr "Retourne le nombre d'onglets cachés décalés vers la gauche." msgid "Returns tab [Rect2] with local position and size." msgstr "Retourne l'onglet [Rect2] avec la position et la taille locales." +msgid "" +"Returns [code]true[/code] if the tab at index [param tab_idx] is hidden." +msgstr "" +"Retourne [code]true[/code] si l'onglet à l'index [param tab_idx] est masqué." + +msgid "Moves a tab from [param from] to [param to]." +msgstr "Déplace un onglet de [param from] à [param to]." + +msgid "Removes the tab at index [param tab_idx]." +msgstr "Retire l'onglet à l'index [param tab_idx]." + +msgid "" +"Sets an [param icon] for the button of the tab at index [param tab_idx] " +"(located to the right, before the close button), making it visible and " +"clickable (See [signal tab_button_pressed]). Giving it a [code]null[/code] " +"value will hide the button." +msgstr "" +"Définit un [param icon] pour le bouton de l'onglet à l'index [param tab_idx] " +"(qui se trouve à droite, avant de bouton de fermeture), le rendant visible " +"et cliquable (voir [signal tab_button_pressed]). Lui donner une valeur " +"[code]null[/code] cachera le bouton." + +msgid "" +"If [param disabled] is [code]true[/code], disables the tab at index [param " +"tab_idx], making it non-interactable." +msgstr "" +"Si [param disabled] est [code]true[/code], désactive l'onglet à l'index " +"[param tab_idx], le rendant non-interactif." + msgid "Select tab at index [code]tab_idx[/code]." msgstr "Sélectionne l'onglet à l'index [code]tab_idx[/code]." @@ -20246,11 +20956,6 @@ msgstr "" "connexions [PacketPeerUDP] acceptées avec [method take_connection] (les " "pairs distantes ne seront pas notifiés)." -msgid "Helper to manage undo/redo operations in the editor or custom tools." -msgstr "" -"Un aide pour gérer les opérations d'annulation/refaire dans l'éditeur ou les " -"outils personnalisés." - msgid "" "Gets the version. Every time a new action is committed, the [UndoRedo]'s " "version number is increased automatically.\n" @@ -20614,13 +21319,6 @@ msgstr "" "Retourne un nouveau vecteur avec tous les composants arrondis à la valeur " "inférieur (vers -infini)." -msgid "" -"Returns [code]true[/code] if the vector is normalized, [code]false[/code] " -"otherwise." -msgstr "" -"Retourne [code]true[/code] si le vecteur est normalisé, et [code]false[/" -"code] sinon." - msgid "Returns the length (magnitude) of this vector." msgstr "Retourne la longueur (magnitude) de ce vecteur." diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po index 4ffb3f53cce..56333385200 100644 --- a/doc/translations/zh_CN.po +++ b/doc/translations/zh_CN.po @@ -24,7 +24,7 @@ # zzh , 2021. # longhjues , 2021. # 800Coins , 2021. -# qjyqjyqjyqjy , 2021. +# qjyqjyqjyqjy , 2021, 2023. # mzzhao <13030224963@163.com>, 2021. # Baiyuan Qiu <1061688677@qq.com>, 2021. # CZM <605557370@qq.com>, 2021. @@ -71,11 +71,14 @@ # ZHANG JIANFEI <3468144728@qq.com>, 2023. # tjw123hh , 2023. # miaoqvmiao , 2023. +# Wisdom Salee , 2023. +# mengyu <1093697597@qq.com>, 2023. +# long li <2361520824@qq.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Godot Engine class reference\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot\n" -"PO-Revision-Date: 2023-03-14 11:31+0000\n" +"PO-Revision-Date: 2023-04-03 18:21+0000\n" "Last-Translator: 风青山 \n" "Language-Team: Chinese (Simplified) \n" @@ -84,7 +87,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.2-dev\n" +"X-Generator: Weblate 4.17-dev\n" msgid "Description" msgstr "描述" @@ -144,13 +147,13 @@ msgid "Default" msgstr "默认" msgid "Setter" -msgstr "Setter" +msgstr "设值函数" msgid "value" msgstr "值" msgid "Getter" -msgstr "Getter" +msgstr "取值函数" msgid "" "This method should typically be overridden by the user to have any effect." @@ -192,25 +195,6 @@ msgstr "" msgid "GDScript exports" msgstr "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 "" -"返回一个由整数红([param r8])、绿([param g8])、蓝([param b8])和可选的 " -"Alpha([param a8])通道构造的 [Color],每个通道的最终值都会除以 [code]255.0[/" -"code]。\n" -"[codeblock]\n" -"var red = Color8(255, 0, 0) # 与 Color(1, 0, 0) 相同\n" -"var dark_blue = Color8(0, 0, 51) # 与 Color(0, 0, 0.2) 相同。\n" -"var my_color = Color8(306, 255, 0, 102) # 与 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 " @@ -721,6 +705,26 @@ msgstr "" "[code]0[/code] 除以 [code]0[/code] 不会产生 [constant NAN],而是会产生一个运" "行时错误。" +msgid "" +"Mark the following property as exported (editable in the Inspector dock and " +"saved to disk). To control the type of the exported property, use the type " +"hint notation.\n" +"[codeblock]\n" +"@export var string = \"\"\n" +"@export var int_number = 5\n" +"@export var float_number: float = 5\n" +"@export var image: Image\n" +"[/codeblock]" +msgstr "" +"将以下属性标记为导出的(可在检查器窗口中进行编辑并保存到磁盘)。使用类型提示" +"控制导出属性的类型。\n" +"[codeblock]\n" +"@export var string = \"\"\n" +"@export var int_number = 5\n" +"@export var float_number: float = 5\n" +"@export var image : Image\n" +"[/codeblock]" + msgid "" "Define a new category for the following exported properties. This helps to " "organize properties in the Inspector dock.\n" @@ -746,6 +750,20 @@ msgstr "" "Sprite等)的属性分隔开来。详情请参阅 [annotation @export_group] 和 " "[annotation @export_subgroup]。" +msgid "" +"Export a [Color] property without allowing its transparency ([member Color." +"a]) to be edited.\n" +"See also [constant PROPERTY_HINT_COLOR_NO_ALPHA].\n" +"[codeblock]\n" +"@export_color_no_alpha var dye_color: Color\n" +"[/codeblock]" +msgstr "" +"导出一个 [Color] 属性,不允许编辑其透明度 ([member Color.a])。\n" +"另请参阅 [constant PROPERTY_HINT_COLOR_NO_ALPHA] 。\n" +"[codeblock]\n" +"@export_color_no_alpha var dye_color: Color\n" +"[/codeblock]" + msgid "" "Export a [String] property as a path to a directory. The path will be " "limited to the project folder and its subfolders. See [annotation " @@ -912,7 +930,7 @@ msgid "" "@export_flags_2d_navigation var navigation_layers: int\n" "[/codeblock]" msgstr "" -"将整数属性导出为 2D 导航层的位标志字段。检查器停靠栏中的小部件,将使用在 " +"将整数属性导出为 2D 导航层的位标志字段。检查器停靠面板中的小部件,将使用在 " "[member ProjectSettings.layer_names/2d_navigation/layer_1] 中定义的层名称。\n" "另请参见 [constant PROPERTY_HINT_LAYERS_2D_NAVIGATION]。\n" "[codeblock]\n" @@ -944,7 +962,7 @@ msgid "" "@export_flags_2d_render var render_layers: int\n" "[/codeblock]" msgstr "" -"将整数属性导出为 2D 渲染层的位标志字段。检查器停靠栏中的小工具将使用在 " +"将整数属性导出为 2D 渲染层的位标志字段。检查器停靠面板中的小工具将使用在 " "[member ProjectSettings.layer_names/2d_render/layer_1] 中定义的层名称。\n" "另请参见 [constant PROPERTY_HINT_LAYERS_2D_RENDER]。\n" "[codeblock]\n" @@ -1036,54 +1054,6 @@ msgstr "" "@export_global_file(\"*.txt\") var notes_path: String\n" "[/codeblock]" -msgid "" -"Define a new group for the following exported properties. This helps to " -"organize properties in the Inspector dock. Groups can be added with an " -"optional [param prefix], which would make group to only consider properties " -"that have this prefix. The grouping will break on the first property that " -"doesn't have a prefix. The prefix is also removed from the property's name " -"in the Inspector dock.\n" -"If no [param prefix] is provided, the every following property is added to " -"the group. The group ends when then next group or category is defined. You " -"can also force end a group by using this annotation with empty strings for " -"parameters, [code]@export_group(\"\", \"\")[/code].\n" -"Groups cannot be nested, use [annotation @export_subgroup] to add subgroups " -"within groups.\n" -"See also [constant PROPERTY_USAGE_GROUP].\n" -"[codeblock]\n" -"@export_group(\"Racer Properties\")\n" -"@export var nickname = \"Nick\"\n" -"@export var age = 26\n" -"\n" -"@export_group(\"Car Properties\", \"car_\")\n" -"@export var car_label = \"Speedy\"\n" -"@export var car_number = 3\n" -"\n" -"@export_group(\"\", \"\")\n" -"@export var ungrouped_number = 3\n" -"[/codeblock]" -msgstr "" -"为以下导出的属性定义一个新分组。这有助于在检查器面板中组织属性。添加新分组时" -"可以选择性地提供 [param prefix] ,分组将仅考虑具有此前缀的属性。分组将在第一" -"个没有该前缀的属性处结束。前缀也将从检查器面板中的属性名称中移除。\n" -"如果未提供 [param prefix],以下每个属性都将添加到分组中。当定义下一个分组或类" -"别时,该分组结束。你还可以通过将此注解与空字符串的参数一起使用来强制结束组," -"[code]@export_group(\"\", \"\")[/code]。\n" -"分组不能嵌套,使用 [annotation @export_subgroup] 在组内添加子分组。\n" -"另见 [constant PROPERTY_USAGE_GROUP]。\n" -"[codeblock]\n" -"@export_group(\"My Properties\")\n" -"@export var number = 3\n" -"@export var string = \"\"\n" -"\n" -"@export_group(\"Prefixed Properties\", \"prefix_\")\n" -"@export var prefix_number = 3\n" -"@export var prefix_string = \"\"\n" -"\n" -"@export_group(\"\", \"\")\n" -"@export var ungrouped_number = 3\n" -"[/codeblock]" - msgid "" "Export a [String] property with a large [TextEdit] widget instead of a " "[LineEdit]. This adds support for multiline content and makes it easier to " @@ -2249,29 +2219,6 @@ msgstr "" "[code]lerp_angle(0, PI, weight)[/code] 会逆时针插值,而 [code]lerp_angle(0, " "PI + 5 * TAU, weight)[/code] 则会顺时针插值。" -msgid "" -"Linearly interpolates between two values by the factor defined in [param " -"weight]. To perform interpolation, [param weight] should be between " -"[code]0.0[/code] and [code]1.0[/code] (inclusive). However, values outside " -"this range are allowed and can be used to perform [i]extrapolation[/i]. If " -"this is not desired, use [method clampf] on the result of this function.\n" -"[codeblock]\n" -"lerp(0, 4, 0.75) # Returns 3.0\n" -"[/codeblock]\n" -"See also [method inverse_lerp] which performs the reverse of this operation. " -"To perform eased interpolation with [method lerp], combine it with [method " -"ease] or [method smoothstep]." -msgstr "" -"通过 [param weight] 中定义的因子在两个值之间进行线性插值。要执行插值,[param " -"weight] 应介于 [code]0.0[/code] 和 [code]1.0[/code] 之间(包含)。但是,超出" -"此范围的值是允许的,并可用于执行 [i]外推 [/i]。如果不需要,请对此函数的结果使" -"用 [method clampf]。\n" -"[codeblock]\n" -"lerp(0, 4, 0.75) # 返回 3.0\n" -"[/codeblock]\n" -"另请参阅执行本操作的逆运算的 [method inverse_lerp]。要使用 [method lerp] 执行" -"缓动插值,请将其与 [method ease] 或 [method smoothstep] 结合使用。" - msgid "" "Converts from linear energy to decibels (audio). This can be used to " "implement volume sliders that behave as expected (since volume isn't " @@ -2298,26 +2245,6 @@ msgstr "" "linear_to_db($Slider.value))\n" "[/codeblock]" -msgid "" -"Returns the natural logarithm of [param x]. This is the amount of time " -"needed to reach a certain level of continuous growth.\n" -"[b]Note:[/b] This is not the same as the \"log\" function on most " -"calculators, which uses a base 10 logarithm.\n" -"[codeblock]\n" -"log(10) # Returns 2.302585\n" -"[/codeblock]\n" -"[b]Note:[/b] The logarithm of [code]0[/code] returns [code]-inf[/code], " -"while negative values return [code]-nan[/code]." -msgstr "" -"返回 [param x] 的自然对数。这是持续增长到一定程度所需的时间。\n" -"[b]注意:[/b]这个函数与大多数计算器上的对数“log”函数不同,他们适用的底数是 " -"10。\n" -"[codeblock]\n" -"log(10) # 返回 2.302585\n" -"[/codeblock]\n" -"[b]注意:[/b][code]0[/code] 的对数返回 [code]-inf[/code],负值返回 [code]-" -"nan[/code]。" - msgid "" "Returns the maximum of the given numeric values. This function can take any " "number of arguments.\n" @@ -3100,40 +3027,6 @@ msgstr "" "[method Vector2.sign]、[method Vector2i.sign]、[method Vector3.sign]、" "[method Vector3i.sign]、[method Vector4.sign]、或 [method Vector4i.sign]。" -msgid "" -"Returns [code]-1.0[/code] if [param x] is negative, [code]1.0[/code] if " -"[param x] is positive, and [code]0.0[/code] if [param x] is zero.\n" -"[codeblock]\n" -"sign(-6.5) # Returns -1.0\n" -"sign(0.0) # Returns 0.0\n" -"sign(6.5) # Returns 1.0\n" -"[/codeblock]" -msgstr "" -"如果 [param x] 为负,则返回 [code]-1.0[/code];如果 [param x] 为正,则返回 " -"[code]1.0[/code];如果 [param x] 为零,则返回 [code]0.0[/code]。\n" -"[codeblock]\n" -"sign(-6.5) # 返回 -1.0\n" -"sign(0.0) # 返回 0.0\n" -"sign(6.5) # 返回 1.0\n" -"[/codeblock]" - -msgid "" -"Returns [code]-1[/code] if [param x] is negative, [code]1[/code] if [param " -"x] is positive, and [code]0[/code] if if [param x] is zero.\n" -"[codeblock]\n" -"sign(-6) # Returns -1\n" -"sign(0) # Returns 0\n" -"sign(6) # Returns 1\n" -"[/codeblock]" -msgstr "" -"如果 [param x] 为负,则返回 [code]-1[/code];如果 [param x] 为正,则返回 " -"[code]1[/code];如果 [param x] 为零,则返回 [code]0[/code]。\n" -"[codeblock]\n" -"sign(-6) # 返回 -1\n" -"sign(0) # 返回 0\n" -"sign(6) # 返回 1\n" -"[/codeblock]" - msgid "" "Returns the sine of angle [param angle_rad] in radians.\n" "[codeblock]\n" @@ -3240,39 +3133,6 @@ msgstr "" "Vector3.snapped]、[method Vector3i.snapped]、[method Vector4.snapped]、或 " "[method Vector4i.snapped]。" -msgid "" -"Returns the multiple of [param step] that is the closest to [param x]. This " -"can also be used to round a floating point number to an arbitrary number of " -"decimals.\n" -"A type-safe version of [method snapped], returning a [float].\n" -"[codeblock]\n" -"snapped(32.0, 2.5) # Returns 32.5\n" -"snapped(3.14159, 0.01) # Returns 3.14\n" -"[/codeblock]" -msgstr "" -"返回最接近 [param x] 的 [param step] 的倍数。也可用于将浮点数四舍五入为任意的" -"小数位数。\n" -"[method snapped] 的类型安全版本,返回一个 [float]。\n" -"[codeblock]\n" -"snapped(32.0, 2.5) # 返回 32.5\n" -"snapped(3.14159, 0.01) # 返回 3.14\n" -"[/codeblock]" - -msgid "" -"Returns the multiple of [param step] that is the closest to [param x].\n" -"A type-safe version of [method snapped], returning an [int].\n" -"[codeblock]\n" -"snapped(53, 16) # Returns 48\n" -"snapped(4096, 100) # Returns 4100\n" -"[/codeblock]" -msgstr "" -"返回最接近 [param x] 的 [param step] 的倍数。\n" -"[method snapped] 的类型安全版本,返回一个 [int]。\n" -"[codeblock]\n" -"snapped(53, 16) # 返回 48\n" -"snapped(4096, 100) # 返回 4100\n" -"[/codeblock]" - msgid "" "Returns the square root of [param x], where [param x] is a non-negative " "number.\n" @@ -5557,9 +5417,7 @@ msgstr "高等向量数学" msgid "" "Constructs a default-initialized [AABB] with default (zero) values of " "[member position] and [member size]." -msgstr "" -"使用 [member position] 和 [member size] 的默认值(零)构造一个默认初始化的 " -"[AABB]。" +msgstr "默认构造 [AABB],[member position] 和 [member size] 均为默认值(零)。" msgid "Constructs an [AABB] as a copy of the given [AABB]." msgstr "构造给定 [AABB] 的副本。" @@ -5699,6 +5557,20 @@ msgstr "该 [AABB] 与另一个交叠时,返回 [code]true[/code]。" msgid "Returns [code]true[/code] if the [AABB] is on both sides of a plane." msgstr "该 [AABB] 同时位于指定平面的两边时,返回 [code]true[/code]。" +msgid "" +"Returns the point of intersection of the given ray with this [AABB] or " +"[code]null[/code] if there is no intersection. Ray length is infinite." +msgstr "" +"返回给定的射线与该 [AABB] 的交点,如果不相交则返回 [code]null[/code]。射线无" +"限长。" + +msgid "" +"Returns the point of intersection between [param from] and [param to] with " +"this [AABB] or [code]null[/code] if there is no intersection." +msgstr "" +"如果没有交点,则返回 [code]null[/code],否则返回 [param from] 和 [param to] " +"与此 [AABB] 的交点。" + msgid "" "Returns [code]true[/code] if this [AABB] and [param aabb] are approximately " "equal, by calling [method @GlobalScope.is_equal_approx] on each component." @@ -5734,15 +5606,6 @@ msgstr "" "从 [member position] 到 [member end] 的大小。通常所有分量都是正数。\n" "如果大小为负,可以用 [method abs] 修正。" -msgid "" -"Returns [code]true[/code] if the vectors are not 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 "" "Inversely transforms (multiplies) the [AABB] by the given [Transform3D] " "transformation matrix." @@ -8478,7 +8341,7 @@ msgstr "" "[code]null[/code]。" msgid "Returns the list of stored library keys." -msgstr "返回存储的库的键的列表。" +msgstr "返回存储库的键名列表。" msgid "Returns the list of stored animation keys." msgstr "返回存储的动画键列表。" @@ -9858,6 +9721,96 @@ msgstr "" msgid "A generic array datatype." msgstr "通用数组数据类型。" +msgid "" +"A generic array that can contain several elements of any type, accessible by " +"a numerical index starting at 0. Negative indices can be used to count from " +"the back, like in Python (-1 is the last element, -2 is the second to last, " +"etc.).\n" +"[b]Example:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = [\"One\", 2, 3, \"Four\"]\n" +"print(array[0]) # One.\n" +"print(array[2]) # 3.\n" +"print(array[-1]) # Four.\n" +"array[2] = \"Three\"\n" +"print(array[-2]) # Three.\n" +"[/gdscript]\n" +"[csharp]\n" +"var array = new Godot.Collections.Array{\"One\", 2, 3, \"Four\"};\n" +"GD.Print(array[0]); // One.\n" +"GD.Print(array[2]); // 3.\n" +"GD.Print(array[array.Count - 1]); // Four.\n" +"array[2] = \"Three\";\n" +"GD.Print(array[array.Count - 2]); // Three.\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Arrays can be concatenated using the [code]+[/code] operator:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array1 = [\"One\", 2]\n" +"var array2 = [3, \"Four\"]\n" +"print(array1 + array2) # [\"One\", 2, 3, \"Four\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// Array concatenation is not possible with C# arrays, but is with Godot." +"Collections.Array.\n" +"var array1 = new Godot.Collections.Array{\"One\", 2};\n" +"var array2 = new Godot.Collections.Array{3, \"Four\"};\n" +"GD.Print(array1 + array2); // Prints [One, 2, 3, Four]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a " +"new array, which has a cost. If you want to append another array to an " +"existing array, [method append_array] is more efficient.\n" +"[b]Note:[/b] Arrays are always passed by reference. To get a copy of an " +"array that can be modified independently of the original array, use [method " +"duplicate].\n" +"[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] " +"supported and will result in unpredictable behavior." +msgstr "" +"通用数组,可以包含任意类型的多个元素,可以通过从 0 开始的数字索引进行访问。负" +"数索引可以用来从后面数起,就像在 Python 中一样(-1 是最后一个元素、-2 是倒数" +"第二,以此类推)。\n" +"[b]示例:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array = [\"One\", 2, 3, \"Four\"]\n" +"print(array[0]) # One。\n" +"print(array[2]) # 3。\n" +"print(array[-1]) # Four。\n" +"array[2] = \"Three\"\n" +"print(array[-2]) # Three。\n" +"[/gdscript]\n" +"[csharp]\n" +"var array = new Godot.Collections.Array{\"One\", 2, 3, \"Four\"};\n" +"GD.Print(array[0]); // One。\n" +"GD.Print(array[2]); // 3。\n" +"GD.Print(array[array.Count - 1]); // Four。\n" +"array[2] = \"Three\";\n" +"GD.Print(array[array.Count - 2]); // Three。\n" +"[/csharp]\n" +"[/codeblocks]\n" +"可以使用 [code]+[/code] 运算符连接数组:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var array1 = [\"One\", 2]\n" +"var array2 = [3, \"Four\"]\n" +"print(array1 + array2) # [\"One\", 2, 3, \"Four\"]\n" +"[/gdscript]\n" +"[csharp]\n" +"// C# 数组无法进行数组串联,但 Godot.Collections.Array 可以。\n" +"var array1 = new Godot.Collections.Array{\"One\", 2};\n" +"var array2 = new Godot.Collections.Array{3, \"Four\"};\n" +"GD.Print(array1 + array2); // Prints [One, 2, 3, Four]\n" +"[/csharp]\n" +"[/codeblocks]\n" +"[b]注意:[/b]用 [code]+=[/code] 操作符串联将创建一个新的数组,这是有代价的。" +"如果要将另一个数组追加到现有的数组中,[method append_array] 会更有效。\n" +"[b]注意:[/b]数组总是通过引用来传递。要获得一个可以独立于原始数组而被修改的数" +"组的副本,请使用 [method duplicate]。\n" +"[b]注意:[/b][b]不[/b]支持在遍历数组时擦除元素,这将导致不可预知的行为。" + msgid "Constructs an empty [Array]." msgstr "构造空的 [Array]。" @@ -10803,6 +10756,18 @@ msgstr "" "度,如果左操作数 [Array] 元素数量相等或较多则返回 [code]true[/code],否则返" "回 [code]false[/code]。" +msgid "" +"Returns a reference to the element of type [Variant] at the specified " +"location. Arrays start at index 0. [param index] can be a zero or positive " +"value to start from the beginning, or a negative value to start from the " +"end. Out-of-bounds array access causes a run-time error, which will result " +"in an error being printed and the project execution pausing if run from the " +"editor." +msgstr "" +"该函数返回指定位置的 [Variant] 类型元素的引用。数组从索引0开始。 [param " +"index] 可以是一个从头开始的零或正值,也可以是一个从末尾开始的负值。访问越界的" +"数组会导致运行时错误,这将导致在编辑器中运行时打印错误并暂停项目执行。" + msgid "" "[Mesh] type that provides utility for constructing a surface from arrays." msgstr "[Mesh] 网格类型,提供了用于从数组构造表面的工具。" @@ -11390,6 +11355,13 @@ msgstr "" "如果将第2个点的权重更改为 3,则结果将改为 [code][1, 4, 3][/code],因为现在即" "使距离更长,通过第 4 点也比通过第 2 点“更容易”。" +msgid "" +"Returns the capacity of the structure backing the points, useful in " +"conjunction with [method reserve_space]." +msgstr "" +"该函数返回支持点的数据结构的容量,可以与 [method reserve_space] 方法一起使" +"用。" + msgid "" "Returns an array with the IDs of the points that form the connection with " "the given point.\n" @@ -11912,11 +11884,98 @@ msgstr "" "[b]注意:[/b]这种方法不是线程安全的。如果从 [Thread] 调用,它将返回一个空的 " "[PackedVector3Array],并打印一条错误消息。" +msgid "" +"Reserves space internally for [param num_nodes] points. Useful if you're " +"adding a known large number of points at once, such as points on a grid. New " +"capacity must be greater or equals to old capacity." +msgstr "" +"该函数为 [param num_nodes] 个点内部预留空间。如果您一次添加了大量已知数量的" +"点,例如网格上的点,则此函数很有用。新的容量必须大于或等于旧的容量。" + msgid "" "A* (or \"A-Star\") pathfinding tailored to find the shortest paths on 2D " "grids." msgstr "A*(或“A 星”)寻路,为寻找 2D 网格上的最短路径定制。" +msgid "" +"Compared to [AStar2D] you don't need to manually create points or connect " +"them together. It also supports multiple type of heuristics and modes for " +"diagonal movement. This class also provides a jumping mode which is faster " +"to calculate than without it in the [AStar2D] class.\n" +"In contrast to [AStar2D], you only need set the [member size] of the grid, " +"optionally set the [member cell_size] and then call the [method update] " +"method:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar_grid = AStarGrid2D.new()\n" +"astar_grid.size = Vector2i(32, 32)\n" +"astar_grid.cell_size = Vector2(16, 16)\n" +"astar_grid.update()\n" +"print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # prints (0, " +"0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # prints " +"(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +"[/gdscript]\n" +"[csharp]\n" +"AStarGrid2D astarGrid = new AStarGrid2D();\n" +"astarGrid.Size = new Vector2I(32, 32);\n" +"astarGrid.CellSize = new Vector2I(16, 16);\n" +"astarGrid.Update();\n" +"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // prints " +"(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"与 [AStar2D] 相比,您无需手动创建点或将它们连接在一起。它还支持多种类型的启发" +"式方法和对角线移动模式。该类还提供了跳跃模式,比 [AStar2D] 类中没有它计算更" +"快。\n" +"与 [AStar2D] 不同的是,您只需要设置网格的 [member size],可选择设置 [member " +"cell_size],然后调用 [method update] 方法即可:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var astar_grid = AStarGrid2D.new()\n" +"astar_grid.size = Vector2i(32, 32)\n" +"astar_grid.cell_size = Vector2(16, 16)\n" +"astar_grid.update()\n" +"print(astar_grid.get_id_path(Vector2i(0, 0), Vector2i(3, 4))) # prints (0, " +"0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # prints " +"(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +"[/gdscript]\n" +"[csharp]\n" +"AStarGrid2D astarGrid = new AStarGrid2D();\n" +"astarGrid.Size = new Vector2I(32, 32);\n" +"astarGrid.CellSize = new Vector2I(16, 16);\n" +"astarGrid.Update();\n" +"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // prints " +"(0, 0), (1, 1), (2, 2), (3, 3), (3, 4)\n" +"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // " +"prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Called when computing the cost between two connected points.\n" +"Note that this function is hidden in the default [code]AStarGrid2D[/code] " +"class." +msgstr "" +"当计算两个连接点之间的代价时调用该函数。\n" +"请注意,该函数在默认的 [code]AStarGrid2D[/code] 类中是隐藏的。" + +msgid "" +"Called when estimating the cost between a point and the path's ending " +"point.\n" +"Note that this function is hidden in the default [code]AStarGrid2D[/code] " +"class." +msgstr "" +"当估算一个点和路径结束点之间的代价时,调用该函数。\n" +"请注意,该函数在默认的 [code]AStarGrid2D[/code] 类中是隐藏的。" + +msgid "Clears the grid and sets the [member size] to [constant Vector2i.ZERO]." +msgstr "清空网格并将 [member size] 设置为 [constant Vector2i.ZERO]。" + msgid "" "Returns an array with the IDs of the points that form the path found by " "AStar2D between the given points. The array is ordered from the starting " @@ -11925,6 +11984,18 @@ msgstr "" "返回一个数组,其中包含形成 AStar2D 在给定点之间找到的路径的点的 ID。该数组从" "路径的起点到终点排序。" +msgid "" +"Returns an array with the points that are in the path found by AStarGrid2D " +"between the given points. The array is ordered from the starting point to " +"the ending point of the path.\n" +"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it " +"will return an empty [PackedVector3Array] and will print an error message." +msgstr "" +"返回一个数组,其中包含 AStarGrid2D 在给定点之间找到的路径上的点。数组从路径的" +"起点到终点排序。\n" +"[b]注意:[/b]该方法不是线程安全的。如果从 [Thread] 中调用它,它将返回一个空的 " +"[PackedVector3Array] 并打印一个错误消息。" + msgid "" "Indicates that the grid parameters were changed and [method update] needs to " "be called." @@ -11970,15 +12041,203 @@ msgstr "" "路段的总成本时,[param weight_scale] 要乘以 [method _compute_cost] 的结果。\n" "[b]注意:[/b]调用该函数后不需要调用 [method update]。" +msgid "" +"Updates the internal state of the grid according to the parameters to " +"prepare it to search the path. Needs to be called if parameters like [member " +"size], [member cell_size] or [member offset] are changed. [method is_dirty] " +"will return [code]true[/code] if this is the case and this needs to be " +"called." +msgstr "" +"根据参数更新网格的内部状态,以准备搜索路径。如果更改了诸如 [member size]、" +"[member cell_size] 或 [member offset] 等参数,就需要调用它。如果是这种情况," +"[method is_dirty] 将返回 [code]true[/code],需要调用此方法。" + +msgid "" +"The size of the point cell which will be applied to calculate the resulting " +"point position returned by [method get_point_path]. If changed, [method " +"update] needs to be called before finding the next path." +msgstr "" +"要用于计算由 [method get_point_path] 返回的结果点位置的点单元的大小。如果更改" +"了这个值,在查找下一个路径之前需要调用 [method update]。" + +msgid "" +"The default [enum Heuristic] which will be used to calculate the cost " +"between two points if [method _compute_cost] was not overridden." +msgstr "" +"默认 [enum Heuristic],用于在没有覆盖 [method _compute_cost] 时计算两点之间的" +"消耗。" + +msgid "" +"The default [enum Heuristic] which will be used to calculate the cost " +"between the point and the end point if [method _estimate_cost] was not " +"overridden." +msgstr "" +"默认 [enum Heuristic],用于在没有覆盖 [method _estimate_cost] 时计算该点和终" +"点之间的消耗。" + +msgid "" +"A specific [enum DiagonalMode] mode which will force the path to avoid or " +"accept the specified diagonals." +msgstr "特定的 [enum DiagonalMode],会强制路径避免或接受特定的对角线。" + +msgid "" +"Enables or disables jumping to skip up the intermediate points and speeds up " +"the searching algorithm.\n" +"[b]Note:[/b] Currently, toggling it on disables the consideration of weight " +"scaling in pathfinding." +msgstr "" +"启用或禁用跳跃,以跳过中间点并加快搜索算法的速度。\n" +"[b]注意:[/b] 目前,打开它会在寻路过程中忽略权重缩放。" + +msgid "" +"The offset of the grid which will be applied to calculate the resulting " +"point position returned by [method get_point_path]. If changed, [method " +"update] needs to be called before finding the next path." +msgstr "" +"栅格的偏移量,将被应用以计算 [method get_point_path] 返回的结果点的位置。如果" +"发生变化,需要在查找下一条路径之前调用 [method update]。" + +msgid "" +"The size of the grid (number of cells of size [member cell_size] on each " +"axis). If changed, [method update] needs to be called before finding the " +"next path." +msgstr "" +"栅格的大小(每个轴上大小为 [member cell_size] 的单元格数)。如果发生变化,需" +"要在查找下一条路径之前调用 [method update]。" + +msgid "" +"The [url=https://en.wikipedia.org/wiki/Euclidean_distance]Euclidean " +"heuristic[/url] to be used for the pathfinding using the following formula:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = sqrt(dx * dx + dy * dy)\n" +"[/codeblock]\n" +"[b]Note:[/b] This is also the internal heuristic used in [AStar3D] and " +"[AStar2D] by default (with the inclusion of possible z-axis coordinate)." +msgstr "" +"[url=https://zh.wikipedia.org/wiki/" +"%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E8%B7%9D%E7%A6%BB]欧几里德启发式算法[/" +"url]将被用于寻路,使用的公式如下:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = sqrt(dx * dx + dy * dy)\n" +"[/codeblock]\n" +"[b]注意:[/b]这也是 [AStar3D] 和 [AStar2D] 默认使用的内部启发式算法(包括可能" +"的 z 轴坐标)。" + +msgid "" +"The [url=https://en.wikipedia.org/wiki/Taxicab_geometry]Manhattan heuristic[/" +"url] to be used for the pathfinding using the following formula:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = dx + dy\n" +"[/codeblock]\n" +"[b]Note:[/b] This heuristic is intended to be used with 4-side orthogonal " +"movements, provided by setting the [member diagonal_mode] to [constant " +"DIAGONAL_MODE_NEVER]." +msgstr "" +"[url=https://zh.wikipedia.org/wiki/" +"%E6%9B%BC%E5%93%88%E9%A0%93%E8%B7%9D%E9%9B%A2]曼哈顿启发式算法[/url]将被用于" +"寻路,使用的公式如下:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = dx + dy\n" +"[/codeblock]\n" +"[b]注意:[/b]该启发式算法旨在与 4 边正交运动一起使用,4 边正交运动可通过将 " +"[member diagonal_mode] 设置为 [constant DIAGONAL_MODE_NEVER] 来提供。" + +msgid "" +"The Octile heuristic to be used for the pathfinding using the following " +"formula:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"f = sqrt(2) - 1\n" +"result = (dx < dy) ? f * dx + dy : f * dy + dx;\n" +"[/codeblock]" +msgstr "" +"Octile 启发式算法将被用于寻路,使用的公式如下:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"f = sqrt(2) - 1\n" +"result = (dx < dy) ? f * dx + dy : f * dy + dx;\n" +"[/codeblock]" + +msgid "" +"The [url=https://en.wikipedia.org/wiki/Chebyshev_distance]Chebyshev " +"heuristic[/url] to be used for the pathfinding using the following formula:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = max(dx, dy)\n" +"[/codeblock]" +msgstr "" +"[url=https://zh.wikipedia.org/wiki/" +"%E5%88%87%E6%AF%94%E9%9B%AA%E5%A4%AB%E8%B7%9D%E7%A6%BB]切比雪夫启发式算法[/" +"url]将被用于寻路,使用的公式如下:\n" +"[codeblock]\n" +"dx = abs(to_id.x - from_id.x)\n" +"dy = abs(to_id.y - from_id.y)\n" +"result = max(dx, dy)\n" +"[/codeblock]" + msgid "Represents the size of the [enum Heuristic] enum." msgstr "代表 [enum Heuristic] 枚举的大小。" +msgid "" +"The pathfinding algorithm will ignore solid neighbors around the target cell " +"and allow passing using diagonals." +msgstr "该寻路算法将忽略目标单元格周围的实体邻居,并允许沿对角线通过。" + +msgid "" +"The pathfinding algorithm will ignore all diagonals and the way will be " +"always orthogonal." +msgstr "该寻路算法将忽略所有对角线,并且路径始终是正交的。" + +msgid "" +"The pathfinding algorithm will avoid using diagonals if at least two " +"obstacles have been placed around the neighboring cells of the specific path " +"segment." +msgstr "" +"如果在特定路径段的相邻单元格周围放置了至少两个障碍物,则该寻路算法将避免使用" +"对角线。" + +msgid "" +"The pathfinding algorithm will avoid using diagonals if any obstacle has " +"been placed around the neighboring cells of the specific path segment." +msgstr "" +"如果在特定路径段的相邻单元格周围放置了任意障碍物,则该寻路算法将避免使用对角" +"线。" + msgid "Represents the size of the [enum DiagonalMode] enum." msgstr "代表 [enum DiagonalMode] 枚举的大小。" msgid "A texture that crops out part of another Texture2D." msgstr "裁剪其他 Texture2D 的纹理。" +msgid "" +"[Texture2D] resource that draws only part of its [member atlas] texture, as " +"defined by the [member region]. An additional [member margin] can also be " +"set, which is useful for small adjustments.\n" +"Multiple [AtlasTexture] resources can be cropped from the same [member " +"atlas]. Packing many smaller textures into a singular large texture helps to " +"optimize video memory costs and render calls.\n" +"[b]Note:[/b] [AtlasTexture] cannot be used in an [AnimatedTexture], and may " +"not tile properly in nodes such as [TextureRect], when inside other " +"[AtlasTexture] resources." +msgstr "" +"[Texture2D] 资源,只绘制其 [member atlas] 纹理中的由 [member region] 所定义的" +"那部分。还可以设置一个额外的 [member margin],这对于小的调整很有用。\n" +"可以从同一个[member atlas]中裁剪出多个 [AtlasTexture] 资源。将许多较小的纹理" +"打包成一个单一的大纹理有助于优化视频内存成本和渲染调用。\n" +"[b]注意:[/b][AtlasTexture] 不能在 [AnimatedTexture] 中使用,并且当在其他 " +"[AtlasTexture] 资源内时,可能无法在 [TextureRect] 等节点中正确平铺。" + msgid "" "The texture that contains the atlas. Can be any type inheriting from " "[Texture2D], including another [AtlasTexture]." @@ -11986,6 +12245,21 @@ msgstr "" "包含该图集的纹理。可以是任何继承自 [Texture2D] 的类型,包括其他 " "[AtlasTexture]。" +msgid "" +"If [code]true[/code], the area outside of the [member region] is clipped to " +"avoid bleeding of the surrounding texture pixels." +msgstr "" +"如果为 [code]true[/code],则 [member region] 之外的区域将被裁剪以避免周围纹理" +"像素的渗色。" + +msgid "" +"The margin around the [member region]. Useful for small adjustments. If the " +"[member Rect2.size] of this property (\"w\" and \"h\" in the editor) is set, " +"the drawn texture is resized to fit within the margin." +msgstr "" +"围绕 [member region] 的边距。对小的调整很有用。如果设置了该属性(编辑器中" +"的“w”和“h”)的 [member Rect2.size],则绘制的纹理将被调整大小以适合该边距。" + msgid "The region used to draw the [member atlas]." msgstr "用于绘制 [member atlas] 的区域。" @@ -12049,6 +12323,30 @@ msgstr "" msgid "Captures audio from an audio bus in real-time." msgstr "从音频总线上实时捕捉音频。" +msgid "" +"AudioEffectCapture is an AudioEffect which copies all audio frames from the " +"attached audio effect bus into its internal ring buffer.\n" +"Application code should consume these audio frames from this ring buffer " +"using [method get_buffer] and process it as needed, for example to capture " +"data from an [AudioStreamMicrophone], implement application-defined effects, " +"or to transmit audio over the network. When capturing audio data from a " +"microphone, the format of the samples will be stereo 32-bit floating point " +"PCM.\n" +"[b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be " +"[code]true[/code] for audio input to work. See also that setting's " +"description for caveats related to permissions and operating system privacy " +"settings." +msgstr "" +"AudioEffectCapture 是一种 AudioEffect,可将所有音频帧从附加的音频效果总线复制" +"到其内部的环形缓冲区中。\n" +"应用程序代码应使用 [method get_buffer] 从该环形缓冲区中消耗这些音频帧,并根据" +"需要对其进行处理,例如从 [AudioStreamMicrophone] 捕获数据,实现应用程序定义的" +"效果,或通过网络传输音频。从麦克风捕获音频数据时,样本格式将为立体声 32 位浮" +"点 PCM。\n" +"[b]注意:[/b][member ProjectSettings.audio/driver/enable_input] 必须为 " +"[code]true[/code] 音频输入才能正常工作。另请参阅该设置的说明,了解与权限和操" +"作系统隐私设置相关的注意事项。" + msgid "" "Returns [code]true[/code] if at least [param frames] audio frames are " "available to read in the internal ring buffer." @@ -12059,6 +12357,16 @@ msgstr "" msgid "Clears the internal ring buffer." msgstr "清除内部环形缓冲区。" +msgid "" +"Gets the next [param frames] audio samples from the internal ring buffer.\n" +"Returns a [PackedVector2Array] containing exactly [param frames] audio " +"samples if available, or an empty [PackedVector2Array] if insufficient data " +"was available." +msgstr "" +"从内部环形缓冲区获取后续 [param frames] 个音频样本。\n" +"如果足够的话,则返回一个恰好包含 [param frames] 个音频样本的 " +"[PackedVector2Array];如果可用数据不足,则返回一个空的 [PackedVector2Array]。" + msgid "Returns the total size of the internal ring buffer in frames." msgstr "返回内部环形缓冲区的总大小,以帧为单位。" @@ -12104,11 +12412,14 @@ msgid "The voice's volume." msgstr "声音的音量。" msgid "The voice's pan level." -msgstr "声音的声相电平。" +msgstr "声音的声像级别。" msgid "The voice's filter rate." msgstr "声音过滤比率。" +msgid "The number of voices in the effect." +msgstr "该效果中的声音数量。" + msgid "The effect's processed signal." msgstr "效果的处理信号。" @@ -12228,7 +12539,7 @@ msgid "" "Pan position for [code]tap1[/code]. Value can range from -1 (fully left) to " "1 (fully right)." msgstr "" -"[code]tap1[/code] 的平移位置。取值范围为 -1(完全向左)到 1(完全向右)。" +"[code]tap1[/code] 的声像位置。取值范围为 -1(完全向左)到 1(完全向右)。" msgid "If [code]true[/code], [code]tap2[/code] will be enabled." msgstr "如果为 [code]true[/code],将启用 [code]tap2[/code]。" @@ -12243,7 +12554,25 @@ msgid "" "Pan position for [code]tap2[/code]. Value can range from -1 (fully left) to " "1 (fully right)." msgstr "" -"[code]tap2[/code] 的平移位置。取值范围为 -1(完全向左)到 1(完全向右)。" +"[code]tap2[/code] 的声像位置。取值范围为 -1(完全向左)到 1(完全向右)。" + +msgid "" +"Adds a distortion audio effect to an Audio bus.\n" +"Modifies the sound to make it distorted." +msgstr "" +"为音频总线添加失真音频效果。\n" +"修改声音,使其失真。" + +msgid "" +"Different types are available: clip, tan, lo-fi (bit crushing), overdrive, " +"or waveshape.\n" +"By distorting the waveform the frequency content changes, which will often " +"make the sound \"crunchy\" or \"abrasive\". For games, it can simulate sound " +"coming from some saturated device or speaker very efficiently." +msgstr "" +"可以使用不同的类型:削波、正切、低保真(位破碎)、过载、波形。\n" +"通过扭曲波形,频率内容会发生变化,这通常会使声音“清脆”或“粗糙”。对于游戏,它" +"可以非常有效地模拟来自某些饱和设备或扬声器的声音。" msgid "Distortion power. Value can range from 0 to 1." msgstr "失真度。值的范围可在 0 到 1 之间。" @@ -12273,6 +12602,21 @@ msgid "" "waveform." msgstr "数字失真效果,可以切断波形顶部和底部的峰值。" +msgid "" +"Low-resolution digital distortion effect (bit depth reduction). You can use " +"it to emulate the sound of early digital audio devices." +msgstr "" +"低分辨率的数字失真效果(位深度减少)。可以使用它来模拟早期数字音频设备的声" +"音。" + +msgid "" +"Emulates the warm distortion produced by a field effect transistor, which is " +"commonly used in solid-state musical instrument amplifiers. The [member " +"drive] property has no effect in this mode." +msgstr "" +"模拟通常用于固态乐器放大器的场效应晶体管产生的暖失真。[member drive] 属性在该" +"模式下无效。" + msgid "" "Waveshaper distortions are used mainly by electronic musicians to achieve an " "extra-abrasive sound." @@ -12516,14 +12860,14 @@ msgstr "" "的频率。" msgid "Adds a panner audio effect to an audio bus. Pans sound left or right." -msgstr "向音频总线添加一个声相器音频效果。向左或向右平移声音。" +msgstr "向音频总线添加一个声像器音频效果。向左或向右声像移动声音。" msgid "" "Determines how much of an audio signal is sent to the left and right buses." msgstr "决定向左右总线发送的音频信号量。" msgid "Pan position. Value can range from -1 (fully left) to 1 (fully right)." -msgstr "平移位置。值的范围可以从 -1(完全左)到1(完全右)。" +msgstr "声像位置。值的范围可以从 -1(完全左)到1(完全右)。" msgid "" "Adds a phaser audio effect to an audio bus.\n" @@ -12772,7 +13116,15 @@ msgstr "用最大值作为幅度。" msgid "" "An audio effect that can be used to adjust the intensity of stereo panning." -msgstr "一种可用于调整立体声声相强度的音频效果。" +msgstr "一种可用于调整立体声声像强度的音频效果。" + +msgid "" +"Values greater than 1.0 increase intensity of any panning on audio passing " +"through this effect, whereas values less than 1.0 will decrease the panning " +"intensity. A value of 0.0 will downmix audio to mono." +msgstr "" +"大于 1.0 的值会增加通过该效果的音频的任何声像强度,而小于 1.0 的值会降低声像" +"强度。值为 0.0 会将音频缩混为单声道。" msgid "Overrides the location sounds are heard from." msgstr "覆盖听到声音的位置。" @@ -12892,6 +13244,20 @@ msgstr "返回名称为 [param bus_name] 的总线的索引。" msgid "Returns the name of the bus with the index [param bus_idx]." msgstr "返回索引为 [param bus_idx] 的总线的名称。" +msgid "" +"Returns the peak volume of the left speaker at bus index [param bus_idx] and " +"channel index [param channel]." +msgstr "" +"返回总线索引为 [param bus_idx] 且通道索引为 [param channel] 处的左扬声器的峰" +"值音量。" + +msgid "" +"Returns the peak volume of the right speaker at bus index [param bus_idx] " +"and channel index [param channel]." +msgstr "" +"返回总线索引为 [param bus_idx] 且通道索引为 [param channel] 处的右扬声器的峰" +"值音量。" + msgid "" "Returns the name of the bus that the bus at index [param bus_idx] sends to." msgstr "返回索引为 [param bus_idx] 的总线的发送目标总线的名称。" @@ -12899,6 +13265,18 @@ msgstr "返回索引为 [param bus_idx] 的总线的发送目标总线的名称 msgid "Returns the volume of the bus at index [param bus_idx] in dB." msgstr "返回索引为 [param bus_idx] 的总线的音量,单位为 dB。" +msgid "" +"Returns the names of all audio input devices detected on the system.\n" +"[b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be " +"[code]true[/code] for audio input to work. See also that setting's " +"description for caveats related to permissions and operating system privacy " +"settings." +msgstr "" +"返回系统中检测到的所有音频输入设备的名称。\n" +"[b]注意:[/b][member ProjectSettings.audio/driver/enable_input] 必须为 " +"[code]true[/code] 音频输入才能正常工作。另请参阅该设置的说明,了解与权限和操" +"作系统隐私设置相关的注意事项。" + msgid "Returns the sample rate at the output of the [AudioServer]." msgstr "返回 [AudioServer] 输出的采样率。" @@ -13066,9 +13444,33 @@ msgstr "" "用。在 [code]AudioStreamRandomPitch::instantiate_playback[/code] 的源文件中可" "以找到这方面的示例。" +msgid "" +"Returns true if this audio stream only supports monophonic playback, or " +"false if the audio stream supports polyphony." +msgstr "" +"如果该音频流仅支持单声道播放,则返回 true;如果音频流支持复调,则返回 false。" + msgid "Audio stream that generates sounds procedurally." msgstr "使用程序生成声音的音频流。" +msgid "" +"This audio stream does not play back sounds, but expects a script to " +"generate audio data for it instead. See also " +"[AudioStreamGeneratorPlayback].\n" +"See also [AudioEffectSpectrumAnalyzer] for performing real-time audio " +"spectrum analysis.\n" +"[b]Note:[/b] Due to performance constraints, this class is best used from C# " +"or from a compiled language via GDExtension. If you still want to use this " +"class from GDScript, consider using a lower [member mix_rate] such as 11,025 " +"Hz or 22,050 Hz." +msgstr "" +"该音频流不播放声音,但需要脚本为其生成音频数据。另见 " +"[AudioStreamGeneratorPlayback]。\n" +"另请参阅 [AudioEffectSpectrumAnalyzer] 以执行实时音频频谱分析。\n" +"[b]注意:[/b]由于性能限制,最好从 C# 或通过 GDExtension 编译的语言中使用此" +"类。如果仍想使从 GDScript 中使用此类,请考虑使用较低的 [member mix_rate],例" +"如 11,025 Hz 或 22,050 Hz。" + msgid "" "The length of the buffer to generate (in seconds). Lower values result in " "less latency, but require the script to generate audio data faster, " @@ -13130,9 +13532,44 @@ msgstr "" "返回能够推送到音频采样数据缓冲区而不使其溢出的帧数。如果结果为 [code]0[/" "code],则缓冲区已满。" +msgid "" +"Pushes several audio data frames to the buffer. This is usually more " +"efficient than [method push_frame] in C# and compiled languages via " +"GDExtension, but [method push_buffer] may be [i]less[/i] efficient in " +"GDScript." +msgstr "" +"将多个音频数据帧推送到缓冲区。这通常比 C# 中的以及通过 GDExtension 编译的语言" +"中的 [method push_frame] 效率更高,但在 GDScript 中的 [method push_buffer] 的" +"效率可能[i]更低[/i]。" + +msgid "" +"Pushes a single audio data frame to the buffer. This is usually less " +"efficient than [method push_buffer] in C# and compiled languages via " +"GDExtension, but [method push_frame] may be [i]more[/i] efficient in " +"GDScript." +msgstr "" +"将单个音频数据帧推送到缓冲区。这通常比 C# 中的以及通过 GDExtension 编译的语言" +"中的 [method push_buffer] 效率更低,但在 GDScript 中的 [method push_frame] 的" +"效率可能[i]更高[/i]。" + msgid "Plays real-time audio input data." msgstr "播放实时音频输入数据。" +msgid "" +"When used directly in an [AudioStreamPlayer] node, [AudioStreamMicrophone] " +"plays back microphone input in real-time. This can be used in conjunction " +"with [AudioEffectCapture] to process the data or save it.\n" +"[b]Note:[/b] [member ProjectSettings.audio/driver/enable_input] must be " +"[code]true[/code] for audio input to work. See also that setting's " +"description for caveats related to permissions and operating system privacy " +"settings." +msgstr "" +"当直接在 [AudioStreamPlayer] 节点中使用时,[AudioStreamMicrophone] 会实时播放" +"麦克风的输入。这可以配合 [AudioEffectCapture] 使用,以处理数据或保存数据。\n" +"[b]注意:[/b][member ProjectSettings.audio/driver/enable_input] 必须为 " +"[code]true[/code] 音频输入才能正常工作。另请参阅该设置的说明,了解与权限和操" +"作系统隐私设置相关的注意事项。" + msgid "MP3 audio stream driver." msgstr "MP3 音频流驱动程序。" @@ -13202,6 +13639,13 @@ msgstr "包含用于这个流的原始 Ogg 数据。" msgid "Meta class for playing back audio." msgstr "播放音频的元类。" +msgid "" +"Can play, loop, pause a scroll through audio. See [AudioStream] and " +"[AudioStreamOggVorbis] for usage." +msgstr "" +"可以播放、循环播放、暂停滚动播放音频。有关用法,请参阅 [AudioStream] 和 " +"[AudioStreamOggVorbis]。" + msgid "Playback instance for [AudioStreamPolyphonic]." msgstr "[AudioStreamPolyphonic] 的播放实例。" @@ -13219,6 +13663,47 @@ msgstr "" "AudioStreamPlayer2D.get_stream_playback] 或 [method AudioStreamPlayer3D." "get_stream_playback] 方法获取播放实例。" +msgid "" +"Return true whether the stream associated with an integer ID is still " +"playing. Check [method play_stream] for information on when this ID becomes " +"invalid." +msgstr "" +"与整数 ID 关联的流仍在播放时返回 true。请检查 [method play_stream] 以获取有关" +"此 ID 何时失效的信息。" + +msgid "" +"Play an [AudioStream] at a given offset, volume and pitch scale. Playback " +"starts immediately.\n" +"The return value is an unique integer ID that is associated to this playback " +"stream and which can be used to control it.\n" +"This ID becomes invalid when the stream ends (if it does not loop), when the " +"[AudioStreamPlaybackPolyphonic] is stopped, or when [method stop_stream] is " +"called.\n" +"This function returns [constant INVALID_ID] if the amount of streams " +"currently playing equals [member AudioStreamPolyphonic.polyphony]. If you " +"need a higher amount of maximum polyphony, raise this value." +msgstr "" +"以给定的偏移量、音量和音阶播放 [AudioStream]。播放立即开始。\n" +"返回值是与该播放流关联的唯一整数 ID,可用于控制该播放流。\n" +"当流结束(如果它不循环)、[AudioStreamPlaybackPolyphonic] 停止、或 [method " +"stop_stream] 被调用时,该 ID 将失效。\n" +"如果当前播放的流的数量等于 [member AudioStreamPolyphonic.polyphony],则该函数" +"将返回 [constant INVALID_ID]。如果需要更大的最大复音量,请提高该值。" + +msgid "" +"Change the stream pitch scale. The [param stream] argument is an integer ID " +"returned by [method play_stream]." +msgstr "" +"改变流的音阶。[param stream] 参数是一个由 [method play_stream] 返回的整数 " +"ID。" + +msgid "" +"Change the stream volume (in db). The [param stream] argument is an integer " +"ID returned by [method play_stream]." +msgstr "" +"改变流的音量(单位:db)。[param stream] 参数是一个由 [method play_stream] 返" +"回的整数 ID。" + msgid "" "Stop a stream. The [param stream] argument is an integer ID returned by " "[method play_stream], which becomes invalid after calling this function." @@ -13226,6 +13711,11 @@ msgstr "" "停止某个流。[param stream] 参数是由 [method play_stream] 返回的整数 ID,在调" "用这个函数后失效。" +msgid "" +"Returned by [method play_stream] in case it could not allocate a stream for " +"playback." +msgstr "无法为播放分配一个流时由 [method play_stream] 返回。" + msgid "Plays back audio non-positionally." msgstr "播放音频,不考虑所处位置。" @@ -13276,6 +13766,12 @@ msgstr "" "校验。这是因为音频总线布局可以在设置这个属性后再加载。如果这个给定的名称在运" "行时无法解析,就会回退到 [code]\"Master\"[/code]。" +msgid "" +"The maximum number of sounds this node can play at the same time. Playing " +"additional sounds after this value is reached will cut off the oldest sounds." +msgstr "" +"该节点可以同时播放的最大声音数。达到此值后,播放额外的声音将切断最旧的声音。" + msgid "" "If the audio configuration has more than two speakers, this sets the target " "channels. See [enum MixTarget] constants." @@ -13319,6 +13815,26 @@ msgstr "音频将在第二个声道中播放,通常位于中央。" msgid "Plays positional sound in 2D space." msgstr "在 2D 空间中播放与位置相关的声音。" +msgid "" +"Plays audio that is attenuated with distance to the listener.\n" +"By default, audio is heard from the screen center. This can be changed by " +"adding an [AudioListener2D] node to the scene and enabling it by calling " +"[method AudioListener2D.make_current] on it.\n" +"See also [AudioStreamPlayer] to play a sound non-positionally.\n" +"[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio " +"output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set " +"[member volume_db] to a very low value like [code]-100[/code] (which isn't " +"audible to human hearing)." +msgstr "" +"播放随与监听者的距离增大而衰减的音频。\n" +"默认情况下,音频是从屏幕中心收听的。要修改这个位置,可以在场景中添加一个 " +"[AudioListener2D] 节点,并通过调用 [method AudioListener2D.make_current] 将其" +"启用。\n" +"另请参阅 [AudioStreamPlayer] 以非定位的方式播放声音。\n" +"[b]注意:[/b]隐藏 [AudioStreamPlayer2D] 节点并不能禁用其音频输出。要暂时禁用 " +"[AudioStreamPlayer2D] 的音频输出,请将 [member volume_db] 设置为非常低的值," +"如 [code]-100[/code](人的听觉听不到)。" + msgid "Returns the position in the [AudioStream]." msgstr "返回 [AudioStream] 中的位置。" @@ -13345,9 +13861,21 @@ msgstr "" "重定向,使其在特定的音频总线中播放。一个例子是可以用来制作“水域”,将水中播放" "的声音重定向至单独的音频总线,让声音听起来像是在水下播放。" +msgid "The volume is attenuated over distance with this as an exponent." +msgstr "以该属性为指数,将音量随着距离的增加而衰减。" + msgid "Maximum distance from which audio is still hearable." msgstr "音频仍可听到的最大距离。" +msgid "" +"Scales the panning strength for this node by multiplying the base [member " +"ProjectSettings.audio/general/2d_panning_strength] with this factor. Higher " +"values will pan audio from left to right more dramatically than lower values." +msgstr "" +"通过将基础 [member ProjectSettings.audio/general/2d_panning_strength] 乘以该" +"因子,来缩放该节点的声像强度。与较低的值相比,较高的值将从左到右更显著地声像" +"移动音频。" + msgid "" "If [code]true[/code], audio is playing or is queued to be played (see " "[method play])." @@ -13361,11 +13889,59 @@ msgstr "衰减前的基础音量。" msgid "Plays positional sound in 3D space." msgstr "在 3D 空间中播放与位置相关的声音。" +msgid "" +"Plays audio with positional sound effects, based on the relative position of " +"the audio listener. Positional effects include distance attenuation, " +"directionality, and the Doppler effect. For greater realism, a low-pass " +"filter is applied to distant sounds. This can be disabled by setting [member " +"attenuation_filter_cutoff_hz] to [code]20500[/code].\n" +"By default, audio is heard from the camera position. This can be changed by " +"adding an [AudioListener3D] node to the scene and enabling it by calling " +"[method AudioListener3D.make_current] on it.\n" +"See also [AudioStreamPlayer] to play a sound non-positionally.\n" +"[b]Note:[/b] Hiding an [AudioStreamPlayer3D] node does not disable its audio " +"output. To temporarily disable an [AudioStreamPlayer3D]'s audio output, set " +"[member volume_db] to a very low value like [code]-100[/code] (which isn't " +"audible to human hearing)." +msgstr "" +"根据音频收听者的相对位置播放具有位置音效的音频。位置效应包括距离衰减、方向" +"性、和多普勒效应。为了更逼真,低通滤波器会自动应用于远处的声音。这可以通过将 " +"[member attenuation_filter_cutoff_hz] 设置为 [code]20500[/code] 来禁用。\n" +"默认情况下,音频是从相机的位置听到的,这可以通过在场景中添加一个 " +"[AudioListener3D] 节点,并通过对其调用 [method AudioListener3D.make_current] " +"来启用该节点来改变。\n" +"参阅 [AudioStreamPlayer] 来播放非位置的声音。\n" +"[b]注意:[/b]隐藏一个 [AudioStreamPlayer3D] 节点并不能禁用其音频输出。要暂时" +"禁用 [AudioStreamPlayer3D] 的音频输出,请将 [member volume_db] 设置为一个非常" +"低的值,如 [code]-100[/code](人的听觉听不到)。" + msgid "" "Returns the [AudioStreamPlayback] object associated with this " "[AudioStreamPlayer3D]." msgstr "返回与这个 [AudioStreamPlayer3D] 相关联的 [AudioStreamPlayback] 对象。" +msgid "" +"Determines which [Area3D] layers affect the sound for reverb and audio bus " +"effects. Areas can be used to redirect [AudioStream]s so that they play in a " +"certain audio bus. An example of how you might use this is making a " +"\"water\" area so that sounds played in the water are redirected through an " +"audio bus to make them sound like they are being played underwater." +msgstr "" +"确定哪些 [Area3D] 层影响混响和音频总线效果的声音。区域可用于重定向 " +"[AudioStream],以便它们在特定音频总线中播放。可以如何使用它的一个示例是制作一" +"个“水”区域,以便在水中播放的声音通过音频总线重定向,使它们听起来像是在水下播" +"放的。" + +msgid "" +"The cutoff frequency of the attenuation low-pass filter, in Hz. A sound " +"above this frequency is attenuated more than a sound below this frequency. " +"To disable this effect, set this to [code]20500[/code] as this frequency is " +"above the human hearing limit." +msgstr "" +"衰减低通滤波器的截止频率,单位为 Hz。高于该频率的声音比低于此频率的声音衰减得" +"更多。要禁用该效果,请将其设置为 [code]20500[/code],因为该频率高于人类听力极" +"限。" + msgid "Amount how much the filter affects the loudness, in decibels." msgstr "滤波器对响度的影响程度,以分贝为单位。" @@ -13374,8 +13950,8 @@ msgid "" "logarithmically, or not be affected by distance, effectively disabling " "attenuation." msgstr "" -"决定音频是否应该得到更安静的距离线性,平方,对数,或不受影响的距离,有效地禁" -"用衰减。" +"决定音频是否应该随着距离,以线性、二次、对数的方式变得更安静,或者不受距离影" +"响,有效地禁用衰减。" msgid "" "If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added " @@ -13397,9 +13973,52 @@ msgstr "" "校验。这是因为音频总线布局可以在设置这个属性后再加载。如果这个给定的名称在运" "行时无法解析,就会回退到 [code]\"Master\"[/code]。" +msgid "Decides in which step the Doppler effect should be calculated." +msgstr "决定应该在哪个步骤计算多普勒效应。" + +msgid "The angle in which the audio reaches a listener unattenuated." +msgstr "音频到达听者而不衰减的角度。" + +msgid "" +"If [code]true[/code], the audio should be attenuated according to the " +"direction of the sound." +msgstr "如果为 [code]true[/code],则音频应该根据声音的方向衰减。" + +msgid "" +"Attenuation factor used if listener is outside of [member " +"emission_angle_degrees] and [member emission_angle_enabled] is set, in " +"decibels." +msgstr "" +"听者在 [member emission_angle_degrees] 之外且 [member " +"emission_angle_enabled] 被设置时使用的衰减系数,单位是分贝。" + msgid "Sets the absolute maximum of the soundlevel, in decibels." msgstr "设置声级的绝对最大值,以分贝为单位。" +msgid "" +"The distance past which the sound can no longer be heard at all. Only has an " +"effect if set to a value greater than [code]0.0[/code]. [member " +"max_distance] works in tandem with [member unit_size]. However, unlike " +"[member unit_size] whose behavior depends on the [member attenuation_model], " +"[member max_distance] always works in a linear fashion. This can be used to " +"prevent the [AudioStreamPlayer3D] from requiring audio mixing when the " +"listener is far away, which saves CPU resources." +msgstr "" +"完全听不到声音的距离。仅当设置为大于 [code]0.0[/code] 的值时才有效。[member " +"max_distance] 与 [member unit_size] 协同工作。但是,与 [member unit_size] 的" +"行为取决于 [member attenuation_model] 不同,[member max_distance] 始终以线性" +"方式工作。这可用于防止 [AudioStreamPlayer3D] 在听者较远时需要混音,从而节省 " +"CPU 资源。" + +msgid "" +"Scales the panning strength for this node by multiplying the base [member " +"ProjectSettings.audio/general/3d_panning_strength] with this factor. Higher " +"values will pan audio from left to right more dramatically than lower values." +msgstr "" +"通过将基础 [member ProjectSettings.audio/general/3d_panning_strength] 乘以该" +"因子,来缩放该节点的声像强度。与较低的值相比,较高的值将从左到右更显著地声像" +"移动音频。" + msgid "The [AudioStream] resource to be played." msgstr "要播放的 [AudioStream] 资源。" @@ -13415,6 +14034,9 @@ msgid "" "over a larger distance." msgstr "衰减效果的系数。更高的值使声音在更远的距离可以听到。" +msgid "The base sound level before attenuation, in decibels." +msgstr "不受衰减影响的基础声级,单位为分贝。" + msgid "Attenuation of loudness according to linear distance." msgstr "根据距离对响度进行线性衰减。" @@ -13444,9 +14066,55 @@ msgstr "在空闲步骤中执行多普勒跟踪。" msgid "Executes doppler tracking in physics step." msgstr "在物理步骤中执行多普勒跟踪。" +msgid "" +"AudioStream that lets the user play custom streams at any time from code, " +"simultaneously using a single player." +msgstr "" +"音频流 AudioStream,允许用户从代码中随时播放自定义流,可以使用单个播放器同时" +"播放。" + +msgid "" +"AudioStream that lets the user play custom streams at any time from code, " +"simultaneously using a single player.\n" +"Playback control is done via the [AudioStreamPlaybackPolyphonic] instance " +"set inside the player, which can be obtained via [method AudioStreamPlayer." +"get_stream_playback], [method AudioStreamPlayer2D.get_stream_playback] or " +"[method AudioStreamPlayer3D.get_stream_playback] methods. Obtaining the " +"playback instance is only valid after the [code]stream[/code] property is " +"set as an [AudioStreamPolyphonic] in those players." +msgstr "" +"AudioStream 允许用户随时通过代码,同时使用单个播放器播放自定义流。\n" +"播放控制是通过播放器内部设置的 [AudioStreamPlaybackPolyphonic] 实例完成的,可" +"以通过 [method AudioStreamPlayer.get_stream_playback]、[method " +"AudioStreamPlayer2D.get_stream_playback] 或 [method AudioStreamPlayer3D." +"get_stream_playback] 方法获取该实例。只有在这些播放器中将 [code]stream[/" +"code] 属性设置为 [AudioStreamPolyphonic] 后,才能获取该播放实例。" + +msgid "Maximum amount of simultaneous streams that can be played." +msgstr "可以同时播放的流的最大数量。" + +msgid "Wraps a pool of audio streams with pitch and volume shifting." +msgstr "用音高和音量偏移,包装一个音频流池。" + +msgid "" +"Picks a random AudioStream from the pool, depending on the playback mode, " +"and applies random pitch shifting and volume shifting during playback." +msgstr "" +"根据播放模式,从池中随机选择一个 AudioStream,并在播放期间应用随机音高偏移和" +"音量偏移。" + +msgid "" +"Insert a stream at the specified index. If the index is less than zero, the " +"insertion occurs at the end of the underlying pool." +msgstr "在指定索引处插入一个流。如果索引小于零,则插入发生在底层池的末尾。" + msgid "Returns the stream at the specified index." msgstr "返回指定索引处的流。" +msgid "" +"Returns the probability weight associated with the stream at the given index." +msgstr "返回与给定索引处的流关联的概率权重。" + msgid "Move a stream from one index to another." msgstr "将流从一个索引移动到另一个索引。" @@ -13456,6 +14124,18 @@ msgstr "移除指定索引处的流。" msgid "Set the AudioStream at the specified index." msgstr "设置指定索引处的 AudioStream。" +msgid "" +"Set the probability weight of the stream at the specified index. The higher " +"this value, the more likely that the randomizer will choose this stream " +"during random playback modes." +msgstr "" +"设置流在指定索引处的概率权重。该值越高,随机化器在随机播放模式下选择该流的可" +"能性就越大。" + +msgid "" +"Controls how this AudioStreamRandomizer picks which AudioStream to play next." +msgstr "控制该 AudioStreamRandomizer 如何选择下一个要播放的 AudioStream。" + msgid "" "The intensity of random pitch variation. A value of 1 means no variation." msgstr "随机音高变化的强度。值为 1 表示没有变化。" @@ -13467,9 +14147,46 @@ msgstr "随机音量变化的强度。值为 0 表示没有变化。" msgid "The number of streams in the stream pool." msgstr "流池中流的数量。" +msgid "" +"Pick a stream at random according to the probability weights chosen for each " +"stream, but avoid playing the same stream twice in a row whenever possible. " +"If only 1 sound is present in the pool, the same sound will always play, " +"effectively allowing repeats to occur." +msgstr "" +"根据为每个流选择的概率权重随机挑选一个流,但尽可能避免连续两次播放同一个流。" +"如果池中只有 1 个声音,则将始终播放同一个声音,从而有效地允许重复发生。" + +msgid "" +"Pick a stream at random according to the probability weights chosen for each " +"stream. If only 1 sound is present in the pool, the same sound will always " +"play." +msgstr "" +"根据为每个流选择的概率权重随机挑选一个流。如果池中只有 1 个声音,则将始终播放" +"同一个声音。" + +msgid "" +"Play streams in the order they appear in the stream pool. If only 1 sound is " +"present in the pool, the same sound will always play." +msgstr "" +"按照流池中出现的顺序播放流。如果池中只有 1 个声音,则将始终播放同一个声音。" + msgid "Stores audio data loaded from WAV files." msgstr "存储从 WAV 文件加载的音频数据。" +msgid "" +"AudioStreamWAV stores sound samples loaded from WAV files. To play the " +"stored sound, use an [AudioStreamPlayer] (for non-positional audio) or " +"[AudioStreamPlayer2D]/[AudioStreamPlayer3D] (for positional audio). The " +"sound can be looped.\n" +"This class can also be used to store dynamically-generated PCM audio data. " +"See also [AudioStreamGenerator] for procedural audio generation." +msgstr "" +"AudioStreamWAV 存储从 WAV 文件加载的声音样本。要播放存储的声音,请使用 " +"[AudioStreamPlayer](用于非空间定位音频)或 [AudioStreamPlayer2D]/" +"[AudioStreamPlayer3D](用于空间定位音频)。声音可以循环播放。\n" +"这个类还可用于存储动态生成的 PCM 音频数据。另请参阅 [AudioStreamGenerator] 以" +"了解程序化音频生成。" + msgid "" "Saves the AudioStreamWAV as a WAV file to [param path]. Samples with IMA " "ADPCM format can't be saved.\n" @@ -13573,6 +14290,14 @@ msgid "" msgstr "" "音频在 [member loop_begin] 和 [member loop_end] 之间循环数据,仅向后播放。" +msgid "" +"Copies a region of the screen (or the whole screen) to a buffer so it can be " +"accessed in your shader scripts using the screen texture (i.e. a uniform " +"sampler with ``hint_screen_texture``)." +msgstr "" +"将屏幕的一个区域(或整个屏幕)复制到一个缓冲区,这样就可以使用屏幕纹理(即带" +"有 ``hint_screen_texture`` 的 uniform 采样器),在着色器脚本中访问它。" + msgid "" "Node for back-buffering the currently-displayed screen. The region defined " "in the [BackBufferCopy] node is buffered with the content of the screen it " @@ -13650,11 +14375,53 @@ msgid "" "left it yet." msgstr "如果鼠标已进入按钮,且尚未离开,则返回 [code]true[/code]。" +msgid "" +"Changes the [member button_pressed] state of the button, without emitting " +"[signal toggled]. Use when you just want to change the state of the button " +"without sending the pressed event (e.g. when initializing scene). Only works " +"if [member toggle_mode] is [code]true[/code].\n" +"[b]Note:[/b] This method doesn't unpress other buttons in [member " +"button_group]." +msgstr "" +"更改按钮的 [member button_pressed] 状态,而不发出 [signal toggled]。当只想更" +"改按钮的状态而不发送按下的事件时使用(例如,在初始化场景时)。仅当 [member " +"toggle_mode] 为 [code]true[/code] 时才有效。\n" +"[b]注意:[/b]该方法不会取消按下 [member button_group] 中的其他按钮。" + msgid "" "Determines when the button is considered clicked, one of the [enum " "ActionMode] constants." msgstr "确定按钮何时被认为被点击,是 [enum ActionMode] 常量之一。" +msgid "" +"The [ButtonGroup] associated with the button. Not to be confused with node " +"groups." +msgstr "与按钮关联的 [ButtonGroup]。不要与节点组混淆。" + +msgid "" +"Binary mask to choose which mouse buttons this button will respond to.\n" +"To allow both left-click and right-click, use [code]MOUSE_BUTTON_MASK_LEFT | " +"MOUSE_BUTTON_MASK_RIGHT[/code]." +msgstr "" +"二进制掩码,用于选择该按钮将响应哪些鼠标按钮。\n" +"要同时允许左键单击和右键单击,请使用 [code]MOUSE_BUTTON_MASK_LEFT | " +"MOUSE_BUTTON_MASK_RIGHT[/code]。" + +msgid "" +"If [code]true[/code], the button's state is pressed. Means the button is " +"pressed down or toggled (if [member toggle_mode] is active). Only works if " +"[member toggle_mode] is [code]true[/code].\n" +"[b]Note:[/b] Setting [member button_pressed] will result in [signal toggled] " +"to be emitted. If you want to change the pressed state without emitting that " +"signal, use [method set_pressed_no_signal]." +msgstr "" +"如果为 [code]true[/code],则该按钮的状态为被按下。表示按钮被按下或被切换(如" +"果 [member toggle_mode] 处于活动状态)。仅当 [member toggle_mode] 为 " +"[code]true[/code] 时才有效。\n" +"[b]注意:[/b]设置 [member button_pressed] 将导致 [signal toggled] 被发出。如" +"果想在不发出该信号的情况下更改按下状态,请使用 [method " +"set_pressed_no_signal]。" + msgid "" "If [code]true[/code], the button is in disabled state and can't be clicked " "or toggled." @@ -13675,6 +14442,16 @@ msgstr "" msgid "[Shortcut] associated to the button." msgstr "与该按钮关联的 [Shortcut]。" +msgid "" +"If [code]true[/code], the button will highlight for a short amount of time " +"when its shortcut is activated. If [code]false[/code] and [member " +"toggle_mode] is [code]false[/code], the shortcut will activate without any " +"visual feedback." +msgstr "" +"如果为 [code]true[/code] ,则当其快捷方式被激活时,该按钮将高亮一小段时间。如" +"果为 [code]false[/code] 且 [member toggle_mode] 为 [code]false[/code],则该快" +"捷方式将在没有任何视觉反馈的情况下激活。" + msgid "" "If [code]true[/code], the button will add information about its shortcut in " "the tooltip." @@ -13700,11 +14477,19 @@ msgid "" "If you need to know the button's pressed state (and [member toggle_mode] is " "active), use [signal toggled] instead." msgstr "" -"当按钮被切换或按下时发出。如果 [member action_mode] 是 [constant " -"ACTION_MODE_BUTTON_PRESS],则在 [signal button_down] 上,否则在 [signal " -"button_up] 上。\n" -"如果您需要知道按钮的按压状态(并且 [member toggle_mode] 是活动的),请使用" -"[signal toggled]代替。" +"当按钮被切换或按下时发出。如果 [member action_mode] 为 [constant " +"ACTION_MODE_BUTTON_PRESS],则在 [signal button_down] 时发出,否则当 [signal " +"button_up] 时发出。\n" +"如果需要知道按钮的按下状态(并且 [member toggle_mode] 处于活动状态),请改用 " +"[signal toggled]。" + +msgid "" +"Emitted when the button was just toggled between pressed and normal states " +"(only if [member toggle_mode] is active). The new state is contained in the " +"[param button_pressed] argument." +msgstr "" +"当按钮刚刚在按下和正常状态之间切换时发出(仅当 [member toggle_mode] 处于活动" +"状态时)。新状态包含在 [param button_pressed] 参数中。" msgid "" "The normal state (i.e. not pressed, not hovered, not toggled and enabled) of " @@ -13758,6 +14543,16 @@ msgid "" "Returns the [Texture2D] associated with the specified [enum TextureParam]." msgstr "返回与指定 [enum TextureParam] 关联的 [Texture2D]。" +msgid "" +"If [code]true[/code], enables the specified [enum Feature]. Many features " +"that are available in [BaseMaterial3D]s need to be enabled before use. This " +"way the cost for using the feature is only incurred when specified. Features " +"can also be enabled by setting the corresponding member to [code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则启用指定的 [enum Feature]。[BaseMaterial3D] 中的" +"许多功能都需要在使用前启用。这样,仅在指定时才会产生使用该功能的成本。也可以" +"通过将相应的成员设置为 [code]true[/code] 来启用功能。" + msgid "" "If [code]true[/code], enables the specified flag. Flags are optional " "behavior that can be turned on and off. Only one flag can be enabled at a " @@ -13771,6 +14566,36 @@ msgstr "" "用或禁用多个标志。也可以通过将相应成员设置为 [code]true[/code] 来启用标志。选" "项见 [enum Flags] 枚举值。" +msgid "" +"Sets the texture for the slot specified by [param param]. See [enum " +"TextureParam] for available slots." +msgstr "" +"设置由 [param param] 指定的插槽的纹理。有关可用插槽,请参阅 [enum " +"TextureParam]。" + +msgid "" +"The material's base color.\n" +"[b]Note:[/b] If [member detail_enabled] is [code]true[/code] and a [member " +"detail_albedo] texture is specified, [member albedo_color] will [i]not[/i] " +"modulate the detail texture. This can be used to color partial areas of a " +"material by not specifying an albedo texture and using a transparent [member " +"detail_albedo] texture instead." +msgstr "" +"材质的基础颜色。\n" +"[b]注意:[/b]如果 [member detail_enabled] 为 [code]true[/code] 并且指定了 " +"[member detail_albedo] 纹理,则 [member detail_albedo_color] 将[i]不[/i]会调" +"制细节纹理。这可用于通过不指定反照率纹理并使用透明 [member detail_albedo] 纹" +"理,来为材质的部分区域着色。" + +msgid "" +"Texture to multiply by [member albedo_color]. Used for basic texturing of " +"objects.\n" +"If the texture appears unexpectedly too dark or too bright, check [member " +"albedo_texture_force_srgb]." +msgstr "" +"要乘以 [member albedo_color] 的纹理。用于对象的基本纹理。\n" +"如果纹理意外地显得太暗或太亮,请检查 [member albedo_texture_force_srgb]。" + msgid "" "If [code]true[/code], forces a conversion of the [member albedo_texture] " "from sRGB color space to linear color space. See also [member " @@ -13790,6 +14615,17 @@ msgstr "" "albedo_texture_force_srgb] 在不应该的情况下为 [code]false[/code],则纹理会显" "得太亮。" +msgid "" +"Enables multichannel signed distance field rendering shader. Use [member " +"msdf_pixel_range] and [member msdf_outline_size] to configure MSDF " +"parameters." +msgstr "" +"启用多通道有符号距离场渲染着色器。使用 [member msdf_pixel_range] 和 [member " +"msdf_outline_size] 配置 MSDF 参数。" + +msgid "Threshold at which antialiasing will be applied on the alpha channel." +msgstr "将在 Alpha 通道上应用抗锯齿的阈值。" + msgid "The type of alpha antialiasing to apply. See [enum AlphaAntiAliasing]." msgstr "要应用的 Alpha 抗锯齿类型。见 [enum AlphaAntiAliasing]。" @@ -13799,6 +14635,16 @@ msgid "" msgstr "" "Alpha Hash 的哈希比例。推荐 [code]0[/code] 和 [code]2[/code] 之间的值。" +msgid "" +"Threshold at which the alpha scissor will discard values. Higher values will " +"result in more pixels being discarded. If the material becomes too opaque at " +"a distance, try increasing [member alpha_scissor_threshold]. If the material " +"disappears at a distance, try decreasing [member alpha_scissor_threshold]." +msgstr "" +"Alpha 剪刀将丢弃值的阈值。较高的值将导致更多像素被丢弃。如果材质在远处变得太" +"不透明,请尝试增加 [member alpha_scissor_threshold]。如果材质在远处消失,请尝" +"试降低 [member alpha_scissor_threshold]。" + msgid "" "The strength of the anisotropy effect. This is multiplied by [member " "anisotropy_flowmap]'s alpha channel if a texture is defined there and the " @@ -13892,6 +14738,27 @@ msgid "" "an object." msgstr "背光效果使用的颜色。表示穿过物体的光。" +msgid "" +"If [code]true[/code], the backlight effect is enabled. See also [member " +"subsurf_scatter_transmittance_enabled]." +msgstr "" +"如果为 [code]true[/code],则启用背光效果。另请参阅 [member " +"subsurf_scatter_transmittance_enabled]。" + +msgid "" +"Texture used to control the backlight effect per-pixel. Added to [member " +"backlight]." +msgstr "用于控制每像素背光效果的纹理。与 [member backlight] 相加。" + +msgid "" +"If [code]true[/code], the shader will keep the scale set for the mesh. " +"Otherwise, the scale is lost when billboarding. Only applies when [member " +"billboard_mode] is not [constant BILLBOARD_DISABLED]." +msgstr "" +"如果为 [code]true[/code],则着色器将保持为网格设置的缩放。否则,在做公告板时" +"会丢失缩放。仅在 [member billboard_mode] 不为 [constant BILLBOARD_DISABLED] " +"时适用。" + msgid "" "Controls how the object faces the camera. See [enum BillboardMode].\n" "[b]Note:[/b] Billboard mode is not suitable for VR because the left-right " @@ -13916,7 +14783,28 @@ msgstr "" msgid "" "Sets the strength of the clearcoat effect. Setting to [code]0[/code] looks " "the same as disabling the clearcoat effect." -msgstr "设置清漆效果的强度。设置为 [code]0[/code] 与禁用清漆效果相同。" +msgstr "设置清漆效果的强度。设置为 [code]0[/code] 看起来与禁用清漆效果相同。" + +msgid "" +"If [code]true[/code], clearcoat rendering is enabled. Adds a secondary " +"transparent pass to the lighting calculation resulting in an added specular " +"blob. This makes materials appear as if they have a clear layer on them that " +"can be either glossy or rough.\n" +"[b]Note:[/b] Clearcoat rendering is not visible if the material's [member " +"shading_mode] is [constant SHADING_MODE_UNSHADED]." +msgstr "" +"如果为 [code]true[/code],则启用清漆渲染。将辅助透明通道添加到照明计算中,从" +"而产生一个添加的镜面反射斑点。这使得材质看起来好像它们表面上有一层透明层,该" +"透明层可以是有光泽的也可以是粗糙的。\n" +"[b]注意:[/b]如果材质的 [member shading_mode] 为 [constant " +"SHADING_MODE_UNSHADED],则清漆渲染不可见。" + +msgid "" +"Sets the roughness of the clearcoat pass. A higher value results in a " +"rougher clearcoat while a lower value results in a smoother clearcoat." +msgstr "" +"设置清漆通道的粗糙度。较高的值会产生较粗糙的清漆,而较低的值会产生更光滑的清" +"漆。" msgid "" "Texture that defines the strength of the clearcoat effect and the glossiness " @@ -13926,6 +14814,13 @@ msgstr "" "定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通" "道中指定。" +msgid "" +"Determines which side of the triangle to cull depending on whether the " +"triangle faces towards or away from the camera. See [enum CullMode]." +msgstr "" +"根据三角形是朝向还是背离相机,来确定要剔除三角形的哪一侧。请参阅 [enum " +"CullMode]。" + msgid "" "Determines when depth rendering takes place. See [enum DepthDrawMode]. See " "also [member transparency]." @@ -13952,6 +14847,25 @@ msgstr "" "指定 [member detail_albedo] 应如何与当前 [code]ALBEDO[/code] 混合。参阅 " "[enum BlendMode] 选项。" +msgid "" +"If [code]true[/code], enables the detail overlay. Detail is a second texture " +"that gets mixed over the surface of the object based on [member detail_mask] " +"and [member detail_albedo]'s alpha channel. This can be used to add " +"variation to objects, or to blend between two different albedo/normal " +"textures." +msgstr "" +"如果为 [code]true[/code],启用细节叠加。细节是基于 [member detail_mask] 和 " +"[member detail_albedo] 的 Alpha 通道,在对象表面上混合的第二个纹理。这可用于" +"为对象添加变化,或混合两种不同的反照率/法线纹理。" + +msgid "" +"Texture used to specify how the detail textures get blended with the base " +"textures. [member detail_mask] can be used together with [member " +"detail_albedo]'s alpha channel (if any)." +msgstr "" +"纹理用于指定细节纹理如何与基础纹理混合。[member detail_mask] 可以与 [member " +"detail_albedo] 的 Alpha 通道(如果有)一起使用。" + 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 " @@ -14026,6 +14940,29 @@ msgstr "指定要使用的淡入淡出类型。可以是任何一个 [enum Dista msgid "The emitted light's color. See [member emission_enabled]." msgstr "发出的光的颜色。见 [member emission_enabled]。" +msgid "" +"If [code]true[/code], the body emits light. Emitting light makes the object " +"appear brighter. The object can also cast light on other objects if a " +"[VoxelGI], SDFGI, or [LightmapGI] is used and this object is used in baked " +"lighting." +msgstr "" +"如果为 [code]true[/code],则实体会发光。发光会使物体看起来更亮。如果使用 " +"[VoxelGI]、SDFGI、或 [LightmapGI],并且该对象用于烘焙光照,则该对象还可以将光" +"投射到其他对象上。" + +msgid "Multiplier for emitted light. See [member emission_enabled]." +msgstr "发出的光的乘数。请参阅 [member emission_enabled]。" + +msgid "" +"Luminance of emitted light, measured in nits (candela per square meter). " +"Only available when [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] is enabled. The default is roughly equivalent to " +"an indoor lightbulb." +msgstr "" +"发出的光的亮度,单位是尼特(坎德拉/平方米)。仅在启用 [member " +"ProjectSettings.rendering/lights_and_shadows/use_physical_light_units] 时可" +"用。默认值大致相当于一个室内灯泡。" + msgid "Use [code]UV2[/code] to read from the [member emission_texture]." msgstr "使用 [code]UV2[/code] 从 [member emission_texture] 中读取。" @@ -14042,7 +14979,7 @@ msgstr "纹理,指定某点的表面发光的程度。" msgid "" "If [code]true[/code], the object is rendered at the same size regardless of " "distance." -msgstr "如果为 [code]true[/code],则无论距离远近,对象都以相同的尺寸呈现。" +msgstr "如果为 [code]true[/code],则无论距离远近,对象都以相同的大小渲染。" msgid "" "If [code]true[/code], enables the vertex grow setting. This can be used to " @@ -14070,6 +15007,144 @@ msgstr "" "将对象的顶点沿着对应的法线方向生长。仅在 [member grow] 为 [code]true[/code] " "时有效。" +msgid "" +"If [code]true[/code], uses parallax occlusion mapping to represent depth in " +"the material instead of simple offset mapping (see [member " +"heightmap_enabled]). This results in a more convincing depth effect, but is " +"much more expensive on the GPU. Only enable this on materials where it makes " +"a significant visual difference." +msgstr "" +"如果为 [code]true[/code],则使用视差遮挡贴图来表示材质中的深度,而不是简单的" +"偏移贴图(参见 [member heightmap_enabled])。这会产生更令人信服的深度效果,但" +"在 GPU 上的成本要高得多。仅在具有显著视觉差异的材质上启用该功能。" + +msgid "" +"If [code]true[/code], height mapping is enabled (also called \"parallax " +"mapping\" or \"depth mapping\"). See also [member normal_enabled]. Height " +"mapping is a demanding feature on the GPU, so it should only be used on " +"materials where it makes a significant visual difference.\n" +"[b]Note:[/b] Height mapping is not supported if triplanar mapping is used on " +"the same material. The value of [member heightmap_enabled] will be ignored " +"if [member uv1_triplanar] is enabled." +msgstr "" +"如果为 [code]true[/code],则启用高度映射(也称为“视差映射”或“深度映射”)。另" +"见 [member normal_enabled]。高度映射是 GPU 上的一项要求很高的功能,因此它只能" +"用于具有显著视觉差异的材质。\n" +"[b]注意:[/b]如果在同一材质上使用三平面贴图,则不支持高度图。如果 [member " +"uv1_triplanar] 被启用,则 [member heightmap_enabled] 的值将被忽略。" + +msgid "" +"If [code]true[/code], flips the mesh's binormal vectors when interpreting " +"the height map. If the heightmap effect looks strange when the camera moves " +"(even with a reasonable [member heightmap_scale]), try setting this to " +"[code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则在解释高度图时翻转网格的副法线向量。如果相机移动" +"时高度图效果看起来很奇怪(即使使用合理的 [member heightmap_scale]),请尝试将" +"该属性设置为 [code]true[/code]。" + +msgid "" +"If [code]true[/code], flips the mesh's tangent vectors when interpreting the " +"height map. If the heightmap effect looks strange when the camera moves " +"(even with a reasonable [member heightmap_scale]), try setting this to " +"[code]true[/code]." +msgstr "" +"如果为 [code]true[/code],则在解释高度图时翻转网格的切线向量。如果相机移动时" +"高度图效果看起来很奇怪(即使使用合理的 [member heightmap_scale]),请尝试将该" +"属性设置为 [code]true[/code]。" + +msgid "" +"If [code]true[/code], interprets the height map texture as a depth map, with " +"brighter values appearing to be \"lower\" in altitude compared to darker " +"values.\n" +"This can be enabled for compatibility with some materials authored for Godot " +"3.x. This is not necessary if the Invert import option was used to invert " +"the depth map in Godot 3.x, in which case [member heightmap_flip_texture] " +"should remain [code]false[/code]." +msgstr "" +"如果为 [code]true[/code],则将高度图纹理解释为深度图,与较暗的值相比,较亮的" +"值在高度上显得“更低”。\n" +"可以启用该功能以与为 Godot 3.x 编写的某些材质兼容。如果在 Godot 3.x 中使用反" +"转导入选项来反转深度图,则不需要这样做,在这种情况下,[member " +"heightmap_flip_texture] 应该保持为 [code]false[/code]。" + +msgid "" +"The number of layers to use for parallax occlusion mapping when the camera " +"is up close to the material. Higher values result in a more convincing depth " +"effect, especially in materials that have steep height changes. Higher " +"values have a significant cost on the GPU, so it should only be increased on " +"materials where it makes a significant visual difference.\n" +"[b]Note:[/b] Only effective if [member heightmap_deep_parallax] is " +"[code]true[/code]." +msgstr "" +"当相机靠近材质时用于视差遮挡贴图的层数。较高的值会产生更令人信服的深度效果," +"尤其是在具有陡峭高度变化的材质中。较高的值会显著地增加 GPU 的成本,因此只能在" +"会产生显著视觉差异的材质上增加它。\n" +"[b]注意:[/b]仅当 [member heightmap_deep_parallax] 为 [code]true[/code] 时有" +"效。" + +msgid "" +"The number of layers to use for parallax occlusion mapping when the camera " +"is far away from the material. Higher values result in a more convincing " +"depth effect, especially in materials that have steep height changes. Higher " +"values have a significant cost on the GPU, so it should only be increased on " +"materials where it makes a significant visual difference.\n" +"[b]Note:[/b] Only effective if [member heightmap_deep_parallax] is " +"[code]true[/code]." +msgstr "" +"当相机远离材质时用于视差遮挡贴图的层数。较高的值会产生更令人信服的深度效果," +"尤其是在具有陡峭高度变化的材质中。较高的值会显著地增加 GPU 的成本,因此只能在" +"会产生显著视觉差异的材质上增加它。\n" +"[b]注意:[/b]仅当 [member heightmap_deep_parallax] 为 [code]true[/code] 时有" +"效。" + +msgid "" +"The heightmap scale to use for the parallax effect (see [member " +"heightmap_enabled]). The default value is tuned so that the highest point " +"(value = 255) appears to be 5 cm higher than the lowest point (value = 0). " +"Higher values result in a deeper appearance, but may result in artifacts " +"appearing when looking at the material from oblique angles, especially when " +"the camera moves. Negative values can be used to invert the parallax effect, " +"but this is different from inverting the texture using [member " +"heightmap_flip_texture] as the material will also appear to be \"closer\" to " +"the camera. In most cases, [member heightmap_scale] should be kept to a " +"positive value.\n" +"[b]Note:[/b] If the height map effect looks strange regardless of this " +"value, try adjusting [member heightmap_flip_binormal] and [member " +"heightmap_flip_tangent]. See also [member heightmap_texture] for " +"recommendations on authoring heightmap textures, as the way the heightmap " +"texture is authored affects how [member heightmap_scale] behaves." +msgstr "" +"用于视差效果的高度图缩放(参见 [member heightmap_enabled])。调整默认值,使最" +"高点(值 = 255)看起来比最低点(值 = 0)高 5 厘米。较高的值会导致更深的外观," +"但可能会导致从倾斜角度查看材质时出现伪影,尤其是在相机移动时。负值可用于反转" +"视差效果,但这与使用 [member heightmap_flip_texture] 反转纹理不同,因为材质也" +"会看起来“更接近”相机。在大多数情况下,[member heightmap_scale] 应保持为正" +"值。\n" +"[b]注意:[/b]如果忽略这个值后高度图效果看起来很奇怪,请尝试调整 [member " +"heightmap_flip_binormal] 和 [member heightmap_flip_tangent]。另请参阅 " +"[member heightmap_texture] 以获取有关创作高度图纹理的建议,因为创作高度图纹理" +"的方式会影响 [member heightmap_scale] 的行为方式。" + +msgid "" +"The texture to use as a height map. See also [member heightmap_enabled].\n" +"For best results, the texture should be normalized (with [member " +"heightmap_scale] reduced to compensate). In [url=https://gimp.org]GIMP[/" +"url], this can be done using [b]Colors > Auto > Equalize[/b]. If the texture " +"only uses a small part of its available range, the parallax effect may look " +"strange, especially when the camera moves.\n" +"[b]Note:[/b] To reduce memory usage and improve loading times, you may be " +"able to use a lower-resolution heightmap texture as most heightmaps are only " +"comprised of low-frequency data." +msgstr "" +"用作高度图的纹理。另见 [member heightmap_enabled]。\n" +"为获得最佳效果,应将纹理归一化(减少 [member heightmap_scale] 以进行补偿)。" +"在 [url=https://gimp.org]GIMP[/url] 中,这可以使用[b]颜色(Colors) > 自动" +"(Auto) > 均衡(Equalize)[/b]来完成。如果纹理只使用其可用范围的一小部分,则" +"视差效果可能看起来很奇怪,尤其是当相机移动时。\n" +"[b]注意:[/b]为了减少内存使用和缩短加载时间,可以使用分辨率较低的高度图纹理," +"因为大多数高度图仅包含低频数据。" + msgid "" "A high value makes the material appear more like a metal. Non-metals use " "their albedo as the diffuse color and add diffuse to the specular " @@ -14087,6 +15162,24 @@ msgstr "" "好,介于 [code]0[/code] 和 [code]1[/code] 之间的值只能用于金属和非金属部分之" "间的混合。要改变反射量,请使用[member roughness]。" +msgid "" +"Adjusts the strength of specular reflections. Specular reflections are " +"composed of scene reflections and the specular lobe which is the bright spot " +"that is reflected from light sources. When set to [code]0.0[/code], no " +"specular reflections will be visible. This differs from the [constant " +"SPECULAR_DISABLED] [enum SpecularMode] as [constant SPECULAR_DISABLED] only " +"applies to the specular lobe from the light source.\n" +"[b]Note:[/b] Unlike [member metallic], this is not energy-conserving, so it " +"should be left at [code]0.5[/code] in most cases. See also [member " +"roughness]." +msgstr "" +"调整镜面反射的强度。镜面反射由场景反射和镜面波瓣组成,镜面波瓣是从光源反射的" +"亮点。当设置为 [code]0.0[/code] 时,镜面反射将不可见。这与 [constant " +"SPECULAR_DISABLED] [enum SpecularMode] 不同,因为 [constant " +"SPECULAR_DISABLED] 仅适用于来自光源的镜面反射波瓣。\n" +"[b]注意:[/b]与 [member metallic] 不同,这不是节能的,所以在大多数情况下应将" +"其保留在 [code]0.5[/code]。另见 [member roughness]。" + msgid "" "Texture used to specify metallic for an object. This is multiplied by " "[member metallic]." @@ -14099,13 +15192,18 @@ msgid "" "the red channel, roughness in the blue, and ambient occlusion in the green " "you could reduce the number of textures you use." msgstr "" -"指定存储金属信息的 [member metallic_texture] 的通道。当您在一个纹理中存储多个" -"效果的信息时,这很有用。例如,如果您将金属效果存储在红色通道中,将粗糙度存储" -"在蓝色通道中,将环境遮挡存储在绿色通道中,就可以减少您使用的纹理数量。" +"指定存储金属度信息的 [member metallic_texture] 的通道。当将多个效果的信息存储" +"在单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储" +"粗糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。" msgid "The width of the shape outine." msgstr "形状轮廓的宽度。" +msgid "" +"The width of the range around the shape between the minimum and maximum " +"representable signed distance." +msgstr "围绕最小和最大可表示有符号距离之间的形状的范围的宽度。" + msgid "" "If [code]true[/code], depth testing is disabled and the object will be drawn " "in render order." @@ -14155,6 +15253,18 @@ msgstr "" "[member detail_albedo] 纹理[i]之上[/i]显示法线贴图,请改用 [member " "detail_normal]。" +msgid "" +"The Occlusion/Roughness/Metallic texture to use. This is a more efficient " +"replacement of [member ao_texture], [member roughness_texture] and [member " +"metallic_texture] in [ORMMaterial3D]. Ambient occlusion is stored in the red " +"channel. Roughness map is stored in the green channel. Metallic map is " +"stored in the blue channel. The alpha channel is ignored." +msgstr "" +"要使用的遮挡/粗糙度/金属纹理。这是对 [ORMMaterial3D] 中 [member ao_texture]、" +"[member roughness_texture]、和 [member metallic_texture] 的更有效替代。环境遮" +"挡被存储在红色通道中。粗糙度贴图被存储在绿色通道中。金属度贴图被存储在蓝色通" +"道中。Alpha 通道将被忽略。" + msgid "" "The number of horizontal frames in the particle sprite sheet. Only enabled " "when using [constant BILLBOARD_PARTICLES]. See [member billboard_mode]." @@ -14191,14 +15301,46 @@ msgstr "" "如果为 [code]true[/code],则启用接近淡出效果。邻近淡出效果会根据每个像素与另" "一个对象的距离淡出。" +msgid "" +"If [code]true[/code], the refraction effect is enabled. Distorts " +"transparency based on light from behind the object." +msgstr "" +"如果为 [code]true[/code],则启用折射效果。根据来自对象后面的光线来扭曲透明" +"度。" + +msgid "The strength of the refraction effect." +msgstr "折射效果的强度。" + msgid "" "Texture that controls the strength of the refraction per-pixel. Multiplied " "by [member refraction_scale]." msgstr "控制每个像素折射强度的纹理。会与 [member refraction_scale] 相乘。" +msgid "" +"Specifies the channel of the [member refraction_texture] in which the " +"refraction information is stored. This is useful when you store the " +"information for multiple effects in a single texture. For example if you " +"stored refraction in the red channel, roughness in the blue, and ambient " +"occlusion in the green you could reduce the number of textures you use." +msgstr "" +"指定存储折射信息的 [member refraction_texture] 的通道。当将多个效果的信息存储" +"在单个纹理中时,这很有用。例如,如果在红色通道中存储折射,在蓝色通道中存储粗" +"糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。" + msgid "Sets the strength of the rim lighting effect." msgstr "设置边缘照明效果的强度。" +msgid "" +"If [code]true[/code], rim effect is enabled. Rim lighting increases the " +"brightness at glancing angles on an object.\n" +"[b]Note:[/b] Rim lighting is not visible if the material's [member " +"shading_mode] is [constant SHADING_MODE_UNSHADED]." +msgstr "" +"如果为 [code]true[/code],则启用边缘效果。边缘照明会增加物体上掠射角度的亮" +"度。\n" +"[b]注意:[/b]如果材质的 [member shading_mode] 为 [constant " +"SHADING_MODE_UNSHADED],则边缘照明不可见。" + msgid "" "Texture used to set the strength of the rim lighting effect per-pixel. " "Multiplied by [member rim]." @@ -14225,6 +15367,17 @@ msgid "" "roughness]." msgstr "用于控制每个像素粗糙度的纹理。会与 [member roughness] 相乘。" +msgid "" +"Specifies the channel of the [member roughness_texture] in which the " +"roughness information is stored. This is useful when you store the " +"information for multiple effects in a single texture. For example if you " +"stored metallic in the red channel, roughness in the blue, and ambient " +"occlusion in the green you could reduce the number of textures you use." +msgstr "" +"指定存储粗糙度信息的[member roughness_texture]的通道。当将多个效果的信息存储" +"在单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储" +"粗糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。" + msgid "" "Sets whether the shading takes place, per-pixel, per-vertex or unshaded. Per-" "vertex lighting is faster, making it the best choice for mobile " @@ -14248,6 +15401,18 @@ msgstr "" "修改 Alpha,使阴影区域不透明,非阴影区域透明。对于在 AR 中把阴影叠加到相机画" "面上很有用。" +msgid "" +"The method for rendering the specular blob. See [enum SpecularMode].\n" +"[b]Note:[/b] [member specular_mode] only applies to the specular blob. It " +"does not affect specular reflections from the sky, screen-space reflections, " +"[VoxelGI], SDFGI or [ReflectionProbe]s. To disable reflections from these " +"sources as well, set [member metallic_specular] to [code]0.0[/code] instead." +msgstr "" +"渲染镜面反射斑点的方法。请参阅 [enum SpecularMode]。\n" +"[b]注意:[/b][member specular_mode] 仅适用于镜面反射斑点。它不影响来自天空的" +"镜面反射、屏幕空间反射、[VoxelGI]、SDFGI 或 [ReflectionProbe]。要同时禁用来自" +"这些源的反射,请将 [member metallic_specular] 设置为 [code]0.0[/code]。" + msgid "" "If [code]true[/code], subsurface scattering is enabled. Emulates light that " "penetrates an object's surface, is scattered, and then emerges." @@ -14255,8 +15420,16 @@ msgstr "" "如果为 [code]true[/code],则启用次表面散射。模拟光线穿透物体表面,被散射,然" "后出现。" +msgid "" +"If [code]true[/code], subsurface scattering will use a special mode " +"optimized for the color and density of human skin, such as boosting the " +"intensity of the red channel in subsurface scattering." +msgstr "" +"如果为 [code]true[/code],则次表面散射将使用针对人类皮肤的颜色和密度进行优化" +"的特殊模式,例如提升次表面散射中红色通道的强度。" + msgid "The strength of the subsurface scattering effect." -msgstr "地下散射效应的强度。" +msgstr "次表面散射效果的强度。" msgid "" "Texture used to control the subsurface scattering strength. Stored in the " @@ -14265,6 +15438,38 @@ msgstr "" "用于控制次表面散射强度的纹理。存储在红色纹理通道中。会与 [member " "subsurf_scatter_strength] 相乘。" +msgid "The intensity of the subsurface scattering transmittance effect." +msgstr "次表面散射透射率效果的强度。" + +msgid "" +"The color to multiply the subsurface scattering transmittance effect with. " +"Ignored if [member subsurf_scatter_skin_mode] is [code]true[/code]." +msgstr "" +"与次表面散射透射率效果相乘的颜色。[member subsurf_scatter_skin_mode] 为 " +"[code]true[/code] 时忽略。" + +msgid "The depth of the subsurface scattering transmittance effect." +msgstr "次表面散射透射率效果的深度。" + +msgid "" +"If [code]true[/code], enables subsurface scattering transmittance. Only " +"effective if [member subsurf_scatter_enabled] is [code]true[/code]. See also " +"[member backlight_enabled]." +msgstr "" +"如果为 [code]true[/code],则启用次表面散射透射率。仅当 [member " +"subsurf_scatter_enabled] 为 [code]true[/code] 时有效。另请参见 [member " +"backlight_enabled]。" + +msgid "" +"The texture to use for multiplying the intensity of the subsurface " +"scattering transmitteance intensity. See also [member " +"subsurf_scatter_texture]. Ignored if [member subsurf_scatter_skin_mode] is " +"[code]true[/code]." +msgstr "" +"用于乘以次表面散射透射率强度的纹理。另请参见 [member " +"subsurf_scatter_texture]。[member subsurf_scatter_skin_mode] 为 [code]true[/" +"code] 时忽略。" + msgid "" "Filter flags for the texture. See [enum TextureFilter] for options.\n" "[b]Note:[/b] [member heightmap_texture] is always sampled with linear " @@ -14273,23 +15478,34 @@ msgid "" "transitions between pixels, resize the heightmap texture in an image editor " "with nearest-neighbor filtering." msgstr "" -"纹理的过滤标志。可选项见 [enum TextureFilter]。\n" +"纹理的过滤标志。有关选项,请参阅 [enum TextureFilter]。\n" "[b]注意:[/b]即便这里选择了最近邻过滤,[member heightmap_texture] 也始终使用" -"线性过滤采样。这是为了确保高度图效果看起来符合预期。如果您需要像素之间的高度" -"过渡更加清晰,请在图像编辑器中使用最近邻过滤调整高度图纹理的大小。" +"线性过滤采样。这是为了确保高度图效果看起来符合预期。如果需要像素之间的高度过" +"渡更加清晰,请在图像编辑器中使用最近邻过滤调整高度图纹理的大小。" msgid "Repeat flags for the texture. See [enum TextureFilter] for options." msgstr "纹理的重复标志。可选项见 [enum TextureFilter]。" msgid "" -"If [code]true[/code], transparency is enabled on the body. Some transparency " -"modes will disable shadow casting. Any transparency mode other than Disabled " -"has a greater performance impact compared to opaque rendering. See also " -"[member blend_mode]." +"If [code]true[/code], enables parts of the shader required for " +"[GPUParticles3D] trails to function. This also requires using a mesh with " +"appropriate skinning, such as [RibbonTrailMesh] or [TubeTrailMesh]. Enabling " +"this feature outside of materials used in [GPUParticles3D] meshes will break " +"material rendering." msgstr "" -"如果为 [code]true[/code],则在实体上启用透明度。一些透明模式将禁用阴影投射。" -"与不透明渲染相比,除了禁用以外的任何透明模式都会对性能产生更大的影响。另见 " -"[member blend_mode]。" +"如果为 [code]true[/code],则启用 [GPUParticles3D] 尾迹所需的部分着色器以发挥" +"作用。这也需要使用具有适当蒙皮的网格,例如 [RibbonTrailMesh] 或 " +"[TubeTrailMesh]。在 [GPUParticles3D] 网格中使用的材质之外启用该功能将破坏材质" +"渲染。" + +msgid "" +"If [code]true[/code], render point size can be changed.\n" +"[b]Note:[/b] This is only effective for objects whose geometry is point-" +"based rather than triangle-based. See also [member point_size]." +msgstr "" +"如果为 [code]true[/code],可以改变渲染点大小。\n" +"[b]注意:[/b]这仅对几何形状基于点而非基于三角形的对象有效。另见 [member " +"point_size]。" msgid "" "How much to offset the [code]UV[/code] coordinates. This amount will be " @@ -14328,6 +15544,43 @@ msgstr "" "多的纹理读取,所以它比普通的UV纹理处理要慢得多。此外,由于它是在三个轴之间混" "合纹理,所以当你试图实现清晰的纹理时,它是不合适的。" +msgid "" +"A lower number blends the texture more softly while a higher number blends " +"the texture more sharply.\n" +"[b]Note:[/b] [member uv1_triplanar_sharpness] is clamped between [code]0.0[/" +"code] and [code]150.0[/code] (inclusive) as values outside that range can " +"look broken depending on the mesh." +msgstr "" +"数字越小使纹理混合得越柔和,数字越大使纹理混合得越锐利。\n" +"[b]注意:[/b][member uv1_triplanar_sharpness] 被钳制在 [code]0.0[/code] 和 " +"[code]150.0[/code](包括)之间,因为超出该范围的值可能看起来会破损,具体取决" +"于网格。" + +msgid "" +"If [code]true[/code], triplanar mapping for [code]UV[/code] is calculated in " +"world space rather than object local space. See also [member uv1_triplanar]." +msgstr "" +"如果为 [code]true[/code],则 [code]UV[/code] 的三平面映射是在世界空间而不是对" +"象局部空间中计算的。另见 [member uv1_triplanar]。" + +msgid "" +"How much to offset the [code]UV2[/code] coordinates. This amount will be " +"added to [code]UV2[/code] in the vertex function. This can be used to offset " +"a texture. The Z component is used when [member uv2_triplanar] is enabled, " +"but it is not used anywhere else." +msgstr "" +"[code]UV2[/code] 坐标的偏移量。在顶点函数中这个量将被加到 [code]UV2[/code] " +"中。这可以用来偏移纹理。Z 分量仅在启用 [member uv2_triplanar] 时使用,在其他" +"任何地方不会被使用。" + +msgid "" +"How much to scale the [code]UV2[/code] coordinates. This is multiplied by " +"[code]UV2[/code] in the vertex function. The Z component is used when " +"[member uv2_triplanar] is enabled, but it is not used anywhere else." +msgstr "" +"[code]UV2[/code] 坐标的缩放比例。在顶点函数中该属性乘以 [code]UV2[/code]。Z " +"分量仅在启用 [member uv2_triplanar] 时使用,在其他任何地方不会被使用。" + msgid "" "If [code]true[/code], instead of using [code]UV2[/code] textures will use a " "triplanar texture lookup to determine how to apply textures. Triplanar uses " @@ -14347,6 +15600,40 @@ msgstr "" "要更多的纹理读取,所以它比普通的 UV 纹理处理要慢得多。此外,由于它是在三个轴" "之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。" +msgid "" +"A lower number blends the texture more softly while a higher number blends " +"the texture more sharply.\n" +"[b]Note:[/b] [member uv2_triplanar_sharpness] is clamped between [code]0.0[/" +"code] and [code]150.0[/code] (inclusive) as values outside that range can " +"look broken depending on the mesh." +msgstr "" +"数字越小使纹理混合得越柔和,数字越大使纹理混合得越锐利。\n" +"[b]注意:[/b][member uv2_triplanar_sharpness] 被钳制在 [code]0.0[/code] 和 " +"[code]150.0[/code](包括)之间,因为超出该范围的值可能看起来会破损,具体取决" +"于网格。" + +msgid "" +"If [code]true[/code], triplanar mapping for [code]UV2[/code] is calculated " +"in world space rather than object local space. See also [member " +"uv2_triplanar]." +msgstr "" +"如果为 [code]true[/code],则 [code]UV2[/code] 的三平面映射是在世界空间而不是" +"对象局部空间中计算的。另见 [member uv2_triplanar]。" + +msgid "" +"If [code]true[/code], vertex colors are considered to be stored in sRGB " +"color space and are converted to linear color space during rendering. If " +"[code]false[/code], vertex colors are considered to be stored in linear " +"color space and are rendered as-is. See also [member " +"albedo_texture_force_srgb].\n" +"[b]Note:[/b] Only effective when using the Forward+ and Mobile rendering " +"methods, not Compatibility." +msgstr "" +"如果为 [code]true[/code],则顶点颜色被认为使用 sRGB 颜色空间存储,并在渲染期" +"间被转换为线性颜色空间。如果为 [code]false[/code],则顶点颜色被认为使用线性颜" +"色空间存储并按原样渲染。另见 [member albedo_texture_force_srgb]。\n" +"[b]注意:[/b]仅在使用 Forward+ 和移动渲染方式时有效,不支持兼容模式。" + msgid "If [code]true[/code], the vertex color is used as albedo color." msgstr "如果为 [code]true[/code],则使用顶点颜色作为反射率颜色。" @@ -14354,13 +15641,13 @@ msgid "Texture specifying per-pixel color." msgstr "指定每个像素颜色的纹理。" msgid "Texture specifying per-pixel metallic value." -msgstr "指定每个像素金属值的纹理。" +msgstr "指定每个像素金属度值的纹理。" msgid "Texture specifying per-pixel roughness value." msgstr "指定每个像素粗糙度值的纹理。" msgid "Texture specifying per-pixel emission color." -msgstr "指定每个像素发射颜色的纹理。" +msgstr "指定每个像素自发光颜色的纹理。" msgid "Texture specifying per-pixel normal vector." msgstr "指定每个像素法向量的纹理。" @@ -14479,7 +15766,7 @@ msgstr "该材质将不使用透明度。渲染最快。" msgid "" "The material will use the texture's alpha values for transparency. This is " "the slowest to render, and disables shadow casting." -msgstr "该材质将使用纹理的 alpha 值作为透明度。渲染最慢,会禁用阴影投射。" +msgstr "该材质将使用纹理的 Alpha 值作为透明度。渲染最慢,且会禁用阴影投射。" msgid "" "The material will cut off all values below a threshold, the rest will remain " @@ -14487,8 +15774,8 @@ msgid "" "faster to render than alpha blending, but slower than opaque rendering. This " "also supports casting shadows." msgstr "" -"该材质会将低于某个阈值的值截断,其他部分保持不透明。不透明部分在深度预渲染阶" -"段进行渲染。比 Alpha 混合快,但比不透明渲染慢。支持投射阴影。" +"该材质会将所有低于阈值的值截断,其余部分将保持不透明。不透明部分将在深度预通" +"道中渲染。这比 Alpha 混合的渲染速度更快,但比不透明渲染慢。支持投射阴影。" msgid "" "The material will cut off all values below a spatially-deterministic " @@ -14496,8 +15783,8 @@ msgid "" "blending, but slower than opaque rendering. This also supports casting " "shadows. Alpha hashing is suited for hair rendering." msgstr "" -"该材质会将低于某个空间确定性阈值的值截断,其他部分保持不透明。比 Alpha 混合" -"快,但比不透明渲染慢。支持投射阴影。Alpha 哈希适合毛发渲染。" +"该材质会将所有低于空间确定性阈值的值截断,其余部分将保持不透明。这比 Alpha 混" +"合的渲染速度更快,但比不透明渲染慢。支持投射阴影。Alpha 哈希适合毛发渲染。" msgid "" "The material will use the texture's alpha value for transparency, but will " @@ -14505,8 +15792,8 @@ msgid "" "and fragments with an alpha less than 0.1 during the shadow pass. This also " "supports casting shadows." msgstr "" -"该材质将使用纹理的 alpha 值作为透明度,但会在深度预渲染阶段丢弃 alpha 小于 " -"0.99 的片段,在阴影阶段丢弃 alpha 小于 0.1 的片段。支持投射阴影。" +"该材质将使用纹理的 Alpha 值作为透明度,但会在深度预通道阶段丢弃 Alpha 小于 " +"0.99 的片段,并在阴影通道期间丢弃 Alpha 小于 0.1 的片段。支持投射阴影。" msgid "Represents the size of the [enum Transparency] enum." msgstr "代表 [enum Transparency] 枚举的大小。" @@ -14514,7 +15801,19 @@ msgstr "代表 [enum Transparency] 枚举的大小。" msgid "" "The object will not receive shadows. This is the fastest to render, but it " "disables all interactions with lights." -msgstr "该对象不会接受阴影。渲染速度最快,但会禁用与灯光的所有互动。" +msgstr "该对象不会接受阴影。渲染速度最快,但会禁用与灯光的所有交互。" + +msgid "" +"The object will be shaded per pixel. Useful for realistic shading effects." +msgstr "对象将逐像素进行着色。对于逼真的阴影效果很有用。" + +msgid "" +"The object will be shaded per vertex. Useful when you want cheaper shaders " +"and do not care about visual quality. Not implemented yet (this mode will " +"act like [constant SHADING_MODE_PER_PIXEL])." +msgstr "" +"对象将逐顶点进行着色。当想要更便宜的着色器并且不关心视觉质量时很有用。尚未实" +"现(该模式的行为类似于 [constant SHADING_MODE_PER_PIXEL])。" msgid "Represents the size of the [enum ShadingMode] enum." msgstr "代表 [enum ShadingMode] 枚举的大小。" @@ -14561,10 +15860,10 @@ msgstr "代表 [enum Feature] 枚举的大小。" msgid "" "Default blend mode. The color of the object is blended over the background " "based on the object's alpha value." -msgstr "默认的混合模式。根据对象的 Alpha 值,在背景上混合对象的颜色。" +msgstr "默认的混合模式。根据对象的 Alpha 值,将对象的颜色混合到背景上。" msgid "The color of the object is added to the background." -msgstr "对象的颜色被添加到背景中。" +msgstr "对象的颜色被加到背景中。" msgid "The color of the object is subtracted from the background." msgstr "从背景中减去对象的颜色。" @@ -14589,14 +15888,77 @@ msgstr "" "启用 AlphaToCoverage 并将所有非零的 alpha 值强制设为 [code]1[/code]。材质中" "的 Alpha 值会被传递到 AntiAliasing 采样遮罩。" +msgid "" +"Default depth draw mode. Depth is drawn only for opaque objects during the " +"opaque prepass (if any) and during the opaque pass." +msgstr "" +"默认的深度绘制模式。在不透明预通道(如果有)和不透明通道期间,仅为不透明对象" +"绘制深度。" + +msgid "" +"Objects will write to depth during the opaque and the transparent passes. " +"Transparent objects that are close to the camera may obscure other " +"transparent objects behind them.\n" +"[b]Note:[/b] This does not influence whether transparent objects are " +"included in the depth prepass or not. For that, see [enum Transparency]." +msgstr "" +"在不透明和透明通道期间,对象将写入深度。靠近相机的透明物体可能会遮挡它们后面" +"的其他透明物体。\n" +"[b]注意:[/b]这不影响透明对象是否包含在深度预通道中。为此,请参阅 [enum " +"Transparency]。" + +msgid "" +"Objects will not write their depth to the depth buffer, even during the " +"depth prepass (if enabled)." +msgstr "" +"对象不会将其深度写入深度缓冲区,即使在深度预通道期间(如果启用)也是如此。" + +msgid "" +"Default cull mode. The back of the object is culled when not visible. Back " +"face triangles will be culled when facing the camera. This results in only " +"the front side of triangles being drawn. For closed-surface meshes, this " +"means that only the exterior of the mesh will be visible." +msgstr "" +"默认剔除模式。对象的背面在不可见时被剔除。面对相机时,背面三角形将被剔除。这" +"导致仅绘制三角形的正面。对于封闭表面网格,这意味着只有网格的外部可见。" + +msgid "" +"Front face triangles will be culled when facing the camera. This results in " +"only the back side of triangles being drawn. For closed-surface meshes, this " +"means that the interior of the mesh will be drawn instead of the exterior." +msgstr "" +"面对相机时,正面三角形将被剔除。这导致仅绘制三角形的背面。对于封闭表面网格," +"这意味着将绘制网格的内部而不是外部。" + msgid "" "No face culling is performed; both the front face and back face will be " "visible." -msgstr "不进行面剔除;正反面均可见。" +msgstr "不执行面剔除;正反面均可见。" + +msgid "" +"Disables the depth test, so this object is drawn on top of all others drawn " +"before it. This puts the object in the transparent draw pass where it is " +"sorted based on distance to camera. Objects drawn after it in the draw order " +"may cover it. This also disables writing to depth." +msgstr "" +"禁用深度测试,所以这个对象将被绘制到在它之前绘制的所有其他对象之上。这会将对" +"象置于透明绘制通道中,并根据到相机的距离对其进行排序。按照绘制顺序在它之后绘" +"制的对象可能会覆盖它。会禁用深度写入。" msgid "Set [code]ALBEDO[/code] to the per-vertex color specified in the mesh." msgstr "将 [code]ALBEDO[/code] 设置为网格中指定的每顶点颜色。" +msgid "" +"Vertex colors are considered to be stored in sRGB color space and are " +"converted to linear color space during rendering. See also [member " +"vertex_color_is_srgb].\n" +"[b]Note:[/b] Only effective when using the Forward+ and Mobile rendering " +"methods." +msgstr "" +"顶点颜色被认为使用 sRGB 颜色空间存储,并在渲染期间转换为线性颜色空间。另见 " +"[member vertex_color_is_srgb]。\n" +"[b]注意:[/b]仅在使用 Forward+ 和移动渲染方式时有效。" + msgid "" "Uses point size to alter the size of primitive points. Also changes the " "albedo texture lookup to use [code]POINT_COORD[/code] instead of [code]UV[/" @@ -14636,6 +15998,13 @@ msgid "" "emission_texture]." msgstr "使用 [code]UV2[/code] 坐标从 [member emission_texture] 中查找。" +msgid "" +"Forces the shader to convert albedo from sRGB space to linear space. See " +"also [member albedo_texture_force_srgb]." +msgstr "" +"强制着色器将反照率从 sRGB 空间转换为线性空间。另见 [member " +"albedo_texture_force_srgb]。" + msgid "Disables receiving shadows from other objects." msgstr "禁用从其他对象接收阴影。" @@ -14645,6 +16014,37 @@ msgstr "禁用接收环境光。" msgid "Enables the shadow to opacity feature." msgstr "启用阴影到不透明度功能。" +msgid "" +"Enables the texture to repeat when UV coordinates are outside the 0-1 range. " +"If using one of the linear filtering modes, this can result in artifacts at " +"the edges of a texture when the sampler filters across the edges of the " +"texture." +msgstr "" +"当 UV 坐标超出 0-1 范围时,使纹理能够重复。如果使用其中一种线性过滤模式,则当" +"采样器过滤纹理边缘时,这可能会导致纹理边缘出现伪影。" + +msgid "" +"Invert values read from a depth texture to convert them to height values " +"(heightmap)." +msgstr "反转从深度纹理读取的值以将它们转换为高度值(高度图)。" + +msgid "" +"Enables the skin mode for subsurface scattering which is used to improve the " +"look of subsurface scattering when used for human skin." +msgstr "" +"启用用于次表面散射的皮肤模式,该模式用于改善被用于人体皮肤时的次表面散射的外" +"观。" + +msgid "" +"Enables parts of the shader required for [GPUParticles3D] trails to " +"function. This also requires using a mesh with appropriate skinning, such as " +"[RibbonTrailMesh] or [TubeTrailMesh]. Enabling this feature outside of " +"materials used in [GPUParticles3D] meshes will break material rendering." +msgstr "" +"启用使 [GPUParticles3D] 尾迹生效所需的部分着色器。这也需要使用具有适当蒙皮的" +"网格,例如 [RibbonTrailMesh] 或 [TubeTrailMesh]。在 [GPUParticles3D] 网格中使" +"用的材质之外启用该功能将破坏材质的渲染。" + msgid "Enables multichannel signed distance field rendering shader." msgstr "启用多通道有符号距离场渲染着色器。" @@ -14683,6 +16083,18 @@ msgstr "对象的 Z 轴将始终面向相机。" msgid "The object's X axis will always face the camera." msgstr "对象的 X 轴将始终面向相机。" +msgid "" +"Used for particle systems when assigned to [GPUParticles3D] and " +"[CPUParticles3D] nodes. Enables [code]particles_anim_*[/code] properties.\n" +"The [member ParticleProcessMaterial.anim_speed_min] or [member " +"CPUParticles3D.anim_speed_min] should also be set to a value bigger than " +"zero for the animation to play." +msgstr "" +"分配给 [GPUParticles3D] 和 [CPUParticles3D] 节点时被用于粒子系统。启用 " +"[code]particles_anim_*[/code] 属性。\n" +"[member ParticleProcessMaterial.anim_speed_min] 或 [member CPUParticles3D." +"anim_speed_min] 也应设置为大于零的值,以便播放动画。" + msgid "Used to read from the red channel of a texture." msgstr "用来读取纹理的红色通道。" @@ -14695,19 +16107,45 @@ msgstr "用来读取纹理的蓝色通道。" msgid "Used to read from the alpha channel of a texture." msgstr "用来读取纹理的 Alpha 通道。" +msgid "" +"Used to read from the linear (non-perceptual) average of the red, green and " +"blue channels of a texture." +msgstr "用于读取纹理的红色、绿色和蓝色通道的线性(非感知)平均值。" + msgid "Adds the emission color to the color from the emission texture." -msgstr "将发射颜色添加到发射纹理的颜色上。" +msgstr "将自发光颜色加到自发光纹理的颜色上。" msgid "Multiplies the emission color by the color from the emission texture." -msgstr "将发射颜色乘以发射纹理的颜色。" +msgstr "将自发光颜色乘以自发光纹理的颜色。" msgid "Do not use distance fade." -msgstr "不要使用距离淡化。" +msgstr "不使用距离淡化。" msgid "" "Smoothly fades the object out based on each pixel's distance from the camera " "using the alpha channel." -msgstr "根据每个像素与相机的距离,使用 Alpha 通道平滑地淡化对象。" +msgstr "根据每个像素与相机的距离,使用 Alpha 通道平滑地淡出对象。" + +msgid "" +"Smoothly fades the object out based on each pixel's distance from the camera " +"using a dithering approach. Dithering discards pixels based on a set pattern " +"to smoothly fade without enabling transparency. On certain hardware, this " +"can be faster than [constant DISTANCE_FADE_PIXEL_ALPHA]." +msgstr "" +"根据每个像素与相机的距离,使用一种抖动方法平滑地淡出对象。抖动会根据设定的模" +"式丢弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,该选项可能比 " +"[constant DISTANCE_FADE_PIXEL_ALPHA] 更快。" + +msgid "" +"Smoothly fades the object out based on the object's distance from the camera " +"using a dithering approach. Dithering discards pixels based on a set pattern " +"to smoothly fade without enabling transparency. On certain hardware, this " +"can be faster than [constant DISTANCE_FADE_PIXEL_ALPHA] and [constant " +"DISTANCE_FADE_PIXEL_DITHER]." +msgstr "" +"根据对象与相机的距离,使用一种抖动方法平滑淡出对象。抖动根据设定的模式丢弃像" +"素,在不启用透明的情况下平滑淡化。在某些硬件上,该选项可能比 [constant " +"DISTANCE_FADE_PIXEL_ALPHA] 和 [constant DISTANCE_FADE_PIXEL_DITHER] 更快。" msgid "3×3 matrix datatype." msgstr "3×3 矩阵数据类型。" @@ -14770,7 +16208,38 @@ msgid "" "invalid." msgstr "" "返回基矩阵的行列式。如果基是均匀缩放的,它的行列式是缩放的平方。\n" -"负的行列式意味着基的比例是负的。负的行列式意味着基不可逆,通常被认为无效。" +"负的行列式意味着基的缩放是负的。负的行列式意味着基不可逆,通常被认为无效。" + +msgid "" +"Constructs a pure rotation Basis matrix from Euler angles in the specified " +"Euler rotation order. By default, use YXZ order (most common). See the [enum " +"EulerOrder] enum for possible values." +msgstr "" +"按照指定的欧拉旋转顺序,从欧拉角中构造一个纯旋转的 Basis 矩阵。默认情况下,使" +"用 YXZ 顺序(最常用)。参见枚举 [enum EulerOrder] 的可能值。" + +msgid "" +"Constructs a pure scale basis matrix with no rotation or shearing. The scale " +"values are set as the diagonal of the matrix, and the other parts of the " +"matrix are zero." +msgstr "" +"构造一个没有旋转或剪切的纯缩放基础矩阵。scale 值被设置为矩阵的对角线,矩阵的" +"其他部分为零。" + +msgid "" +"Returns the basis's rotation in the form of Euler angles. The Euler order " +"depends on the [param order] parameter, by default it uses the YXZ " +"convention: when decomposing, first Z, then X, and Y last. The returned " +"vector contains the rotation angles in the format (X angle, Y angle, Z " +"angle).\n" +"Consider using the [method get_rotation_quaternion] method instead, which " +"returns a [Quaternion] quaternion instead of Euler angles." +msgstr "" +"以欧拉角的形式返回基的旋转。欧拉顺序取决于 [param order] 参数,默认使用 YXZ " +"惯例:分解时,先 Z、再 X、最后 Y。返回的向量包含格式为(X 角、Y 角、Z 角)的" +"旋转角。\n" +"可考虑改用 [method get_rotation_quaternion] 方法,将返回 [Quaternion] 四元数" +"而不是欧拉角。" msgid "" "Returns the basis's rotation in the form of a quaternion. See [method " @@ -14823,6 +16292,13 @@ msgstr "" "返回矩阵的正交归一化版本(对于正交矩阵来说,偶尔调用以避免四舍五入错误是有用" "的)。这将在矩阵的基上执行 Gram-Schmidt 正交化。" +msgid "" +"Introduce an additional rotation around the given axis by [param angle] (in " +"radians). The axis must be a normalized vector." +msgstr "" +"围绕给定轴线引入一个额外的旋转 [param angle](单位为弧度)。该轴必须是一个归" +"一化的向量。" + msgid "" "Introduce an additional scaling specified by the given 3D scaling factor." msgstr "引入一个由给定的 3D 缩放因子指定的附加缩放。" @@ -14894,6 +16370,14 @@ msgstr "" "[b]注意:[/b]由于浮点数精度误差,请考虑改用 [method is_equal_approx],会更可" "靠。" +msgid "" +"Composes these two basis matrices by multiplying them together. This has the " +"effect of transforming the second basis (the child) by the first basis (the " +"parent)." +msgstr "" +"通过将这两个 basis 矩阵相乘来组合它们。这具有使用第一个 basis(父项)变换第二" +"个 basis(子项)的效果。" + msgid "Transforms (multiplies) the [Vector3] by the given [Basis] matrix." msgstr "使用给定的 [Basis] 矩阵变换(乘)该 [Vector3]。" @@ -14911,6 +16395,14 @@ msgstr "" "[b]注意:[/b]由于浮点数精度误差,请考虑改用 [method is_equal_approx],会更可" "靠。" +msgid "" +"Access basis components using their index. [code]b[0][/code] is equivalent " +"to [code]b.x[/code], [code]b[1][/code] is equivalent to [code]b.y[/code], " +"and [code]b[2][/code] is equivalent to [code]b.z[/code]." +msgstr "" +"使用索引访问基的分量。[code]b[0][/code] 相当于 [code]b.x[/code]、[code]b[1][/" +"code] 相当于 [code]b.y[/code]、[code] b[2][/code] 相当于 [code]b.z[/code]。" + msgid "Boolean matrix." msgstr "布尔矩阵。" @@ -14952,6 +16444,44 @@ msgstr "返回位图在指定位置的值。" msgid "Returns bitmap's dimensions." msgstr "返回位图的尺寸。" +msgid "" +"Returns the number of bitmap elements that are set to [code]true[/code]." +msgstr "返回设置为 [code]true[/code] 的位图元素的数量。" + +msgid "" +"Applies morphological dilation or erosion to the bitmap. If [param pixels] " +"is positive, dilation is applied to the bitmap. If [param pixels] is " +"negative, erosion is applied to the bitmap. [param rect] defines the area " +"where the morphological operation is applied. Pixels located outside the " +"[param rect] are unaffected by [method grow_mask]." +msgstr "" +"对位图进行形态学膨胀或腐蚀操作。如果 [param pixels] 为正,则对位图执行膨胀。" +"如果 [param pixels] 为负,则对位图执行腐蚀。[param rect] 定义进行形态学操作的" +"区域。位于 [param rect]] 之外的像素不会被 [method grow_mask] 影响。" + +msgid "" +"Creates an [Array] of polygons covering a rectangular portion of the bitmap. " +"It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker " +"(RDP) reduction of the number of vertices. Each polygon is described as a " +"[PackedVector2Array] of its vertices.\n" +"To get polygons covering the whole bitmap, pass:\n" +"[codeblock]\n" +"Rect2(Vector2(), get_size())\n" +"[/codeblock]\n" +"[param epsilon] is passed to RDP to control how accurately the polygons " +"cover the bitmap: a lower [param epsilon] corresponds to more points in the " +"polygons." +msgstr "" +"创建一个多边形 [Array],以覆盖位图的矩形部分。它使用行进方块算法,然后使用 " +"Ramer-Douglas-Peucker(RDP)减少顶点数。每个多边形都被描述为其顶点的 " +"[PackedVector2Array]。\n" +"要获取覆盖整个位图的多边形,请传递:\n" +"[codeblock]\n" +"Rect2(Vector2(), get_size())\n" +"[/codeblock]\n" +"[param epsilon] 被传递给 RDP,以控制多边形覆盖位图的准确程度:[param " +"epsilon] 越低,对应的多边形中的点越多。" + msgid "Resizes the image to [param new_size]." msgstr "将该图像的大小修改为 [param new_size]。" @@ -14998,10 +16528,25 @@ msgstr "" "(如果存在)自动计算其长度和骨骼角度。如果没有 [code]Bone2D[/code] 子节点,则" "它无法自动计算这些值并会打印一条警告。" +msgid "" +"Returns the angle of the bone in the [code]Bone2D[/code] node.\n" +"[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The " +"bone angle is the rotation of the bone shown by the [code]Bone2D[/code] " +"gizmo, and because [code]Bone2D[/code] bones are based on positions, this " +"can vary from the actual rotation of the [code]Bone2D[/code] node." +msgstr "" +"返回 [code]Bone2D[/code] 节点中骨骼的角度。\n" +"[b]注意:[/b]这与 [code]Bone2D[/code] 的旋转不同。骨骼角度是 [code]Bone2D[/" +"code] 小工具显示的骨骼旋转,因为 [code]Bone2D[/code] 骨骼基于位置,这可能与 " +"[code]Bone2D[/code] 节点的实际旋转不同。" + msgid "" "Returns the node's index as part of the entire skeleton. See [Skeleton2D]." msgstr "返回节点在整个骨架中的索引号。见 [Skeleton2D]。" +msgid "Returns the length of the bone in the [code]Bone2D[/code] node." +msgstr "返回 [code]Bone2D[/code] 节点中骨骼的长度。" + msgid "" "Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have " "a parent, or its rest pose relative to its parent." @@ -15019,6 +16564,21 @@ msgstr "" "[code]Bone2D[/code] 节点(如果存在)自动计算骨骼角度和长度。如果不存在子节" "点,[code]Bone2D[/code] 将无法自动计算这些值,并将打印一条警告。" +msgid "" +"Sets the bone angle for the [code]Bone2D[/code] node. This is typically set " +"to the rotation from the [code]Bone2D[/code] node to a child [code]Bone2D[/" +"code] node.\n" +"[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The " +"bone angle is the rotation of the bone shown by the [code]Bone2D[/code] " +"gizmo, and because [code]Bone2D[/code] bones are based on positions, this " +"can vary from the actual rotation of the [code]Bone2D[/code] node." +msgstr "" +"设置 [code]Bone2D[/code] 节点的骨骼角度。这通常设置为从 [code]Bone2D[/code] " +"节点到子 [code]Bone2D[/code] 节点的旋转。\n" +"[b]注意:[/b]这与 [code]Bone2D[/code] 的旋转不同。骨骼角度是 [code]Bone2D[/" +"code] 小工具显示的骨骼旋转,因为 [code]Bone2D[/code] 骨骼基于位置,这可能与 " +"[code]Bone2D[/code] 节点的实际旋转不同。" + msgid "Sets the length of the bone in the [code]Bone2D[/code] node." msgstr "设置该 [code]Bone2D[/code] 节点中骨骼的长度。" @@ -15031,15 +16591,57 @@ msgstr "" msgid "A node that will attach to a bone." msgstr "会附着在骨骼上的节点。" +msgid "" +"This node will allow you to select a bone for this node to attach to. The " +"BoneAttachment3D node can copy the transform of the select bone, or can " +"override the transform of the selected bone.\n" +"The BoneAttachment3D node must either be a child of a [Skeleton3D] node or " +"be given an external [Skeleton3D] to use in order to function properly." +msgstr "" +"该节点将允许选择要附加到该节点的骨骼。BoneAttachment3D 节点可以复制所选骨骼的" +"变换,也可以覆盖所选骨骼的变换。\n" +"BoneAttachment3D 节点必须成为 [Skeleton3D] 节点的子节点,或者被赋给一个外部 " +"[Skeleton3D] 才能正常运行。" + +msgid "" +"Returns the [NodePath] to the external [Skeleton3D] node, if one has been " +"set." +msgstr "返回到外部 [Skeleton3D] 节点的 [NodePath](如果已设置)。" + +msgid "" +"Returns whether the BoneAttachment3D node is using an external [Skeleton3D] " +"rather than attempting to use its parent node as the [Skeleton3D]." +msgstr "" +"返回该 BoneAttachment3D 节点是否正在使用外部 [Skeleton3D],而不是尝试将其父节" +"点用作 [Skeleton3D]。" + +msgid "" +"A function that is called automatically when the [Skeleton3D] the " +"BoneAttachment3D node is using has a bone that has changed its pose. This " +"function is where the BoneAttachment3D node updates its position so it is " +"correctly bound when it is [i]not[/i] set to override the bone pose." +msgstr "" +"当该 BoneAttachment3D 节点正在使用的 [Skeleton3D] 中有骨骼已改变其姿势时,自" +"动调用的函数。该函数是 BoneAttachment3D 节点更新其位置的地方,以便在[i]未[/i]" +"设置为覆盖骨骼姿势时正确绑定。" + +msgid "" +"Sets the [NodePath] to the external skeleton that the BoneAttachment3D node " +"should use. See [method set_use_external_skeleton] to enable the external " +"[Skeleton3D] node." +msgstr "" +"设置该 BoneAttachment3D 节点到其应使用的外部骨架的 [NodePath]。请参阅 " +"[method set_use_external_skeleton] 以启用外部 [Skeleton3D] 节点。" + msgid "" "Sets whether the BoneAttachment3D node will use an extenral [Skeleton3D] " "node rather than attenpting to use its parent node as the [Skeleton3D]. When " "set to [code]true[/code], the BoneAttachment3D node will use the external " "[Skeleton3D] node set in [method set_external_skeleton]." msgstr "" -"设置 BoneAttachment3D 节点是否将使用外部 [Skeleton3D] 节点,而不是尝试使用其" -"父节点作为 [Skeleton3D]。当设置为 [code]true[/code]时,BoneAttachment3D 节点" -"将使用 [method set_external_skeleton] 中设置的外部 [Skeleton3D] 节点。" +"设置该 BoneAttachment3D 节点是否将使用外部 [Skeleton3D] 节点,而不是尝试使用" +"其父节点作为 [Skeleton3D]。当设置为 [code]true[/code]时,BoneAttachment3D 节" +"点将使用 [method set_external_skeleton] 中设置的外部 [Skeleton3D] 节点。" msgid "The index of the attached bone." msgstr "所附着骨骼的索引。" @@ -15047,6 +16649,16 @@ msgstr "所附着骨骼的索引。" msgid "The name of the attached bone." msgstr "所附着骨骼的名称。" +msgid "" +"Whether the BoneAttachment3D node will override the bone pose of the bone it " +"is attached to. When set to [code]true[/code], the BoneAttachment3D node can " +"change the pose of the bone. When set to [code]false[/code], the " +"BoneAttachment3D will always be set to the bone's transform." +msgstr "" +"BoneAttachment3D 节点是否将覆盖它所附着到的骨骼的骨骼姿势。当设置为 " +"[code]true[/code] 时,BoneAttachment3D 节点可以改变骨骼的姿势。当设置为 " +"[code]false[/code] 时,BoneAttachment3D 将始终被设置为骨骼的变换。" + msgid "Bone map for retargeting." msgstr "用于重定向的骨骼映射。" @@ -15063,6 +16675,16 @@ msgstr "" msgid "Retargeting 3D Skeletons" msgstr "重定向 3D 骨架" +msgid "" +"Returns a profile bone name having [param skeleton_bone_name]. If not found, " +"an empty [StringName] will be returned.\n" +"In the retargeting process, the returned bone name is the bone name of the " +"target skeleton." +msgstr "" +"返回具有 [param skeleton_bone_name] 的轮廓骨骼名称。如果没有找到,将返回一个" +"空的 [StringName]。\n" +"在重定向过程中,返回的骨骼名称是目标骨架的骨骼名称。" + msgid "" "Returns a skeleton bone name is mapped to [param profile_bone_name].\n" "In the retargeting process, the returned bone name is the bone name of the " @@ -15438,6 +17060,35 @@ msgstr "沿 Y 轴插入的额外边缘环的数量。" msgid "Number of extra edge loops inserted along the X axis." msgstr "沿 X 轴插入的额外边缘环的数量。" +msgid "Cuboid shape for use with occlusion culling in [OccluderInstance3D]." +msgstr "与 [OccluderInstance3D] 中的遮挡剔除一起使用的长方体形状。" + +msgid "" +"[BoxOccluder3D] stores a cuboid shape that can be used by the engine's " +"occlusion culling system.\n" +"See [OccluderInstance3D]'s documentation for instructions on setting up " +"occlusion culling." +msgstr "" +"[BoxOccluder3D] 存储一个长方体形状,可供引擎的遮挡剔除系统使用。\n" +"有关设置遮挡剔除的说明,请参阅 [OccluderInstance3D] 的文档。" + +msgid "The box's size in 3D units." +msgstr "以 3D 单位表示的盒子大小。" + +msgid "Box shape resource for 3D collisions." +msgstr "用于 3D 碰撞的盒形资源。" + +msgid "" +"3D box shape to be added as a [i]direct[/i] child of a [PhysicsBody3D] or " +"[Area3D] using a [CollisionShape3D] node.\n" +"[b]Performance:[/b] Being a primitive collision shape, [BoxShape3D] is fast " +"to check collisions against (though not as fast as [SphereShape3D])." +msgstr "" +"使用 [CollisionShape3D] 节点作为 [PhysicsBody3D] 或 [Area3D] 的[i]直接[/i]子" +"节点时,可被添加的 3D 盒状形状。\n" +"[b]性能:[/b]作为一种原始的碰撞形状,[BoxShape3D] 可以快速检测碰撞(尽管不如 " +"[SphereShape3D] 快)。" + msgid "3D Kinematic Character Demo" msgstr "3D 动力学角色演示" @@ -15522,6 +17173,11 @@ msgstr "" msgid "OS Test Demo" msgstr "操作系统测试演示" +msgid "" +"Text alignment policy for the button's text, use one of the [enum " +"HorizontalAlignment] constants." +msgstr "按钮文本的文本对齐策略,使用 [enum HorizontalAlignment] 常量之一。" + msgid "" "When this property is enabled, text that is too large to fit the button is " "clipped, when disabled the Button will always be wide enough to hold the " @@ -15538,6 +17194,24 @@ msgstr "启用后,按钮的图标将展开/收缩以适应按钮的大小, msgid "Flat buttons don't display decoration." msgstr "平面按钮不显示装饰。" +msgid "" +"Button's icon, if text is present the icon will be placed before the text.\n" +"To edit margin and spacing of the icon, use [theme_item h_separation] theme " +"property and [code]content_margin_*[/code] properties of the used " +"[StyleBox]es." +msgstr "" +"按钮的图标,如果文本存在,则图标将被放置在文本之前。\n" +"要编辑图标的边距和间距,请使用 [theme_item h_separation] 主题属性,和所用 " +"[StyleBox] 的 [code]content_margin_*[/code] 属性。" + +msgid "" +"Specifies if the icon should be aligned to the left, right, or center of a " +"button. Uses the same [enum HorizontalAlignment] constants as the text " +"alignment. If centered, text will draw on top of the icon." +msgstr "" +"指定图标应该在按钮上左对齐、右对齐、还是居中。请使用与文本对齐相同的 [enum " +"TextAlign] 常量。如果居中,则文本将被绘制在图标之上。" + msgid "" "Language code used for line-breaking and text shaping algorithms, if left " "empty current locale is used instead." @@ -15549,6 +17223,14 @@ msgstr "该按钮的文本,将显示在按钮的区域内。" msgid "Base text writing direction." msgstr "基础文本书写方向。" +msgid "" +"Sets the clipping behavior when the text exceeds the node's bounding " +"rectangle. See [enum TextServer.OverrunBehavior] for a description of all " +"modes." +msgstr "" +"设置文本超出节点的边界矩形时的裁剪行为。有关所有模式的描述,请参阅 [enum " +"TextServer.OverrunBehavior]。" + msgid "Default text [Color] of the [Button]." msgstr "该 [Button] 的默认文本 [Color]。" @@ -16133,6 +17815,28 @@ msgstr "" "拖动相机所需的下边距。值为 [code]1[/code] 时,相机仅在到达屏幕底部边缘时移" "动。" +msgid "" +"If [code]true[/code], the camera only moves when reaching the horizontal " +"(left and right) drag margins. If [code]false[/code], the camera moves " +"horizontally regardless of margins." +msgstr "" +"如果为 [code]true[/code],相机仅在到达水平(左或右)拖动边距时移动。如果为 " +"[code]false[/code],则相机水平移动时不考虑边距。" + +msgid "" +"The relative horizontal drag offset of the camera between the right " +"([code]-1[/code]) and left ([code]1[/code]) drag margins.\n" +"[b]Note:[/b] Used to set the initial horizontal drag offset; determine the " +"current offset; or force the current offset. It's not automatically updated " +"when [member drag_horizontal_enabled] is [code]true[/code] or the drag " +"margins are changed." +msgstr "" +"相机在右侧([code]-1[/code])和左侧([code]1[/code])拖动边距之间的相对水平拖" +"动偏移量。\n" +"[b]注意:[/b]用于设置初始水平拖动偏移量;确定当前偏移量;或强制当前偏移量。" +"当 [member drag_horizontal_enabled] 为 [code]true[/code] 或更改拖动边距时,它" +"不会自动更新。" + msgid "" "Left margin needed to drag the camera. A value of [code]1[/code] makes the " "camera move only when reaching the left edge of the screen." @@ -16162,6 +17866,20 @@ msgstr "" "如果为 [code]true[/code],相机仅在达到垂直(顶部及底部)拖动边距时才移动。如" "果为 [code]false[/code],相机会垂直移动而不管边距。" +msgid "" +"The relative vertical drag offset of the camera between the bottom " +"([code]-1[/code]) and top ([code]1[/code]) drag margins.\n" +"[b]Note:[/b] Used to set the initial vertical drag offset; determine the " +"current offset; or force the current offset. It's not automatically updated " +"when [member drag_vertical_enabled] is [code]true[/code] or the drag margins " +"are changed." +msgstr "" +"相机在底部([code]-1[/code])和顶部([code]1[/code])拖动边距之间的相对垂直拖" +"动偏移量。\n" +"[b]注意:[/b]用于设置初始垂直拖动偏移量;确定当前偏移量;或强制当前偏移量。" +"当 [member drag_vertical_enabled] 为 [code]true[/code] 或更改拖动边距时,它不" +"会自动更新。" + msgid "" "If [code]true[/code], draws the camera's drag margin rectangle in the editor." msgstr "如果为 [code]true[/code],在编辑器中绘制相机的拖动边距矩形。" @@ -16182,11 +17900,11 @@ msgid "" "[code]false[/code], the next enabled [Camera2D] in the scene tree will " "become active." msgstr "" -"控制相机是否可以激活。如果为 [code]true[/code],当 [Camera2D]进入场景树并且当" -"前没有活动的相机时,它将成为主相机(参见 [ method Viewport ." +"控制该相机是否可以激活。如果为 [code]true[/code],当该 [Camera2D] 进入场景树" +"并且当前没有活动的相机时,它将成为主相机(参见 [method Viewport." "get_camera_2d])。\n" -"当相机处于活动状态且 [member enabled]被设置为 [code]false[/code],场景树中下" -"一个启用此项的 [Camera2D]将变为活动状态。" +"当该相机当前处于活动状态且 [member enabled] 被设置为 [code]false[/code] 时," +"则场景树中下一个启用的 [Camera2D] 将变为活动状态。" msgid "" "If [code]true[/code], the camera's rendered view is not affected by its " @@ -16216,6 +17934,20 @@ msgstr "" "右侧滚动极限,单位为像素。相机会在抵达该值时停止移动,但是 [member offset] 可" "以把视图推过该极限。" +msgid "" +"If [code]true[/code], the camera smoothly stops when reaches its limits.\n" +"This property has no effect if [member position_smoothing_enabled] is " +"[code]false[/code].\n" +"[b]Note:[/b] To immediately update the camera's position to be within limits " +"without smoothing, even with this setting enabled, invoke [method " +"reset_smoothing]." +msgstr "" +"如果为 [code]true[/code],相机会在达到极限时平滑地停止。\n" +"如果 [member position_smoothing_enabled] 为 [code]false[/code],则该属性无" +"效。\n" +"[b]注意:[/b]要立即将相机的位置更新到限制范围内而不进行平滑,即使启用了该设" +"置,也要调用 [method reset_smoothing]。" + msgid "" "Top scroll limit in pixels. The camera stops moving when reaching this " "value, but [member offset] can push the view past the limit." @@ -16223,9 +17955,52 @@ msgstr "" "顶部滚动极限,单位为像素。相机会在抵达该值时停止移动,但是 [member offset] 可" "以把视图推过该极限。" +msgid "" +"The camera's relative offset. Useful for looking around or camera shake " +"animations. The offsetted camera can go past the limits defined in [member " +"limit_top], [member limit_bottom], [member limit_left] and [member " +"limit_right]." +msgstr "" +"相机的相对偏移量。用于环顾四周或相机抖动动画。偏移的相机可以超过 [member " +"limit_top]、[member limit_bottom]、[member limit_left] 和 [member " +"limit_right] 中定义的限制。" + +msgid "" +"If [code]true[/code], the camera's view smoothly moves towards its target " +"position at [member position_smoothing_speed]." +msgstr "" +"如果为 [code]true[/code],相机的视图会以 [member position_smoothing_speed] 的" +"速度,平滑地移向其目标位置。" + +msgid "" +"Speed in pixels per second of the camera's smoothing effect when [member " +"position_smoothing_enabled] is [code]true[/code]." +msgstr "" +"当 [member position_smoothing_enabled] 为 [code]true[/code] 时,相机平滑效果" +"的速度,单位为每秒像素。" + msgid "The camera's process callback. See [enum Camera2DProcessCallback]." msgstr "该相机的处理回调。见 [enum Camera2DProcessCallback]。" +msgid "" +"If [code]true[/code], the camera's view smoothly rotates, via asymptotic " +"smoothing, to align with its target rotation at [member " +"rotation_smoothing_speed].\n" +"[b]Note:[/b] This property has no effect if [member ignore_rotation] is " +"[code]true[/code]." +msgstr "" +"如果为 [code]true[/code],相机的视图会通过渐近平滑的方式平滑地旋转,以 " +"[member rotation_smoothing_speed] 的速度与其目标旋转对齐。\n" +"[b]注意:[/b]如果 [member ignore_rotation] 为 [code]true[/code],则该属性无" +"效。" + +msgid "" +"The angular, asymptotic speed of the camera's rotation smoothing effect when " +"[member rotation_smoothing_enabled] is [code]true[/code]." +msgstr "" +"当 [member rotation_smoothing_enabled] 为 [code]true[/code] 时,相机旋转平滑" +"效果的角度渐近速度。" + msgid "" "The camera's zoom. A zoom of [code]Vector(2, 2)[/code] doubles the size seen " "in the viewport. A zoom of [code]Vector(0.5, 0.5)[/code] halves the size " @@ -16296,6 +18071,26 @@ msgstr "" "如果这是当前相机,则将其从当前相机中移除。如果 [param enable_next] 为 " "[code]true[/code],则请求使下一个相机(如果有)成为当前相机。" +msgid "Returns the camera's RID from the [RenderingServer]." +msgstr "从 [RenderingServer] 返回该相机的 RID。" + +msgid "" +"Returns the transform of the camera plus the vertical ([member v_offset]) " +"and horizontal ([member h_offset]) offsets; and any other adjustments made " +"to the position and orientation of the camera by subclassed cameras such as " +"[XRCamera3D]." +msgstr "" +"返回该相机的变换,该变换会加上垂直([member v_offset])和水平([member " +"h_offset])偏移;以及 [XRCamera3D] 等子类相机对相机位置和方向所做的任何其他调" +"整。" + +msgid "" +"Returns whether or not the specified layer of the [member cull_mask] is " +"enabled, given a [param layer_number] between 1 and 20." +msgstr "" +"返回是否启用了 [member cull_mask] 的指定层,该层由一个介于 1 和 20 之间的给" +"定 [param layer_number] 指定。" + msgid "" "Returns the camera's frustum planes in world space units as an array of " "[Plane]s in the following order: near, far, left, top, right, bottom. Not to " @@ -16304,6 +18099,38 @@ msgstr "" "以世界空间单位将相机的视锥平面作为 [Plane] 数组按以下顺序返回:near、far、" "left、top、right、bottom。不要与 [member frustum_offset] 混淆。" +msgid "" +"Returns the RID of a pyramid shape encompassing the camera's view frustum, " +"ignoring the camera's near plane. The tip of the pyramid represents the " +"position of the camera." +msgstr "" +"返回包含该相机视锥的锥体形状的 RID,忽略相机的近处平面。锥体的尖端代表该相机" +"的位置。" + +msgid "" +"Returns [code]true[/code] if the given position is behind the camera (the " +"blue part of the linked diagram). [url=https://raw.githubusercontent.com/" +"godotengine/godot-docs/master/img/camera3d_position_frustum.png]See this " +"diagram[/url] for an overview of position query methods.\n" +"[b]Note:[/b] A position which returns [code]false[/code] may still be " +"outside the camera's field of view." +msgstr "" +"如果给定位置在相机后面(链接图的蓝色部分),则返回 [code]true[/code]。" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"camera3d_position_frustum.png]查看此图[/url]以了解位置查询方法的概述。\n" +"[b]注意:[/b]返回 [code]false[/code] 的位置可能仍然在相机的视野之外。" + +msgid "" +"Returns [code]true[/code] if the given position is inside the camera's " +"frustum (the green part of the linked diagram). [url=https://raw." +"githubusercontent.com/godotengine/godot-docs/master/img/" +"camera3d_position_frustum.png]See this diagram[/url] for an overview of " +"position query methods." +msgstr "" +"如果给定位置在相机的视锥(链接图的绿色部分)内,则返回 [code]true[/code]。" +"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/" +"camera3d_position_frustum.png]查看此图[/url]以了解位置查询方法的概述。" + msgid "" "Makes this camera the current camera for the [Viewport] (see class " "description). If the camera node is outside the scene tree, it will attempt " @@ -16335,7 +18162,7 @@ msgid "" "intersection or picking." msgstr "" "返回世界空间中的法线向量,即通过逆相机投影将点投影到 [Viewport] 矩形上的结" -"果。这对于以 (原点, 法线) 的形式投射光线,以进行对象相交或拾取很有用。" +"果。这对于以(原点,法线)的形式投射光线,以进行对象相交或拾取很有用。" msgid "" "Returns a 3D position in world space, that is the result of projecting a " @@ -16346,6 +18173,71 @@ msgstr "" "返回世界空间中的 3D 位置,即通过逆相机投影将点投影到 [Viewport] 矩形上的结" "果。这对于以(原点,法线)的形式投射光线,以进行对象相交或拾取很有用。" +msgid "" +"Based on [param value], enables or disables the specified layer in the " +"[member cull_mask], given a [param layer_number] between 1 and 20." +msgstr "" +"基于 [param value],启用或禁用 [member cull_mask] 中的指定层,该层由一个介于 " +"1 和 20 之间的给定 [param layer_number] 指定。" + +msgid "" +"Sets the camera projection to frustum mode (see [constant " +"PROJECTION_FRUSTUM]), by specifying a [param size], an [param offset], and " +"the [param z_near] and [param z_far] clip planes in world space units. See " +"also [member frustum_offset]." +msgstr "" +"通过指定的以世界空间单位为单位的 [param size]、[param offset]、以及 [param " +"z_near] 和 [param z_far] 裁剪平面,将相机投影设置为视锥模式(参见 [constant " +"PROJECTION_FRUSTUM])。另请参见 [member frustum_offset]。" + +msgid "" +"Sets the camera projection to orthogonal mode (see [constant " +"PROJECTION_ORTHOGONAL]), by specifying a [param size], and the [param " +"z_near] and [param z_far] clip planes in world space units. (As a hint, 2D " +"games often use this projection, with values specified in pixels.)" +msgstr "" +"通过指定的以世界空间单位为单位的 [param size]、以及 [param z_near] 和 [param " +"z_far] 裁剪平面,将相机投影设置为正交模式(参见 [constant " +"PROJECTION_ORTHOGONAL])。(作为提示,2D 游戏经常使用这种投影,其值以像素为单" +"位指定。)" + +msgid "" +"Sets the camera projection to perspective mode (see [constant " +"PROJECTION_PERSPECTIVE]), by specifying a [param fov] (field of view) angle " +"in degrees, and the [param z_near] and [param z_far] clip planes in world " +"space units." +msgstr "" +"通过指定的以度为单位的 [param fov](视野)角度,以及以世界空间单位为单位的 " +"[param z_near] 和 [param z_far] 裁剪平面,将相机投影设置为透视模式(参见 " +"[constant PROJECTION_PERSPECTIVE])。" + +msgid "" +"Returns the 2D coordinate in the [Viewport] rectangle that maps to the given " +"3D point in world space.\n" +"[b]Note:[/b] When using this to position GUI elements over a 3D viewport, " +"use [method is_position_behind] to prevent them from appearing if the 3D " +"point is behind the camera:\n" +"[codeblock]\n" +"# This code block is part of a script that inherits from Node3D.\n" +"# `control` is a reference to a node inheriting from Control.\n" +"control.visible = not get_viewport().get_camera_3d()." +"is_position_behind(global_transform.origin)\n" +"control.position = get_viewport().get_camera_3d()." +"unproject_position(global_transform.origin)\n" +"[/codeblock]" +msgstr "" +"返回映射到世界空间中给定 3D 点的 [Viewport] 矩形中的 2D 坐标。\n" +"[b]注意:[/b]当使用它在 3D 视口上定位 GUI 元素时,如果 3D 点在相机后面,请使" +"用 [method is_position_behind] 来防止它们出现:\n" +"[codeblock]\n" +"# 该代码块是从 Node3D 继承的脚本的一部分。\n" +"# `control` 是对从 Control 继承的节点的引用。\n" +"control.visible = not get_viewport().get_camera_3d()." +"is_position_behind(global_transform.origin)\n" +"control.position = get_viewport().get_camera_3d()." +"unproject_position(global_transform.origin)\n" +"[/codeblock]" + msgid "The [CameraAttributes] to use for this camera." msgstr "该相机所使用的 [CameraAttributes]。" @@ -16412,8 +18304,8 @@ msgid "" "[b]Note:[/b] Only effective if [member projection] is [constant " "PROJECTION_FRUSTUM]." msgstr "" -"相机的机身偏移。可以更改默认值,以创建“倾斜平截头体”效果,如 [url=https://" -"zdoom.org/wiki/Y-shearing]Y-shearing[/url]。\n" +"相机的视锥偏移。可以更改默认值,以创建如 [url=https://zdoom.org/wiki/Y-" +"shearing]Y-shearing[/url] 一样的“倾斜的视锥”效果。\n" "[b]注意:[/b]仅在 [member projection] 为 [constant PROJECTION_FRUSTUM] 时有" "效。" @@ -16430,7 +18322,7 @@ msgstr "" msgid "" "The distance to the near culling boundary for this camera relative to its " "local Z axis." -msgstr "该相机相对于其本地Z轴到近裁边界的距离。" +msgstr "该相机相对于其本地 Z 轴到近裁边界的距离。" msgid "" "The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, " @@ -16446,7 +18338,7 @@ msgid "" "modes." msgstr "" "该相机的大小,单位为米,描述的是完整的宽度或者高度,取决于 [member " -"keep_aspect]。仅适用于正交和平截头体模式。" +"keep_aspect]。仅适用于正交和视锥模式。" msgid "The vertical (Y) offset of the camera viewport." msgstr "相机视口的垂直(Y)偏移量。" @@ -16465,8 +18357,7 @@ msgid "" "Frustum projection. This mode allows adjusting [member frustum_offset] to " "create \"tilted frustum\" effects." msgstr "" -"Frustum 投影。通过该模式可以调整 [member frustum_offset] 来创建“tilted " -"frustum”效果。" +"视锥投影。通过该模式可以调整 [member frustum_offset] 来创建“倾斜的视锥”效果。" msgid "" "Preserves the horizontal aspect ratio; also known as Vert- scaling. This is " @@ -16518,6 +18409,29 @@ msgstr "" msgid "Parent class for camera settings." msgstr "相机设置的父类。" +msgid "" +"Controls camera-specific attributes such as depth of field and exposure " +"override.\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]. When used in [VoxelGI] or [LightmapGI], only the " +"exposure settings will be used.\n" +"See also [Environment] for general 3D environment settings.\n" +"This is a pure virtual class that is inherited by [CameraAttributesPhysical] " +"and [CameraAttributesPractical]." +msgstr "" +"控制相机的特定属性,如景深和曝光覆盖。\n" +"当在 [WorldEnvironment] 中使用时,它提供了曝光、自动曝光、以及景深的默认设" +"置,这些设置将由所有没有自己的 [CameraAttributes] 的相机使用,包括编辑器相" +"机。当在 [Camera3D] 中使用时,它将覆盖 [WorldEnvironment] 中设置的任何 " +"[CameraAttributes]。当在 [VoxelGI] 或 [LightmapGI] 中使用时,将只会使用曝光设" +"置。\n" +"另请参阅 [Environment] 了解一般的 3D 环境设置。\n" +"这是一个由 [CameraAttributesPhysical] 和 [CameraAttributesPractical] 继承的纯" +"虚类。" + msgid "" "If [code]true[/code], enables the tonemapping auto exposure mode of the " "scene renderer. If [code]true[/code], the renderer will automatically " @@ -16537,6 +18451,24 @@ msgid "" "camera to perform auto exposure." msgstr "自动曝光效果的速度。影响相机执行自动曝光所需的时间。" +msgid "" +"Multiplier for the exposure amount. A higher value results in a brighter " +"image." +msgstr "曝光量的乘数。较高的值会产生较亮的图像。" + +msgid "" +"Sensitivity of camera sensors, measured in ISO. A higher sensitivity results " +"in a brighter image. Only available when [member ProjectSettings.rendering/" +"lights_and_shadows/use_physical_light_units] is enabled. When [member " +"auto_exposure_enabled] this can be used as a method of exposure " +"compensation, doubling the value will increase the exposure value (measured " +"in EV100) by 1 stop." +msgstr "" +"相机传感器的灵敏度,以 ISO 测量。灵敏度越高,图像越亮。仅在启用 [member " +"ProjectSettings.rendering/lights_and_shadows/use_physical_light_units] 时可" +"用。当 [member auto_exposure_enabled] 启用时,这可以用作曝光补偿的方法,将该" +"值加倍将使曝光值(以 EV100 测量)增加 1 档。" + msgid "Physically-based camera settings." msgstr "基于物理的相机设置。" @@ -16559,21 +18491,178 @@ msgid "" "Mobile rendering methods, not Compatibility." msgstr "" "[CameraAttributesPhysical] 用于根据基于物理的相机的设置来设置渲染设置。它负责" -"曝光、自动曝光和景深。\n" -"当在 [WorldEnvironment] 中使用时,它提供了曝光、自动曝光和景深的默认设置,这" -"些设置将由所有没有自己的 [CameraAttributes] 的相机使用,包括编辑器相机。当在 " -"[Camera3D] 中使用时,它将覆盖 [WorldEnvironment] 中设置的任何 " +"曝光、自动曝光、以及景深。\n" +"当在 [WorldEnvironment] 中使用时,它提供了曝光、自动曝光、以及景深的默认设" +"置,这些设置将由所有没有自己的 [CameraAttributes] 的相机使用,包括编辑器相" +"机。当在 [Camera3D] 中使用时,它将覆盖 [WorldEnvironment] 中设置的任何 " "[CameraAttributes],并将覆盖 [Camera3D] 的 [member Camera3D.far]、[member " -"Camera3D.near]、[member Camera3D.fov] 和 [member Camera3D.keep_aspect] 属性。" -"在 [VoxelGI] 或 [LightmapGI] 中使用时,将只会使用曝光设置。\n" +"Camera3D.near]、[member Camera3D.fov]、以及 [member Camera3D.keep_aspect] 属" +"性。当在 [VoxelGI] 或 [LightmapGI] 中使用时,将只会使用曝光设置。\n" "默认设置适用于室外环境,可在每个设置的文档中找到有关在室内环境中使用的设置的" "提示。\n" -"[b]注意:[/b]景深模糊只支持 Forward+ 和 Mobile 渲染方式,不支持 " -"Compatibility。" +"[b]注意:[/b]景深模糊只支持 Forward+ 和移动渲染方式,不支持兼容模式。" + +msgid "" +"Returns the vertical field of view that corresponds to the [member " +"frustum_focal_length]. This value is calculated internally whenever [member " +"frustum_focal_length] is changed." +msgstr "" +"返回对应于 [member frustum_focal_length] 的垂直视野。每当 [member " +"frustum_focal_length] 发生变化时,该值都会在内部计算。" + +msgid "" +"The maximum luminance (in EV100) used when calculating auto exposure. When " +"calculating scene average luminance, color values will be clamped to at " +"least this value. This limits the auto-exposure from exposing below a " +"certain brightness, resulting in a cut off point where the scene will remain " +"bright." +msgstr "" +"计算自动曝光时使用的最大亮度(单位:EV100)。在计算场景平均亮度时,颜色值将至" +"少被钳制在这个值上。这限制了自动曝光在低于一定的亮度进行曝光时,导致场景将保" +"持明亮的一个截止点。" + +msgid "" +"The minimum luminance luminance (in EV100) used when calculating auto " +"exposure. When calculating scene average luminance, color values will be " +"clamped to at least this value. This limits the auto-exposure from exposing " +"above a certain brightness, resulting in a cut off point where the scene " +"will remain dark." +msgstr "" +"计算自动曝光时使用的最小亮度(单位:EV100)。在计算场景平均亮度时,颜色值将至" +"少被钳制在这个值上。这限制了自动曝光在超过一定的亮度进行曝光时,导致场景将保" +"持黑暗的一个截止点。" + +msgid "" +"Size of the aperture of the camera, measured in f-stops. An f-stop is a " +"unitless ratio between the focal length of the camera and the diameter of " +"the aperture. A high aperture setting will result in a smaller aperture " +"which leads to a dimmer image and sharper focus. A low aperture results in a " +"wide aperture which lets in more light resulting in a brighter, less-focused " +"image. Default is appropriate for outdoors at daytime (i.e. for use with a " +"default [DirectionalLight3D]), for indoor lighting, a value between 2 and 4 " +"is more appropriate.\n" +"Only available when [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] is enabled." +msgstr "" +"相机光圈的大小,以 f 档为单位进行测量。f 档是相机焦距与光圈直径之间的一个无单" +"位比率。高光圈设置将产生一个更小的光圈,从而导致更暗的图像和更清晰的焦点。低" +"光圈会产生一个大光圈,让更多的光线进入,从而产生一个更亮、更不聚焦的图像。默" +"认值适用于白天的室外(即与默认 [DirectionalLight3D] 一起使用),对于室内照" +"明,2 到 4 之间的值更合适。\n" +"仅在启用 [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] 时可用。" + +msgid "" +"Time for shutter to open and close, measured in seconds. A higher value will " +"let in more light leading to a brighter image, while a lower amount will let " +"in less light leading to a darker image.\n" +"Only available when [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] is enabled." +msgstr "" +"快门打开和关闭的时间,单位:秒。较高的值将使更多的光线进入,从而使图像更亮;" +"而较低的值将使更少的光线进入,从而使图像更暗。\n" +"仅在启用 [member ProjectSettings.rendering/lights_and_shadows/" +"use_physical_light_units] 时可用。" + +msgid "" +"Override value for [member Camera3D.far]. Used internally when calculating " +"depth of field. When attached to a [Camera3D] as its [member Camera3D." +"attributes], it will override the [member Camera3D.far] property." +msgstr "" +"覆盖 [member Camera3D.far] 的值。在内部计算景深时使用。当被附加到 [Camera3D] " +"作为其 [member Camera3D.attributes] 时,它将覆盖 [member Camera3D.fov] 属性。" + +msgid "" +"Distance between camera lens and camera aperture, measured in millimeters. " +"Controls field of view and depth of field. A larger focal length will result " +"in a smaller field of view and a narrower depth of field meaning fewer " +"objects will be in focus. A smaller focal length will result in a wider " +"field of view and a larger depth of field meaning more objects will be in " +"focus. When attached to a [Camera3D] as its [member Camera3D.attributes], it " +"will override the [member Camera3D.fov] property and the [member Camera3D." +"keep_aspect] property." +msgstr "" +"相机镜头和相机光圈之间的距离,单位:毫米。控制视野和景深。较大的焦距会导致较" +"小的视野和较窄的景深,这意味着更少的对象将在焦点中。较小的焦距会导致更宽的视" +"野和更大的景深,这意味着更多的物体将在焦点中。当被附加到 [Camera3D] 作为其 " +"[member Camera3D.attributes] 时,它将覆盖 [member Camera3D.fov] 属性和 " +"[member Camera3D.keep_aspect] 属性。" + +msgid "" +"Distance from camera of object that will be in focus, measured in meters. " +"Internally this will be clamped to be at least 1 millimeter larger than " +"[member frustum_focal_length]." +msgstr "" +"将在焦点中的物体与相机的距离,以米为单位进行测量。在内部,这将被钳制为至少比 " +"[member frustum_focal_length] 大 1 毫米。" + +msgid "" +"Override value for [member Camera3D.near]. Used internally when calculating " +"depth of field. When attached to a [Camera3D] as its [member Camera3D." +"attributes], it will override the [member Camera3D.near] property." +msgstr "" +"覆盖 [member Camera3D.near] 的值。在内部计算景深时使用。当被附加到 " +"[Camera3D] 作为其 [member Camera3D.attributes] 时,它将覆盖 [member Camera3D." +"near] 属性。" msgid "Camera settings in an easy to use format." msgstr "相机设置,格式比较易用。" +msgid "" +"Controls camera-specific attributes such as auto-exposure, depth of field, " +"and exposure override.\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]. When used in [VoxelGI] or [LightmapGI], only the " +"exposure settings will be used." +msgstr "" +"控制相机的特定属性,如自动曝光、景深、以及曝光覆盖。\n" +"当在 [WorldEnvironment] 中使用时,它提供了曝光、自动曝光、以及景深的默认设" +"置,这些设置将由所有没有自己的 [CameraAttributes] 的相机使用,包括编辑器相" +"机。当在 [Camera3D] 中使用时,它将覆盖 [WorldEnvironment] 中设置的任何 " +"[CameraAttributes]。当在 [VoxelGI] 或 [LightmapGI] 中使用时,只会使用曝光设" +"置。" + +msgid "" +"The maximum sensitivity (in ISO) used when calculating auto exposure. When " +"calculating scene average luminance, color values will be clamped to at " +"least this value. This limits the auto-exposure from exposing below a " +"certain brightness, resulting in a cut off point where the scene will remain " +"bright." +msgstr "" +"计算自动曝光时使用的最大感光度(单位:ISO)。在计算场景平均亮度时,颜色值将至" +"少被钳制在这个值上。这限制了自动曝光在低于一定的亮度进行曝光时,导致场景将保" +"持明亮的一个截止点。" + +msgid "" +"The minimum sensitivity (in ISO) used when calculating auto exposure. When " +"calculating scene average luminance, color values will be clamped to at " +"least this value. This limits the auto-exposure from exposing above a " +"certain brightness, resulting in a cut off point where the scene will remain " +"dark." +msgstr "" +"计算自动曝光时使用的最小感光度(单位:ISO)。在计算场景平均亮度时,颜色值将至" +"少被钳制在这个值上。这限制了自动曝光在超过一定的亮度进行曝光时,导致场景将保" +"持黑暗的一个截止点。" + +msgid "" +"Sets the maximum amount of blur. When using physically-based blur amounts, " +"will instead act as a multiplier. High values lead to an increased amount of " +"bluriness, but can be much more expensive to calculate. It is best to keep " +"this as low as possible for a given art style." +msgstr "" +"设置最大模糊量。当使用基于物理的模糊量时,将改为充当一个乘数。高值会导致模糊" +"度增加,但计算起来会更昂贵。对于一个给定的艺术风格,最好将该值保持得尽可能" +"低。" + +msgid "" +"Objects further from the [Camera3D] by this amount will be blurred by the " +"depth of field effect. Measured in meters." +msgstr "" +"距离该 [Camera3D] 比该值远的对象将因景深效果而变得模糊。以米为单位进行测量。" + msgid "" "Enables depth of field blur for objects further than [member " "dof_blur_far_distance]. Strength of blur is controlled by [member " @@ -16582,9 +18671,27 @@ msgid "" "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。" +"[member dof_blur_amount] 控制并由 [member dof_blur_far_transition] 调制。\n" +"[b]注意:[/b]景深模糊只支持 Forward+ 和移动渲染方式,不支持兼容模式。" + +msgid "" +"When positive, distance over which (starting from [member " +"dof_blur_far_distance]) blur effect will scale from 0 to [member " +"dof_blur_amount]. When negative, uses physically-based scaling so depth of " +"field effect will scale from 0 at [member dof_blur_far_distance] and will " +"increase in a physically accurate way as objects get further from the " +"[Camera3D]." +msgstr "" +"当为正数时,距离超过该值(从 [member dof_blur_far_distance] 开始)时,模糊效" +"果将从 0 缩放到 [member dof_blur_amount]。当为负数时,使用基于物理的缩放,因" +"此景深效果将在 [member dof_blur_far_distance] 处从 0 开始缩放,并且随着对象远" +"离该 [Camera3D],将以物理上准确的方式增加该效果。" + +msgid "" +"Objects closer from the [Camera3D] by this amount will be blurred by the " +"depth of field effect. Measured in meters." +msgstr "" +"距离该 [Camera3D] 比该值近的对象将因景深效果而变得模糊。以米为单位进行测量。" msgid "" "Enables depth of field blur for objects closer than [member " @@ -16593,11 +18700,21 @@ msgid "" "[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。" +"为比 [member dof_blur_near_distance] 更近的对象启用景深模糊。模糊强度由 " +"[member dof_blur_amount] 控制并由 [member dof_blur_near_transition] 调制。\n" +"[b]注意:[/b]景深模糊只支持 Forward+ 和移动渲染方式,不支持兼容模式。" + +msgid "" +"When positive, distance over which blur effect will scale from 0 to [member " +"dof_blur_amount], ending at [member dof_blur_near_distance]. When negative, " +"uses physically-based scaling so depth of field effect will scale from 0 at " +"[member dof_blur_near_distance] and will increase in a physically accurate " +"way as objects get closer to the [Camera3D]." +msgstr "" +"当为正数时,距离超过该值且截止到 [member dof_blur_near_distance] 时,模糊效果" +"将从 0 缩放到 [member dof_blur_amount]。当为负数时,使用基于物理的缩放,因此" +"景深效果将在 [member dof_blur_near_distance] 处从 0 开始缩放,并且随着对象靠" +"近该 [Camera3D],将以物理上准确的方式增加该效果。" msgid "" "A camera feed gives you access to a single physical camera attached to your " @@ -16841,6 +18958,48 @@ msgstr "" msgid "Base class of anything 2D." msgstr "所有 2D 对象的基类。" +msgid "" +"Base class of anything 2D. Canvas items are laid out in a tree; children " +"inherit and extend their parent's transform. [CanvasItem] is extended by " +"[Control] for anything GUI-related, and by [Node2D] for anything related to " +"the 2D engine.\n" +"Any [CanvasItem] can draw. For this, [method queue_redraw] is called by the " +"engine, then [constant NOTIFICATION_DRAW] will be received on idle time to " +"request redraw. Because of this, canvas items don't need to be redrawn on " +"every frame, improving the performance significantly. Several functions for " +"drawing on the [CanvasItem] are provided (see [code]draw_*[/code] " +"functions). However, they can only be used inside [method _draw], its " +"corresponding [method Object._notification] or methods connected to the " +"[signal draw] signal.\n" +"Canvas items are drawn in tree order. By default, children are on top of " +"their parents so a root [CanvasItem] will be drawn behind everything. This " +"behavior can be changed on a per-item basis.\n" +"A [CanvasItem] can also be hidden, which will also hide its children. It " +"provides many ways to change parameters such as modulation (for itself and " +"its children) and self modulation (only for itself), as well as its blend " +"mode.\n" +"Ultimately, a transform notification can be requested, which will notify the " +"node that its global position changed in case the parent tree changed.\n" +"[b]Note:[/b] Unless otherwise specified, all methods that have angle " +"parameters must have angles specified as [i]radians[/i]. To convert degrees " +"to radians, use [method @GlobalScope.deg_to_rad]." +msgstr "" +"任何 2D 对象的基类。画布项目(Canvas Item)以树状排列;子节点继承并扩展其父节" +"点的变换。[CanvasItem] 由 [Control] 扩展为任何 GUI 相关的东西,由 [Node2D] 扩" +"展为任何 2D 引擎相关的东西。\n" +"任何 [CanvasItem] 都可以绘图。绘图时,引擎会调用 [method queue_redraw],然后" +"就会在空闲时接收到 [constant NOTIFICATION_DRAW] 来请求重绘。因此画布项目不需" +"要每一帧都重绘,大大提升了性能。这个类还提供了几个用于在 [CanvasItem] 上绘图" +"的函数(见 [code]draw_*[/code] 函数)。不过这些函数都只能在 [method _draw] 及" +"其对应的 [method Object._notification] 或 [signal draw] 内使用。\n" +"画布项目是按树状顺序绘制的。默认情况下,子项目位于父项目的上方,因此根 " +"[CanvasItem] 将被画在所有项目的后面。这种行为可以针对各个画布项目进行更改。\n" +"也可以隐藏 [CanvasItem],隐藏时也会隐藏其子项目。画布项目提供了许多方法来改变" +"参数,如调制(对自己和子项目)、自调制(只对自己)以及混合模式。\n" +"最终,可以请求变换通知,会在父树改变的时通知该节点它的全局位置发生了变化。\n" +"[b]注意:[/b]除非另有说明,所有具有角度参数的方法必须使用[i]弧度[/i]来指定角" +"度。要将度数转换为弧度,请使用 [method @GlobalScope.deg_to_rad]。" + msgid "Viewport and canvas transforms" msgstr "Viewport 和画布变换" @@ -16857,6 +19016,42 @@ msgstr "" "之后)。\n" "对应于 [method Object._notification] 中的 [constant NOTIFICATION_DRAW] 通知。" +msgid "" +"Subsequent drawing commands will be ignored unless they fall within the " +"specified animation slice. This is a faster way to implement animations that " +"loop on background rather than redrawing constantly." +msgstr "" +"后续的绘制命令将被忽略,除非它们位于指定的动画切片内。这是实现在背景上循环而" +"不是不断重绘的动画的更快方法。" + +msgid "" +"Draws an unfilled arc between the given angles with a uniform [param color] " +"and [param width] and optional antialiasing (supported only for positive " +"[param width]). The larger the value of [param point_count], the smoother " +"the curve. See also [method draw_circle].\n" +"If [param width] is negative, then the arc is drawn using [constant " +"RenderingServer.PRIMITIVE_LINE_STRIP]. This means that when the CanvasItem " +"is scaled, the arc will remain thin. If this behavior is not desired, then " +"pass a positive [param width] like [code]1.0[/code].\n" +"The arc is drawn from [param start_angle] towards the value of [param " +"end_angle] so in clockwise direction if [code]start_angle < end_angle[/code] " +"and counter-clockwise otherwise. Passing the same angles but in reversed " +"order will produce the same arc. If absolute difference of [param " +"start_angle] and [param end_angle] is greater than [constant @GDScript.TAU] " +"radians, then a full circle arc is drawn (i.e. arc will not overlap itself)." +msgstr "" +"使用一个 uniform [param color] 和 [param width] 以及可选的抗锯齿(仅支持正 " +"[param width] ),在给定的角度之间绘制一条未填充的弧线。[param point_count] " +"的值越大,该曲线越平滑。另请参见 [method draw_circle]。\n" +"如果 [param width] 为负,则使用 [constant RenderingServer." +"PRIMITIVE_LINE_STRIP] 绘制弧线。这意味着当缩放 CanvasItem 时,弧线将保持细" +"长。如果不需要此行为,请传递一个正的 [param width],如 [code]1.0[/code]。\n" +"如果 [code]start_angle < end_angle[/code] ,则圆弧是从 [param start_angle] 朝" +"向 [param end_angle] 的值绘制的,即是顺时针方向;否则为逆时针方向。以相反的顺" +"序传递相同的角度,将产生相同的弧线。如果 [param start_angle] 和 [param " +"end_angle] 的差的绝对值大于 [constant @GDScript.TAU] 弧度,则绘制一个完整的圆" +"弧(即弧线不会与自身重叠)。" + msgid "Draws a string first character using a custom font." msgstr "使用自定义字体绘制字符串的第一个字符。" @@ -16870,12 +19065,105 @@ msgstr "" "绘制彩色的实心圆。另见 [method draw_arc]、[method draw_polyline] 和 [method " "draw_polygon]。" +msgid "" +"Draws a colored polygon of any number of points, convex or concave. Unlike " +"[method draw_polygon], a single color must be specified for the whole " +"polygon." +msgstr "" +"绘制一个由任意数量的点组成的彩色多边形,凸形或凹形。与 [method draw_polygon] " +"不同,必须为整个多边形指定一个单一颜色。" + +msgid "" +"Draws a dashed line from a 2D point to another, with a given color and " +"width. See also [method draw_multiline] and [method draw_polyline].\n" +"If [param width] is negative, then a two-point primitives will be drawn " +"instead of a four-point ones. This means that when the CanvasItem is scaled, " +"the line parts will remain thin. If this behavior is not desired, then pass " +"a positive [param width] like [code]1.0[/code]." +msgstr "" +"使用给定的颜色和宽度,从一个 2D 点到另一个点绘制一条虚线。另请参见 [method " +"draw_multiline] 和 [method draw_polyline]。\n" +"如果 [param width] 为负,则将绘制一个两点图元而不是一个四点图元。这意味着当缩" +"放 CanvasItem 时,线条部分将保持细长。如果不需要此行为,请传递一个正的 " +"[param width],如 [code]1.0[/code]。" + +msgid "" +"After submitting all animations slices via [method draw_animation_slice], " +"this function can be used to revert drawing to its default state (all " +"subsequent drawing commands will be visible). If you don't care about this " +"particular use case, usage of this function after submitting the slices is " +"not required." +msgstr "" +"通过 [method draw_animation_slice] 提交所有动画切片后,该函数可以被用来将绘制" +"恢复到其默认状态(所有后续绘制命令都将可见)。如果不关心这个特定用例,则不需" +"要在提交切片后使用该函数。" + +msgid "" +"Draws a textured rectangle region of the font texture with LCD subpixel anti-" +"aliasing at a given position, optionally modulated by a color.\n" +"Texture is drawn using the following blend operation, blend mode of the " +"[CanvasItemMaterial] is ignored:\n" +"[codeblock]\n" +"dst.r = texture.r * modulate.r * modulate.a + dst.r * (1.0 - texture.r * " +"modulate.a);\n" +"dst.g = texture.g * modulate.g * modulate.a + dst.g * (1.0 - texture.g * " +"modulate.a);\n" +"dst.b = texture.b * modulate.b * modulate.a + dst.b * (1.0 - texture.b * " +"modulate.a);\n" +"dst.a = modulate.a + dst.a * (1.0 - modulate.a);\n" +"[/codeblock]" +msgstr "" +"在给定的位置绘制一个带有 LCD 子像素抗锯齿的字体纹理的矩形区域,可以选择用一种" +"颜色来调制。\n" +"纹理是通过以下混合操作绘制的,[CanvasItemMaterial] 的混合模式被忽略:\n" +"[codeblock]\n" +"dst.r = texture.r * modulate.r * modulate.a + dst.r * (1.0 - texture.r * " +"modulate.a);\n" +"dst.g = texture.g * modulate.g * modulate.a + dst.g * (1.0 - texture.g * " +"modulate.a);\n" +"dst.b = texture.b * modulate.b * modulate.a + dst.b * (1.0 - texture.b * " +"modulate.a);\n" +"dst.a = modulate.a + dst.a * (1.0 - modulate.a);\n" +"[/codeblock]" + +msgid "" +"Draws a line from a 2D point to another, with a given color and width. It " +"can be optionally antialiased. See also [method draw_multiline] and [method " +"draw_polyline].\n" +"If [param width] is negative, then a two-point primitive will be drawn " +"instead of a four-point one. This means that when the CanvasItem is scaled, " +"the line will remain thin. If this behavior is not desired, then pass a " +"positive [param width] like [code]1.0[/code]." +msgstr "" +"使用给定的颜色和宽度,从一个 2D 点到另一个点绘制一条直线。它可以选择抗锯齿。" +"另请参阅 [method draw_multiline] 和 [method draw_polyline]。\n" +"如果 [param width] 为负,则将绘制一个两点图元而不是一个四点图元。这意味着当缩" +"放 CanvasItem 时,线条将保持细长。如果不需要此行为,请传递一个正的 [param " +"width],如 [code]1.0[/code]。" + msgid "" "Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for " "related documentation." msgstr "" "使用所提供的纹理以 2D 方式绘制一个 [Mesh]。相关文档请参阅 [MeshInstance2D]。" +msgid "" +"Draws a textured rectangle region of the multi-channel signed distance field " +"texture at a given position, optionally modulated by a color. See [member " +"FontFile.multichannel_signed_distance_field] for more information and " +"caveats about MSDF font rendering.\n" +"If [param outline] is positive, each alpha channel value of pixel in region " +"is set to maximum value of true distance in the [param outline] radius.\n" +"Value of the [param pixel_range] should the same that was used during " +"distance field texture generation." +msgstr "" +"在给定位置,绘制一条多通道有符号距离场纹理的纹理矩形区域,可以选择用一种颜色" +"来调制。有关 MSDF 字体渲染的更多信息和注意事项,请参阅 [member FontFile." +"multichannel_signed_distance_field]。\n" +"如果 [param outline] 为正,则区域中像素的每个 Alpha 通道值都被设置为 [param " +"outline] 半径内真实距离的最大值。\n" +"[param pixel_range] 的值应该与距离场纹理生成期间使用的值相同。" + msgid "" "Draws multiple disconnected lines with a uniform [param color]. When drawing " "large amounts of lines, this is faster than using individual [method " @@ -16912,13 +19200,43 @@ msgstr "" "CanvasItem 时,线条将保持为细线。如果不需要此行为,请传递一个正的 [param " "width],如 [code]1.0[/code]。" +msgid "" +"Breaks [param text] into lines and draws it using the specified [param font] " +"at the [param pos] (top-left corner). The text will have its color " +"multiplied by [param modulate]. If [param width] is greater than or equal to " +"0, the text will be clipped if it exceeds the specified width." +msgstr "" +"将 [param text] 分成几行,并在 [param pos](左上角)处使用指定的 [param " +"font] 绘制文本。该文本的颜色将乘以 [param modulate]。如果 [param width] 大于" +"等于 0,则当该文本超过指定宽度时将被裁剪。" + +msgid "" +"Breaks [param text] to the lines and draws text outline using the specified " +"[param font] at the [param pos] (top-left corner). The text will have its " +"color multiplied by [param modulate]. If [param width] is greater than or " +"equal to 0, the text will be clipped if it exceeds the specified width." +msgstr "" +"将 [param text] 分成几行,并在 [param pos](左上角)处使用指定的 [param " +"font] 绘制文本轮廓。该文本的颜色将乘以 [param modulate]。如果 [param width] " +"大于等于 0,则当该文本超过指定宽度时将被裁剪。" + msgid "" "Draws a [MultiMesh] in 2D with the provided texture. See " "[MultiMeshInstance2D] for related documentation." msgstr "" -"用所提供的纹理以 2D 方式绘制 [MultiMesh]。相关文档请参考" +"用所提供的纹理以 2D 方式绘制一个 [MultiMesh]。相关文档请参考 " "[MultiMeshInstance2D]。" +msgid "" +"Draws a solid polygon of any number of points, convex or concave. Unlike " +"[method draw_colored_polygon], each point's color can be changed " +"individually. See also [method draw_polyline] and [method " +"draw_polyline_colors]." +msgstr "" +"绘制一个由任意数量的点构成的实心多边形,凸形或凹形。与 [method " +"draw_colored_polygon] 不同,每个点的颜色都可以单独改变。另见 [method " +"draw_polyline] 和 [method draw_polyline_colors]。" + msgid "" "Draws interconnected line segments with a uniform [param color] and [param " "width] and optional antialiasing (supported only for positive [param " @@ -16972,6 +19290,32 @@ msgstr "" "消息。另请参阅 [method draw_line]、[method draw_polyline]、[method " "draw_polygon]、[method draw_rect]。" +msgid "" +"Draws a rectangle. If [param filled] is [code]true[/code], the rectangle " +"will be filled with the [param color] specified. If [param filled] is " +"[code]false[/code], the rectangle will be drawn as a stroke with the [param " +"color] and [param width] specified.\n" +"If [param width] is negative, then two-point primitives will be drawn " +"instead of a four-point ones. This means that when the CanvasItem is scaled, " +"the lines will remain thin. If this behavior is not desired, then pass a " +"positive [param width] like [code]1.0[/code].\n" +"[b]Note:[/b] [param width] is only effective if [param filled] is " +"[code]false[/code].\n" +"[b]Note:[/b] Unfilled rectangles drawn with a negative [param width] may not " +"display perfectly. For example, corners may be missing or brighter due to " +"overlapping lines (for a translucent [param color])." +msgstr "" +"绘制一个矩形。如果 [param filled] 为 [code]true[/code],则矩形将使用指定的 " +"[param color] 填充。如果 [param filled] 为 [code]false[/code],则矩形将被绘制" +"为具有指定的 [param color] 和 [param width] 的笔划。\n" +"如果 [param width] 为负,则将绘制一个两点图元而不是一个四点图元。这意味着当缩" +"放 CanvasItem 时,线条将保持细长。如果不需要此行为,请传递一个正的 [param " +"width],如 [code]1.0[/code]。\n" +"[b]注意:[/b][param width] 只有在 [param filled] 为 [code]false[/code] 时才有" +"效。\n" +"[b]注意:[/b]使用负 [param width] 绘制的未填充矩形可能不会完美显示。例如,由" +"于线条的重叠,角可能会缺失或变亮(对于半透明的 [param color])。" + msgid "" "Sets a custom transform for drawing via components. Anything drawn " "afterwards will be transformed by this.\n" @@ -17054,6 +19398,16 @@ msgstr "" "[/codeblocks]\n" "另请参阅 [method Font.draw_string]。" +msgid "" +"Draws [param text] outline using the specified [param font] at the [param " +"pos] (bottom-left corner using the baseline of the font). The text will have " +"its color multiplied by [param modulate]. If [param width] is greater than " +"or equal to 0, the text will be clipped if it exceeds the specified width." +msgstr "" +"在 [param pos](左下角使用字体的基线)处使用指定的 [param font] 绘制 [param " +"text] 轮廓。该文本的颜色将乘以 [param modulate]。如果 [param width] 大于等于 " +"0,则当文本超过指定宽度时将被裁剪。" + msgid "Draws a styled rectangle." msgstr "绘制一个样式矩形。" @@ -17087,6 +19441,14 @@ msgstr "" msgid "Returns the [RID] of the [World2D] canvas where this item is in." msgstr "返回此项目所在的 [World2D] 画布的 [RID]。" +msgid "Returns the canvas item RID used by [RenderingServer] for this item." +msgstr "返回 [RenderingServer] 对该项目使用的画布项目 RID。" + +msgid "" +"Returns the transform from the coordinate system of the canvas, this item is " +"in, to the [Viewport]s coordinate system." +msgstr "返回从该项目所在的画布坐标系到 [Viewport] 坐标系的变换。" + msgid "" "Returns the mouse's position in the [CanvasLayer] that this [CanvasItem] is " "in using the coordinate system of the [CanvasLayer]." @@ -17094,17 +19456,48 @@ msgstr "" "返回该 [CanvasItem] 所在的 [CanvasLayer] 中鼠标的位置,使用该 [CanvasLayer] " "的坐标系。" +msgid "" +"Returns the global transform matrix of this item, i.e. the combined " +"transform up to the topmost [CanvasItem] node. The topmost item is a " +"[CanvasItem] that either has no parent, has non-[CanvasItem] parent or it " +"has [member top_level] enabled." +msgstr "" +"返回该项目的全局变换矩阵,即到最顶层的 [CanvasItem] 节点的综合变换。最顶层的" +"项目是一个 [CanvasItem],它要么没有父级,要么有非 [CanvasItem] 父级,或者要么" +"它启用了 [member top_level]。" + +msgid "" +"Returns the transform from the local coordinate system of this [CanvasItem] " +"to the [Viewport]s coordinate system." +msgstr "返回从该 [CanvasItem] 的局部坐标系到 [Viewport] 坐标系的变换。" + msgid "" "Returns the mouse's position in this [CanvasItem] using the local coordinate " "system of this [CanvasItem]." msgstr "返回该 [CanvasItem] 中鼠标的位置,使用该 [CanvasItem] 的局部坐标系。" +msgid "" +"Returns the transform of this [CanvasItem] in global screen coordinates (i." +"e. taking window position into account). Mostly useful for editor plugins.\n" +"Equals to [method get_global_transform] if the window is embedded (see " +"[member Viewport.gui_embed_subwindows])." +msgstr "" +"返回该 [CanvasItem] 在全局屏幕坐标中的变换(即考虑窗口位置)。主要用于编辑器" +"插件。\n" +"如果窗口是嵌入的,则等于 [method get_global_transform](参见 [member " +"Viewport.gui_embed_subwindows])。" + msgid "Returns the transform matrix of this item." msgstr "返回此项目的变换矩阵。" msgid "Returns the viewport's boundaries as a [Rect2]." msgstr "以 [Rect2] 形式返回视口的边界。" +msgid "" +"Returns the transform from the coordinate system of the canvas, this item is " +"in, to the [Viewport]s embedders coordinate system." +msgstr "返回从该项目所在的画布坐标系到 [Viewport] 嵌入坐标系的变换。" + msgid "Returns an individual bit on the rendering visibility layer." msgstr "返回渲染可见层上的某个比特位。" @@ -17121,7 +19514,7 @@ msgstr "" msgid "" "Returns [code]true[/code] if local transform notifications are communicated " "to children." -msgstr "如果将本地变换通知传达给子级,则返回 [code]true[/code]。" +msgstr "如果将局部变换通知传达给子级,则返回 [code]true[/code]。" msgid "" "Returns [code]true[/code] if global transform notifications are communicated " @@ -17138,6 +19531,23 @@ msgstr "" "code],并且其所有上层节点也均可见,则返回 [code]true[/code]。如果任何上层节点" "被隐藏,则该节点在场景树中将不可见,因此也不会进行绘制(见 [method _draw])。" +msgid "Assigns [param screen_point] as this node's new local transform." +msgstr "将 [param screen_point] 指定为该节点的新局部变换。" + +msgid "" +"Transformations issued by [param event]'s inputs are applied in local space " +"instead of global space." +msgstr "[param event] 的输入发出的变换将在局部空间而不是全局空间中应用。" + +msgid "" +"Moves this node to display on top of its siblings.\n" +"Internally, the node is moved to the bottom of parent's children list. The " +"method has no effect on nodes without a parent." +msgstr "" +"移动该节点以显示在其同级节点之上。\n" +"在内部,该节点被移动到父节点的子节点列表的底部。该方法对没有父节点的节点没有" +"影响。" + msgid "" "Queues the [CanvasItem] to redraw. During idle time, if [CanvasItem] is " "visible, [constant NOTIFICATION_DRAW] is sent and [method _draw] is called. " @@ -17165,7 +19575,8 @@ msgstr "" msgid "" "Set/clear individual bits on the rendering visibility layer. This simplifies " "editing this [CanvasItem]'s visibility layer." -msgstr "设置或清除渲染可见层上的单个位。这简化了编辑该 [CanvasItem] 的可见层。" +msgstr "" +"设置或清除渲染可见层上的单个位。这简化了对该 [CanvasItem] 的可见层的编辑。" msgid "" "Show the [CanvasItem] if it's currently hidden. This is equivalent to " @@ -17185,17 +19596,6 @@ msgid "" "The rendering layers in which this [CanvasItem] responds to [Light2D] nodes." msgstr "该 [CanvasItem] 的渲染层,用于响应 [Light2D] 节点。" -msgid "The material applied to textures on this [CanvasItem]." -msgstr "材质,应用于该 [CanvasItem] 的纹理。" - -msgid "The color applied to textures on this [CanvasItem]." -msgstr "颜色,应用于该 [CanvasItem] 的纹理。" - -msgid "" -"The color applied to textures on this [CanvasItem]. This is not inherited by " -"children [CanvasItem]s." -msgstr "颜色,应用于该 [CanvasItem] 的纹理。不会被子级 [CanvasItem] 继承。" - msgid "If [code]true[/code], the object draws behind its parent." msgstr "如果为 [code]true[/code],则对象在其父对象后面绘制。" @@ -17745,8 +20145,8 @@ msgid "" "[b]Performance:[/b] Being a primitive collision shape, [CapsuleShape2D] is " "fast to check collisions against (though not as fast as [CircleShape2D])." msgstr "" -"使用一个 [CollisionShape2D] 节点时,添加为 [PhysicsBody2D] 或 [Area2D] 的[i]" -"直接[/i]子节点的 2D 胶囊形状。在 2D 中,胶囊是两端带有半圆形的矩形。\n" +"使用 [CollisionShape2D] 节点作为 [PhysicsBody2D] 或 [Area2D] 的[i]直接[/i]子" +"节点时,可被添加的 2D 胶囊形状。在 2D 中,胶囊是两端带有半圆形的矩形。\n" "[b]性能:[/b]作为一种原始的碰撞形状,[CapsuleShape2D] 可用于快速检测碰撞(尽" "管没有 [CircleShape2D] 快)。" @@ -17768,8 +20168,8 @@ msgid "" "[CapsuleShape3D] is cheaper to check collisions against compared to " "[CylinderShape3D]." msgstr "" -"使用一个 [CollisionShape3D] 节点,添加为 [PhysicsBody3D] 或 [Area3D] 的[i]直" -"接[/i]子节点的 3D 胶囊形状。在 3D 中,胶囊是两端带有半球的圆柱体。\n" +"使用 [CollisionShape3D] 节点作为 [PhysicsBody3D] 或 [Area3D] 的[i]直接[/i]子" +"节点时,可被添加的 3D 胶囊形状。在 3D 中,胶囊是两端带有半球的圆柱体。\n" "[b]性能:[/b]作为一种原始的碰撞形状,[CapsuleShape3D] 可用于快速检测碰撞(尽" "管没有 [SphereShape3D] 快)。与 [CylinderShape3D] 相比,[CapsuleShape3D] 检测" "碰撞的成本更低。" @@ -17885,47 +20285,6 @@ msgstr "" "水平方向,爬坡时你也会斜向移动。此方法返回的就是那个斜向移动,与返回请求速度" "的 [member velocity] 相对。" -msgid "" -"Returns a [KinematicCollision2D], which contains information about a " -"collision that occurred during the last call to [method move_and_slide]. " -"Since the body can collide several times in a single call to [method " -"move_and_slide], you must specify the index of the collision in the range 0 " -"to ([method get_slide_collision_count] - 1).\n" -"[b]Example usage:[/b]\n" -"[codeblocks]\n" -"[gdscript]\n" -"for i in get_slide_collision_count():\n" -"var collision = get_slide_collision(i)\n" -"print(\"Collided with: \", collision.collider.name)\n" -"[/gdscript]\n" -"[csharp]\n" -"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" -"{\n" -" KinematicCollision2D collision = GetSlideCollision(i);\n" -" GD.Print(\"Collided with: \", (collision.GetCollider() as Node).Name);\n" -"}\n" -"[/csharp]\n" -"[/codeblocks]" -msgstr "" -"返回 [KinematicCollision2D],包含最近一次调用 [method move_and_slide] 时发生" -"的碰撞信息。因为单次调用 [method move_and_slide] 可能发生多次碰撞,所以你必须" -"指定碰撞索引,范围为 0 到 ([method get_slide_collision_count] - 1)。\n" -"[b]用法示例:[/b]\n" -"[codeblocks]\n" -"[gdscript]\n" -"for i in get_slide_collision_count():\n" -"var collision = get_slide_collision(i)\n" -"print(\"碰到了:\", collision.collider.name)\n" -"[/gdscript]\n" -"[csharp]\n" -"for (int i = 0; i < GetSlideCollisionCount(); i++)\n" -"{\n" -" KinematicCollision2D collision = GetSlideCollision(i);\n" -" GD.Print(\"碰到了:\", (collision.GetCollider() as Node).Name);\n" -"}\n" -"[/csharp]\n" -"[/codeblocks]" - msgid "" "Returns the number of times the body collided and changed direction during " "the last call to [method move_and_slide]." @@ -18059,23 +20418,6 @@ msgstr "" "调用 [method move_and_slide] 时,斜坡仍被视为地板(或天花板)而不是墙壁的最大" "角度(单位为弧度)。默认值等于 45 度。" -msgid "" -"Sets a snapping distance. When set to a value different from [code]0.0[/" -"code], the body is kept attached to slopes when calling [method " -"move_and_slide]. The snapping vector is determined by the given distance " -"along the opposite direction of the [member up_direction].\n" -"As long as the snapping vector is in contact with the ground and the body " -"moves against [member up_direction], the body will remain attached to the " -"surface. Snapping is not applied if the body moves along [member " -"up_direction], so it will be able to detach from the ground when jumping." -msgstr "" -"设置吸附距离。设为非 [code]0.0[/code] 值时,该物体在调用 [method " -"move_and_slide] 时会保持附着到斜坡上。吸附向量会根据给定的距离和 [member " -"up_direction] 反方向决定。\n" -"只要吸附向量与地面有接触,该物体就会逆 [member up_direction] 移动,保持附着到" -"表面。如果该物体是沿着 [member up_direction] 移动的,则不会应用吸附,这样跳跃" -"时就能够不再附着地面。" - msgid "" "If [code]true[/code], the body will not slide on slopes when calling [method " "move_and_slide] when the body is standing still.\n" @@ -18382,13 +20724,14 @@ msgstr "" msgid "" "Controls how an individual character will be displayed in a [RichTextEffect]." -msgstr "控制单个字符在[RichTextEffect]中的显示方式。" +msgstr "控制单个字符在 [RichTextEffect] 中的显示方式。" msgid "" "By setting various properties on this object, you can control how individual " "characters will be displayed in a [RichTextEffect]." msgstr "" -"通过在此对象上设置各种属性,可以控制单个字符在[RichTextEffect]中的显示方式。" +"通过在此对象上设置各种属性,可以控制单个字符在 [RichTextEffect] 中的显示方" +"式。" msgid "BBCode in RichTextLabel" msgstr "RichTextLabel 中的 BBCode" @@ -18399,6 +20742,17 @@ msgstr "RichTextEffect 测试项目(第三方)" msgid "The color the character will be drawn with." msgstr "绘制字符所用的颜色。" +msgid "" +"The time elapsed since the [RichTextLabel] was added to the scene tree (in " +"seconds). Time stops when the [RichTextLabel] is paused (see [member Node." +"process_mode]). Resets when the text in the [RichTextLabel] is changed.\n" +"[b]Note:[/b] Time still passes while the [RichTextLabel] is hidden." +msgstr "" +"自 [RichTextLabel] 被添加到场景树以来经过的时间(单位:秒)。时间在 " +"[RichTextLabel] 暂停时停止(参见 [member Node.process_mode])。在 " +"[RichTextLabel] 中的文本改变时重置。\n" +"[b]注意:[/b]当 [RichTextLabel] 被隐藏时,时间仍在流逝。" + msgid "" "Contains the arguments passed in the opening BBCode tag. By default, " "arguments are strings; if their contents match a type such as [bool], [int] " @@ -18440,8 +20794,30 @@ msgid "" msgstr "" "字形标志。详情见 [enum TextServer.GraphemeFlag]。设置此属性不会影响绘制。" +msgid "Font specific glyph index." +msgstr "字体特定字形的索引。" + msgid "The position offset the character will be drawn with (in pixels)." -msgstr "绘制字符的位置偏移量(以像素为单位)。" +msgstr "绘制字符的位置偏移量(单位:像素)。" + +msgid "" +"If [code]true[/code], FX transform is called for outline drawing. Setting " +"this property won't affect drawing." +msgstr "" +"如果为 [code]为true[/code],则调用 FX 变换进行轮廓绘制。设置该属性不会影响绘" +"制。" + +msgid "" +"Absolute character range in the string, corresponding to the glyph. Setting " +"this property won't affect drawing." +msgstr "该字符串中的绝对字符范围,对应于字形。设置该属性不会影响绘制。" + +msgid "" +"The character offset of the glyph, relative to the current [RichTextEffect] " +"custom block. Setting this property won't affect drawing." +msgstr "" +"该字形的字符偏移量,相对于当前 [RichTextEffect] 自定义块。设置该属性不会影响" +"绘制。" msgid "" "If [code]true[/code], the character will be drawn. If [code]false[/code], " @@ -18450,12 +20826,28 @@ msgid "" "their [member color] to [code]Color(1, 1, 1, 0)[/code] instead." msgstr "" "如果为 [code]true[/code],将绘制字符。如果为 [code]false[/code],则隐藏字符。" -"隐藏字符周围的字符将回流以占用隐藏字符的空间。如果不希望这样做,可以将它们的" -"[member color]设置为[code]Color(1, 1, 1, 0)[/code]。" +"隐藏字符周围的字符将回流以占用隐藏字符的空间。如果不希望这样做,可以将它们的 " +"[member color] 设置为[code]Color(1, 1, 1, 0)[/code]。" msgid "Binary choice user interface widget. See also [CheckButton]." msgstr "二项选择用户界面小部件。另请参阅 [CheckButton]。" +msgid "" +"A checkbox allows the user to make a binary choice (choosing only one of two " +"possible options). It's similar to [CheckButton] in functionality, but it " +"has a different appearance. To follow established UX patterns, it's " +"recommended to use CheckBox when toggling it has [b]no[/b] immediate effect " +"on something. For example, it could be used when toggling it will only do " +"something once a confirmation button is pressed.\n" +"See also [BaseButton] which contains common properties and methods " +"associated with this node." +msgstr "" +"允许用户做出二项选择(在两个可能的选项中只选择一个)的勾选框。它在功能上类似" +"于 [CheckButton],但外观不同。为了遵循既定的 UX 模式,建议在切换而[b]不会[/b]" +"立即对某些内容产生影响时使用 CheckBox。例如,切换后只会在按下确认按钮后才执行" +"某些操作时,可以使用它。\n" +"另请参阅 [BaseButton],其中包含与该节点相关的通用属性和方法。" + msgid "The [CheckBox] text's font color." msgstr "该 [CheckBox] 文本的字体颜色。" @@ -18467,8 +20859,8 @@ msgid "" "text color of the checkbox. Disabled, hovered, and pressed states take " "precedence over this color." msgstr "" -"该 [CheckBox] 被聚焦时的文本字体颜色。只取代复选框的正常文本颜色。禁用、悬停" -"和按下状态优先于这个颜色。" +"该 [CheckBox] 被聚焦时的文本字体颜色。只替代该勾选框的正常文本颜色。禁用、悬" +"停和按下状态优先于这个颜色。" msgid "The [CheckBox] text's font color when it's hovered." msgstr "该 [CheckBox] 被悬停时的文本字体颜色。" @@ -18483,13 +20875,13 @@ 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 "渲染复选图标时使用的垂直偏移量(单位为像素)。" +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]。" +"勾选图标与文本之间的间隔(单位:像素)。使用时负值会被视为 [code]0[/code]。" msgid "The [Font] to use for the [CheckBox] text." msgstr "该 [CheckBox] 文本所使用的 [Font]。" @@ -18498,38 +20890,37 @@ msgid "Font size of the [CheckBox]'s text." 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." -msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 处于禁用状态时使用。" +msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 被禁用时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckBox] is focused. " @@ -18541,8 +20932,8 @@ msgid "" "visual effect will harm keyboard/controller navigation usability, so this is " "not recommended for accessibility reasons." msgstr "" -"作为背景显示的 [StyleBox],该 [CheckBox] 处于聚焦状态时使用。[code]focus[/" -"code] [StyleBox] 显示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 " +"作为背景显示的 [StyleBox],该 [CheckBox] 被聚焦时使用。[code]focus[/code] " +"[StyleBox] 显示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 " "[StyleBox],确保基础 [StyleBox] 仍然可见。代表轮廓或下划线的 [StyleBox] 可以" "很好地实现这个目的。要禁用聚焦的视觉效果,请指定 [StyleBoxEmpty] 资源。请注" "意,禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的" @@ -18550,22 +20941,22 @@ msgstr "" msgid "" "The [StyleBox] to display as a background when the [CheckBox] is hovered." -msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 处于悬停状态时使用。" +msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 被悬停时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckBox] is hovered and " "pressed." -msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 处于悬停且按下状态时使用。" +msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 被悬停且被按下时使用。" msgid "The [StyleBox] to display as a background." msgstr "作为背景显示的 [StyleBox]。" msgid "" "The [StyleBox] to display as a background when the [CheckBox] is pressed." -msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 处于按下状态时使用。" +msgstr "作为背景显示的 [StyleBox],该 [CheckBox] 被按下时使用。" msgid "Checkable button. See also [CheckBox]." -msgstr "可复选的按钮。另请参阅 [CheckBox]。" +msgstr "可勾选的按钮。另请参阅 [CheckBox]。" msgid "" "CheckButton is a toggle button displayed as a check field. It's similar to " @@ -18577,11 +20968,11 @@ msgid "" "See also [BaseButton] which contains common properties and methods " "associated with this node." msgstr "" -"CheckButton 是一种开关按钮,以开关字段的形式显示。功能上类似于 [CheckBox],但" -"外观不同。为了实现一致的用户体验模式,建议在开关会[b]立即[/b]产生效果时使用 " -"CheckButton。例如,开关后无需用户按下确认按钮,会立即启用/禁用某个设置时就可" -"以使用。\n" -"另见 [BaseButton],包含该按钮的通用属性和方法。" +"CheckButton 是一种显示为勾选字段的切换按钮。它在功能上类似于 [CheckBox],但外" +"观不同。为了遵循既定的 UX 模式,建议在切换后对某些东西有[b]立即的[/b]效果时使" +"用 CheckButton。例如,如果切换后立即启用/禁用设置而无需用户按下确认按钮时,可" +"以使用它。\n" +"另请参阅 [BaseButton],其中包含与该节点相关的通用属性和方法。" msgid "The [CheckButton] text's font color." msgstr "该 [CheckButton] 的文本字体颜色。" @@ -18594,8 +20985,8 @@ msgid "" "normal text color of the button. Disabled, hovered, and pressed states take " "precedence over this color." msgstr "" -"该 [CheckButton] 被聚焦时的文本字体颜色。仅替换按钮的正常文本颜色。禁用、悬停" -"和按下状态优先于此颜色。" +"该 [CheckButton] 被聚焦时的文本字体颜色。只替代该按钮的正常文本颜色。禁用、悬" +"停和按下状态优先于此颜色。" msgid "The [CheckButton] text's font color when it's hovered." msgstr "该 [CheckButton] 被悬停时的文本字体颜色。" @@ -18610,13 +21001,13 @@ 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 "渲染切换图标时使用的垂直偏移量(单位为像素)。" +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]。" +"切换图标与文本之间的间隔(单位:像素)。使用时负值会被视为 [code]0[/code]。" msgid "The [Font] to use for the [CheckButton] text." msgstr "该 [CheckButton] 文本所使用的 [Font]。" @@ -18627,50 +21018,46 @@ msgstr "该 [CheckButton] 文本的字体大小。" msgid "" "The icon to display when the [CheckButton] is checked (for left-to-right " "layouts)." -msgstr "显示的图标,用于该 [CheckButton] 的勾选状态(从左至右布局)。" +msgstr "切换图标,该 [CheckButton] 被勾选时显示(用于从左至右布局)。" msgid "" "The icon to display when the [CheckButton] is checked and disabled (for left-" "to-right layouts)." -msgstr "" -"显示的图标,用于该 [CheckButton] 的勾选且禁用状态(用于从左至右布局)。" +msgstr "切换图标,该 [CheckButton] 被勾选且被禁用时显示(用于从左至右布局)。" msgid "" "The icon to display when the [CheckButton] is checked and disabled (for " "right-to-left layouts)." -msgstr "" -"显示的图标,用于该 [CheckButton] 的勾选且禁用状态(用于从右至左布局)。" +msgstr "切换图标,该 [CheckButton] 被勾选且被禁用时显示(用于从右至左布局)。" msgid "" "The icon to display when the [CheckButton] is checked (for right-to-left " "layouts)." -msgstr "显示的图标,用于该 [CheckButton] 的勾选状态(用于从右至左布局)。" +msgstr "切换图标,该 [CheckButton] 被勾选时显示(用于从右至左布局)。" msgid "" "The icon to display when the [CheckButton] is unchecked (for left-to-right " "layouts)." -msgstr "显示的图标,用于该 [CheckButton] 的未选状态(用于从左至右布局)。" +msgstr "切换图标,该 [CheckButton] 未勾选时显示(用于从左至右布局)。" msgid "" "The icon to display when the [CheckButton] is unchecked and disabled (for " "left-to-right layouts)." -msgstr "" -"显示的图标,用于该 [CheckButton] 的未选且禁用状态(用于从左至右布局)。" +msgstr "切换图标,该 [CheckButton] 未勾选且被禁用时显示(用于从左至右布局)。" msgid "" "The icon to display when the [CheckButton] is unchecked and disabled (for " "right-to-left layouts)." -msgstr "" -"显示的图标,用于该 [CheckButton] 的未选且禁用状态(用于从右至左布局)。" +msgstr "切换图标,该 [CheckButton] 未勾选且被禁用时显示(用于从右至左布局)。" msgid "" "The icon to display when the [CheckButton] is unchecked (for right-to-left " "layouts)." -msgstr "显示的图标,用于该 [CheckButton] 的未选状态(用于从右至左布局)。" +msgstr "切换图标,该 [CheckButton] 未勾选时显示(用于从右至左布局)。" msgid "" "The [StyleBox] to display as a background when the [CheckButton] is disabled." -msgstr "作为背景显示的 [StyleBox],用于该 [CheckButton] 的禁用状态。" +msgstr "作为背景显示的 [StyleBox],该 [CheckButton] 被禁用时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckButton] is focused. " @@ -18682,8 +21069,8 @@ msgid "" "visual effect will harm keyboard/controller navigation usability, so this is " "not recommended for accessibility reasons." msgstr "" -"作为背景显示的 [StyleBox],用于该 [CheckButton] 的聚焦状态。[code]focus[/" -"code] [StyleBox] 显示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 " +"作为背景显示的 [StyleBox],该 [CheckButton] 被聚焦时使用。[code]focus[/code] " +"[StyleBox] 显示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 " "[StyleBox],确保基础 [StyleBox] 仍然可见。代表轮廓或下划线的 [StyleBox] 可以" "很好地实现这个目的。要禁用聚焦的视觉效果,请指定 [StyleBoxEmpty] 资源。请注" "意,禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的" @@ -18691,16 +21078,16 @@ msgstr "" msgid "" "The [StyleBox] to display as a background when the [CheckButton] is hovered." -msgstr "作为背景显示的 [StyleBox],用于该 [CheckButton] 的悬停状态。" +msgstr "作为背景显示的 [StyleBox],该 [CheckButton] 被悬停时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckButton] is hovered " "and pressed." -msgstr "作为背景显示的 [StyleBox],用于该 [CheckButton] 的悬停且按下状态。" +msgstr "作为背景显示的 [StyleBox],该 [CheckButton] 被悬停且被按下时使用。" msgid "" "The [StyleBox] to display as a background when the [CheckButton] is pressed." -msgstr "作为背景显示的 [StyleBox],用于该 [CheckButton] 的按下状态。" +msgstr "作为背景显示的 [StyleBox],该 [CheckButton] 被按下时使用。" msgid "Circular shape resource for 2D physics." msgstr "用于 2D 物理的圆形资源。" @@ -18714,11 +21101,11 @@ msgid "" "the fastest collision shape to check collisions against, as it only requires " "a distance check with the shape's origin." msgstr "" -"使用 [CollisionShape2D] 节点将 2D 圆形添加为 [PhysicsBody2D] 或 [Area2D] 的一" -"个[i]直接[/i]子节点。这种形状对于为球或小角色建模很有用,并且它与其他物体的碰" -"撞检测速度非常快。\n" +"使用 [CollisionShape2D] 节点作为 [PhysicsBody2D] 或 [Area2D] 的[i]直接[/i]子" +"节点时,可被添加的 2D 圆形。这种形状对于为球或小角色建模很有用,并且它与其他" +"物体的碰撞检测速度非常快。\n" "[b]性能:[/b]作为一种原始的碰撞形状,[CircleShape2D] 是检测碰撞最快的碰撞形" -"状,因为它只需要与形状的原点进行距离检测。" +"状,因为它只需要与该形状的原点进行距离检测。" msgid "The circle's radius." msgstr "圆的半径。" @@ -18739,6 +21126,32 @@ msgstr "" msgid "Returns whether the specified [param class] is available or not." msgstr "返回指定的类 [param class] 是否可用。" +msgid "" +"Returns an array with all the keys in [param enum] of [param class] or its " +"ancestry." +msgstr "" +"返回一个数组,其中包含 [param class] 或其祖先的 [param enum] 中的所有键。" + +msgid "Returns an array with all the enums of [param class] or its ancestry." +msgstr "返回一个数组,其中包含 [param class] 或其祖先的所有枚举。" + +msgid "" +"Returns the value of the integer constant [param name] of [param class] or " +"its ancestry. Always returns 0 when the constant could not be found." +msgstr "" +"返回 [param class] 或其父级的整数常量值 [param name]。如果找不到该常量,则总" +"是返回0。" + +msgid "" +"Returns which enum the integer constant [param name] of [param class] or its " +"ancestry belongs to." +msgstr "返回 [param class] 或其祖先的整数常量 [param name] 所属的枚举。" + +msgid "" +"Returns an array with the names all the integer constants of [param class] " +"or its ancestry." +msgstr "返回包含 [param class] 或其父级全部整数常量的名称数组。" + msgid "" "Returns an array with all the methods of [param class] or its ancestry if " "[param no_inheritance] is [code]false[/code]. Every element of the array is " @@ -18757,6 +21170,10 @@ msgstr "" "[b]注意:[/b]在导出的发布版本中,调试信息不可用,因此返回的字典将仅包含方法名" "称。" +msgid "" +"Returns the value of [param property] of [param object] or its ancestry." +msgstr "返回 [param object] 或其父级 [param property] 的属性值。" + msgid "" "Returns an array with all the properties of [param class] or its ancestry if " "[param no_inheritance] is [code]false[/code]." @@ -18834,6 +21251,26 @@ msgstr "返回 [param inherits] 是否为 [param class] 的祖先。" msgid "Multiline text control intended for editing code." msgstr "多行文本控件,用于代码编辑。" +msgid "" +"CodeEdit is a specialized [TextEdit] designed for editing plain text code " +"files. It contains a bunch of features commonly found in code editors such " +"as line numbers, line folding, code completion, indent management and " +"string / comment management.\n" +"[b]Note:[/b] By default [CodeEdit] always use left-to-right text direction " +"to correctly display source code." +msgstr "" +"CodeEdit 是一个专门用于编辑纯文本代码文件的 [TextEdit]。它包含了一些代码编辑" +"器中常见的功能,如行号、折行、代码补全、缩进管理和字符串 / 注释管理。\n" +"[b]注意:[/b] 默认情况下,[CodeEdit] 总是使用从左到右的文本方向来正确显示源代" +"码。" + +msgid "" +"Override this method to define how the selected entry should be inserted. If " +"[param replace] is true, any existing text should be replaced." +msgstr "" +"重写此方法以定义所选条目应如何插入。如果 [param replace] 为真,任何现有的文本" +"都应该被替换。" + msgid "" "Override this method to define what items in [param candidates] should be " "displayed.\n" @@ -18975,9 +21412,25 @@ msgstr "获取当前已选定补全项的索引。" msgid "Gets the end key for a string or comment region index." msgstr "获取字符串或注释块索引的结束键。" +msgid "" +"If [param line] [param column] is in a string or comment, returns the end " +"position of the region. If not or no end could be found, both [Vector2] " +"values will be [code]-1[/code]." +msgstr "" +"如果 [param line] [param column] 是在一个字符串或注释中,则返回该区域的结束位" +"置。如果不在或未找到结束位置,则 [Vector2] 的两个值都将是 [code]-1[/code] 。" + msgid "Gets the start key for a string or comment region index." msgstr "获取字符串或注释块索引的开始键。" +msgid "" +"If [param line] [param column] is in a string or comment, returns the start " +"position of the region. If not or no start could be found, both [Vector2] " +"values will be [code]-1[/code]." +msgstr "" +"如果 [param line] [param column] 是在一个字符串或注释中,则返回该区域的起始位" +"置。如果不在或未找到开始位置,则 [Vector2] 的两个值都将是 [code]-1[/code] 。" + msgid "Gets all executing lines." msgstr "获取所有正在执行的行。" @@ -19008,6 +21461,24 @@ msgid "" "Indents selected lines, or in the case of no selection the caret line by one." msgstr "缩进选定的行,或者在没有选择的情况下,将光标行缩进一个。" +msgid "" +"Returns delimiter index if [param line] [param column] is in a comment. If " +"[param column] is not provided, will return delimiter index if the entire " +"[param line] is a comment. Otherwise [code]-1[/code]." +msgstr "" +"如果 [param line] [param column] 在一条注释中,则返回分隔符索引。如果没有提" +"供 [param column],且整个 [param line] 是一条注释,则将返回分隔符索引。否则返" +"回 [code]-1[/code]。" + +msgid "" +"Returns the delimiter index if [param line] [param column] is in a string. " +"If [param column] is not provided, will return the delimiter index if the " +"entire [param line] is a string. Otherwise [code]-1[/code]." +msgstr "" +"如果 [param line] [param column] 在一条字符串中,则返回分隔符索引。如果没有提" +"供 [param column],且整个 [param line] 是一个字符串,则将返回分隔符索引。否则" +"返回 [code]-1[/code]。" + msgid "Returns whether the line at the specified index is bookmarked or not." msgstr "返回指定索引处的行是否添加了书签。" @@ -19056,6 +21527,9 @@ msgstr "将该行设置为断点。" msgid "Sets the line as executing." msgstr "将该行设置为正在执行。" +msgid "Sets the symbol emitted by [signal symbol_validate] as a valid lookup." +msgstr "将 [signal symbol_validate] 发出的符号设置为有效查找。" + msgid "Toggle the folding of the code block at the given line." msgstr "在给定行切换代码块的折叠。" @@ -19156,6 +21630,20 @@ msgstr "" "在提供的列上绘制垂直线。第一个条目被认为是主要的硬参考线,并且被绘制得更显" "眼。" +msgid "" +"Set when a validated word from [signal symbol_validate] is clicked, the " +"[signal symbol_lookup] should be emitted." +msgstr "" +"设置当来自 [signal symbol_validate] 的验证词被点击时,应发出 [signal " +"symbol_lookup]。" + +msgid "" +"Emitted when a breakpoint is added or removed from a line. If the line is " +"moved via backspace a removed is emitted at the old line." +msgstr "" +"在行中添加或移除断点时触发。如果该行通过退格键移动,则在旧行处触发一个移除的" +"信号。" + msgid "Emitted when the user requests code completion." msgstr "当用户请求代码补全时触发。" @@ -19220,12 +21708,27 @@ msgstr "光标的 [Color]。" msgid "[Color] for all icons related to line folding." msgstr "所有与折叠行相关的图标的 [Color]。" +msgid "Sets the background [Color] for the code completion popup." +msgstr "设置代码补全弹出窗口的背景色 [Color]。" + +msgid "" +"Background highlight [Color] for matching text in code completion options." +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 "[Color] of the scrollbar in the code completion popup when hovered." +msgstr "代码补全弹出窗口中滚动条在悬停状态的 [Color]。" + +msgid "" +"Background highlight [Color] for the current selected option item in the " +"code completion popup." +msgstr "代码补全弹出窗口中,当前选定选项的背景高亮的 [Color]。" + msgid "Background [Color] of the line containing the caret." msgstr "光标所在行的背景 [Color]。" @@ -19241,6 +21744,9 @@ msgstr "该 [CodeEdit] 文本轮廓的色调。" msgid "Font color for [member TextEdit.placeholder_text]." msgstr "[member TextEdit.placeholder_text] 的字体颜色。" +msgid "Sets the font [Color] when [member TextEdit.editable] is disabled." +msgstr "设置禁用 [member TextEdit.editable] 时的字体 [Color]。" + msgid "" "Sets the [Color] of the selected text. If equal to [code]Color(0, 0, 0, 0)[/" "code], it will be ignored." @@ -19248,12 +21754,35 @@ msgstr "" "设置所选文本的 [Color]。如果等于 [code]Color(0, 0, 0, 0)[/code],则该属性将被" "忽略。" +msgid "" +"[Color] of the main line length guideline, secondary guidelines will have " +"50% alpha applied." +msgstr "主行长度参考线的 [Color],次要参考线将应用 50% 的 Alpha。" + msgid "Sets the [Color] of line numbers." msgstr "设置行号的颜色 [Color]。" +msgid "[Color] of the border around text that matches the search query." +msgstr "与搜索查询匹配的文本周围的边框的 [Color]。" + +msgid "[Color] behind the text that matches the search query." +msgstr "与搜索查询匹配的文本背景的 [Color]。" + msgid "Sets the highlight [Color] of text selections." msgstr "设置文本选择的高亮 [Color] 颜色。" +msgid "" +"Sets the highlight [Color] of multiple occurrences. [member TextEdit." +"highlight_all_occurrences] has to be enabled." +msgstr "" +"设置多次出现的高亮的 [Color]。[member TextEdit.highlight_all_occurrences] 必" +"须已被启用。" + +msgid "" +"Max number of options to display in the code completion popup at any one " +"time." +msgstr "同时在代码补全弹出窗口中显示的最大选项数。" + msgid "" "Max width of options in the code completion popup. Options longer then this " "will be cut off." @@ -19352,6 +21881,15 @@ msgstr "" "设置关键字的颜色。\n" "关键字不能包含除“_”之外的任何符号。" +msgid "" +"Sets the color for a member keyword.\n" +"The member keyword cannot contain any symbols except '_'.\n" +"It will not be highlighted if preceded by a '.'." +msgstr "" +"设置成员关键字的颜色。\n" +"成员关键字不能包含除“_”之外的任何符号。\n" +"如果前面有“.”,则不会高亮显示。" + msgid "Removes all color regions." msgstr "移除所有颜色区域。" @@ -19579,9 +22117,17 @@ msgstr "移除形状所有者的所有形状。" msgid "Returns the parent object of the given shape owner." msgstr "返回给定形状所有者的父对象。" +msgid "Returns the [Shape2D] with the given ID from the given shape owner." +msgstr "从给定形状所有者返回具有给定 ID 的 [Shape2D]。" + msgid "Returns the number of shapes the given shape owner contains." msgstr "返回给定形状所有者包含的形状数量。" +msgid "" +"Returns the child index of the [Shape2D] with the given ID from the given " +"shape owner." +msgstr "从给定形状所有者返回具有给定 ID 的 [Shape2D] 的子索引。" + msgid "Returns the shape owner's [Transform2D]." msgstr "返回形状所有者的 [Transform2D]。" @@ -19646,6 +22192,14 @@ msgstr "" "发生穿透时用于解决碰撞的优先级。优先级越高,对物体的穿透度就越低。例如,可以" "用来防止玩家突破关卡的边界。" +msgid "" +"Defines the behavior in physics when [member Node.process_mode] is set to " +"[constant Node.PROCESS_MODE_DISABLED]. See [enum DisableMode] for more " +"details about the different modes." +msgstr "" +"当 [member Node.process_mode] 被设置为 [constant Node.PROCESS_MODE_DISABLED] " +"时,定义物理行为。有关不同模式的更多详细信息,请参阅 [enum DisableMode]。" + msgid "" "If [code]true[/code], this object is pickable. A pickable object can detect " "the mouse pointer entering/leaving, and if the mouse is inside it, report " @@ -19655,6 +22209,53 @@ msgstr "" "进入/离开,鼠标位于其中时,就会报告输入事件。要求至少设置一个 [member " "collision_layer] 位。" +msgid "" +"Emitted when an input event occurs. Requires [member input_pickable] to be " +"[code]true[/code] and at least one [member collision_layer] bit to be set. " +"See [method _input_event] for details." +msgstr "" +"当输入事件发生时发出。要求 [member input_pickable] 为 [code]true[/code] 并且" +"至少设置了一个 [member collision_layer] 位。有关详细信息,请参见 [method " +"_input_event]。" + +msgid "" +"Emitted when the mouse pointer enters any of this object's shapes. Requires " +"[member input_pickable] to be [code]true[/code] and at least one [member " +"collision_layer] bit to be set. Note that moving between different shapes " +"within a single [CollisionObject2D] won't cause this signal to be emitted.\n" +"[b]Note:[/b] Due to the lack of continuous collision detection, this signal " +"may not be emitted in the expected order if the mouse moves fast enough and " +"the [CollisionObject2D]'s area is small. This signal may also not be emitted " +"if another [CollisionObject2D] is overlapping the [CollisionObject2D] in " +"question." +msgstr "" +"当鼠标指针进入该对象的任何形状时发出。要求 [member input_pickable] 为 " +"[code]true[/code] 并且至少设置了一个 [member collision_layer] 位。请注意,在" +"单个 [CollisionObject2D] 中的不同形状之间移动,不会导致发出该信号。\n" +"[b]注意:[/b]由于缺少连续的碰撞检测,如果鼠标移动得足够快并且 " +"[CollisionObject2D] 的区域很小,则该信号可能不会按预期的顺序发出。如果另一个 " +"[CollisionObject2D] 与所讨论的 [CollisionObject2D] 重叠,则也可能不会发出该信" +"号。" + +msgid "" +"Emitted when the mouse pointer exits all this object's shapes. Requires " +"[member input_pickable] to be [code]true[/code] and at least one [member " +"collision_layer] bit to be set. Note that moving between different shapes " +"within a single [CollisionObject2D] won't cause this signal to be emitted.\n" +"[b]Note:[/b] Due to the lack of continuous collision detection, this signal " +"may not be emitted in the expected order if the mouse moves fast enough and " +"the [CollisionObject2D]'s area is small. This signal may also not be emitted " +"if another [CollisionObject2D] is overlapping the [CollisionObject2D] in " +"question." +msgstr "" +"当鼠标指针离开该对象的所有形状时发出。要求 [member input_pickable] 为 " +"[code]true[/code] 并且至少设置了一个 [member collision_layer] 位。请注意,在" +"单个 [CollisionObject2D] 中的不同形状之间移动,不会导致发出该信号。\n" +"[b]注意:[/b]由于缺少连续的碰撞检测,如果鼠标移动得足够快并且 " +"[CollisionObject2D] 的区域很小,则该信号可能不会按预期的顺序发出。如果另一个 " +"[CollisionObject2D] 与所讨论的 [CollisionObject2D] 重叠,则也可能不会发出该信" +"号。" + msgid "" "Emitted when the mouse pointer enters any of this object's shapes or moves " "from one shape to another. [param shape_idx] is the child index of the newly " @@ -19686,6 +22287,18 @@ msgstr "" "时,从物理仿真中移除,停止与此 [CollisionObject2D] 的所有物理交互。\n" "当该 [Node] 再次被处理时,会自动重新加入到物理仿真中。" +msgid "" +"When [member Node.process_mode] is set to [constant Node." +"PROCESS_MODE_DISABLED], make the body static. Doesn't affect [Area2D]. " +"[PhysicsBody2D] can't be affected by forces or other bodies while static.\n" +"Automatically set [PhysicsBody2D] back to its original mode when the [Node] " +"is processed again." +msgstr "" +"当 [member Node.process_mode] 被设置为 [constant Node.PROCESS_MODE_DISABLED] " +"时,使物体进入静态模式。不影响 [Area2D]。处于静态模式的 [PhysicsBody2D] 不会" +"受到力和其他物体的影响。\n" +"当该 [Node] 再次被处理时,会自动将 [PhysicsBody2D] 设置回其原始模式。" + msgid "" "When [member Node.process_mode] is set to [constant Node." "PROCESS_MODE_DISABLED], do not affect the physics simulation." @@ -19696,6 +22309,23 @@ msgstr "" msgid "Base node for collision objects." msgstr "碰撞对象的基础节点。" +msgid "" +"CollisionObject3D is the base class for physics objects. It can hold any " +"number of collision [Shape3D]s. Each shape must be assigned to a [i]shape " +"owner[/i]. The CollisionObject3D can have any number of shape owners. Shape " +"owners are not nodes and do not appear in the editor, but are accessible " +"through code using the [code]shape_owner_*[/code] methods.\n" +"[b]Warning:[/b] With a non-uniform scale this node will probably not " +"function as expected. Please make sure to keep its scale uniform (i.e. the " +"same on all axes), and change the size(s) of its collision shape(s) instead." +msgstr "" +"CollisionObject3D 是物理对象的基类。它可以容纳任意数量的碰撞 [Shape3D]。每个" +"形状必须被分配给一个[i]形状所有者[/i]。CollisionObject3D 可以有任意数量的形状" +"所有者。形状所有者不是节点,也不会出现在编辑器中,但可以使用 " +"[code]shape_owner_*[/code] 方法通过代码访问。\n" +"[b]警告:[/b]如果缩放不一致,该节点可能无法按预期运行。请确保保持其缩放统一" +"(即在所有轴上相同),并改为更改其碰撞形状的大小。" + msgid "" "Receives unhandled [InputEvent]s. [param position] is the location in world " "space of the mouse pointer on the surface of the shape with index [param " @@ -19748,6 +22378,87 @@ msgstr "返回形状所有者的 [Transform3D]。" msgid "Sets the [Transform3D] of the given shape owner." msgstr "设置给定形状所有者的 [Transform3D]。" +msgid "" +"The physics layers this CollisionObject3D [b]is in[/b]. Collision objects " +"can exist in one or more of 32 different layers. See also [member " +"collision_mask].\n" +"[b]Note:[/b] Object A can detect a contact with object B only if object B is " +"in any of the layers that object A scans. See [url=$DOCS_URL/tutorials/" +"physics/physics_introduction.html#collision-layers-and-masks]Collision " +"layers and masks[/url] in the documentation for more information." +msgstr "" +"该 CollisionObject3D [b]所在的[/b]物理层。碰撞对象可以存在于 32 个不同层中的" +"一层或多层。另见 [member collision_mask]。\n" +"[b]注意:[/b]只有当对象 B 位于对象 A 扫描的任何层中时,对象 A 才能检测到与对" +"象 B 的接触。有关更多信息,请参阅文档中的[url=$DOCS_URL/tutorials/physics/" +"physics_introduction.html#collision-layers-and-masks]《碰撞层和掩码》[/url]。" + +msgid "" +"The physics layers this CollisionObject3D [b]scans[/b]. Collision objects " +"can scan one or more of 32 different layers. See also [member " +"collision_layer].\n" +"[b]Note:[/b] Object A can detect a contact with object B only if object B is " +"in any of the layers that object A scans. See [url=$DOCS_URL/tutorials/" +"physics/physics_introduction.html#collision-layers-and-masks]Collision " +"layers and masks[/url] in the documentation for more information." +msgstr "" +"该 CollisionObject3D [b]扫描的[/b]物理层。碰撞对象可以扫描 32 个不同层中的一" +"层或多层。另见 [member collision_layer]。\n" +"[b]注意:[/b]只有当对象 B 位于对象 A 扫描的任何层中时,对象 A 才能检测到与对" +"象 B 的接触。有关更多信息,请参阅文档中的[url=$DOCS_URL/tutorials/physics/" +"physics_introduction.html#collision-layers-and-masks]《碰撞层和掩码》[/url]。" + +msgid "" +"If [code]true[/code], the [CollisionObject3D] will continue to receive input " +"events as the mouse is dragged across its shapes." +msgstr "" +"如果为 [code]true[/code],则当鼠标拖过其形状时,[CollisionObject3D] 将继续接" +"收输入事件。" + +msgid "" +"Emitted when the object receives an unhandled [InputEvent]. [param position] " +"is the location in world space of the mouse pointer on the surface of the " +"shape with index [param shape_idx] and [param normal] is the normal vector " +"of the surface at that point." +msgstr "" +"当对象收到未处理的 [InputEvent] 时发出。[param position] 是鼠标指针在索引为 " +"[param shape_idx] 的形状表面上的世界空间位置,[param normal] 是表面在该点的法" +"向量。" + +msgid "" +"Emitted when the mouse pointer enters any of this object's shapes. Requires " +"[member input_ray_pickable] to be [code]true[/code] and at least one [member " +"collision_layer] bit to be set.\n" +"[b]Note:[/b] Due to the lack of continuous collision detection, this signal " +"may not be emitted in the expected order if the mouse moves fast enough and " +"the [CollisionObject3D]'s area is small. This signal may also not be emitted " +"if another [CollisionObject3D] is overlapping the [CollisionObject3D] in " +"question." +msgstr "" +"当鼠标指针进入该对象的任何形状时发出。要求 [member input_ray_pickable] 为 " +"[code]true[/code] 并且至少设置了一个 [member collision_layer] 位。\n" +"[b]注意:[/b]由于缺少连续的碰撞检测,如果鼠标移动得足够快并且 " +"[CollisionObject3D] 的区域很小,则该信号可能不会按预期的顺序发出。如果另一个 " +"[CollisionObject3D] 与所讨论的 [CollisionObject3D] 重叠,则也可能不会发出该信" +"号。" + +msgid "" +"Emitted when the mouse pointer exits all this object's shapes. Requires " +"[member input_ray_pickable] to be [code]true[/code] and at least one [member " +"collision_layer] bit to be set.\n" +"[b]Note:[/b] Due to the lack of continuous collision detection, this signal " +"may not be emitted in the expected order if the mouse moves fast enough and " +"the [CollisionObject3D]'s area is small. This signal may also not be emitted " +"if another [CollisionObject3D] is overlapping the [CollisionObject3D] in " +"question." +msgstr "" +"当鼠标指针离开该对象的所有形状时发出。要求 [member input_ray_pickable] 为 " +"[code]true[/code] 并且至少设置了一个 [member collision_layer] 位。\n" +"[b]注意:[/b]由于缺少连续的碰撞检测,如果鼠标移动得足够快并且 " +"[CollisionObject3D] 的区域很小,则该信号可能不会按预期的顺序发出。如果另一个 " +"[CollisionObject3D] 与所讨论的 [CollisionObject3D] 重叠,则也可能不会发出该信" +"号。" + msgid "" "When [member Node.process_mode] is set to [constant Node." "PROCESS_MODE_DISABLED], remove from the physics simulation to stop all " @@ -19759,8 +22470,17 @@ msgstr "" "时,从物理仿真中移除,停止与此 [CollisionObject3D] 的所有物理交互。\n" "当该 [Node] 再次被处理时,会自动重新加入到物理仿真中。" -msgid "Defines a 2D collision polygon." -msgstr "定义 2D 碰撞多边形。" +msgid "" +"When [member Node.process_mode] is set to [constant Node." +"PROCESS_MODE_DISABLED], make the body static. Doesn't affect [Area3D]. " +"[PhysicsBody3D] can't be affected by forces or other bodies while static.\n" +"Automatically set [PhysicsBody3D] back to its original mode when the [Node] " +"is processed again." +msgstr "" +"当 [member Node.process_mode] 被设置为 [constant Node.PROCESS_MODE_DISABLED] " +"时,使实体静态化。不影响 [Area3D]。[PhysicsBody3D] 在静态时不会受到力或其他实" +"体的影响。\n" +"当该 [Node] 再次被处理时,自动将 [PhysicsBody3D] 设置回其原始模式。" msgid "Collision build mode. Use one of the [enum BuildMode] constants." msgstr "碰撞构建模式。使用 [enum BuildMode] 常量之一。" @@ -19787,74 +22507,17 @@ msgstr "" "用于单向碰撞的边距(以像素为单位)。较高的值将使形状更厚,并且对于以高速进入" "多边形的对撞机来说效果更好。" -msgid "Collisions will include the polygon and its contained area." -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 " -"is only available in the editor. It will not appear in the scene tree at run-" -"time. Creates several [ConvexPolygonShape3D]s at run-time to represent the " -"original polygon using convex decomposition.\n" -"[b]Note:[/b] Since this is an editor-only helper, properties modified during " -"gameplay will have no effect.\n" -"[b]Warning:[/b] A non-uniformly scaled CollisionPolygon3D node will probably " -"not function as expected. Please make sure to keep its scale uniform (i.e. " -"the same on all axes), and change its [member polygon]'s vertices instead." -msgstr "" -"允许在选定平面上编辑凹形或凸形碰撞多边形的顶点。也可以设置垂直于该平面的深" -"度。该类仅在编辑器中可用。它不会在运行时出现在场景树中。在运行时创建多个 " -"[ConvexPolygonShape3D] 以使用凸分解表示原始多边形。\n" -"[b]注意:[/b]由于这是一个仅限编辑器的助手类,因此在游戏过程中修改的属性将无" -"效。\n" -"[b]警告:[/b]非均匀缩放的 CollisionPolygon3D 节点可能无法按预期运行。请确保保" -"持其比例统一(即在所有轴上相同),并改为更改其 [member polygon] 的顶点。" - -msgid "" -"Length that the resulting collision extends in either direction " -"perpendicular to its polygon." -msgstr "产生的碰撞在垂直于其多边形的任一方向上延伸的长度。" - msgid "If [code]true[/code], no collision will be produced." msgstr "如果为 [code]true[/code],将不会产生碰撞。" msgid "" -"Array of vertices which define the polygon.\n" -"[b]Note:[/b] The returned value is a copy of the original. Methods which " -"mutate the size or properties of the return value will not impact the " -"original polygon. To change properties of the polygon, assign it to a " -"temporary variable and make changes before reassigning the [code]polygon[/" -"code] member." -msgstr "" -"定义多边形的顶点数组。\n" -"[b]注意:[/b]返回的值是原始值的副本。改变返回值的大小或属性的方法不会影响原始" -"多边形。要更改多边形的属性,请将其分配给临时变量并进行更改,然后再重新分配" -"[code]polygon[/code]成员。" +"The collision margin for the generated [Shape3D]. See [member Shape3D." +"margin] for more details." +msgstr "生成的 [Shape3D] 的碰撞边距。详情见 [member Shape3D.margin]。" msgid "Node that represents collision shape data in 2D space." msgstr "表示2D空间中的碰撞形状数据的节点。" -msgid "" -"Editor facility for creating and editing collision shapes in 2D space. Set " -"the [member shape] property to configure the shape. [b]IMPORTANT[/b]: this " -"is an Editor-only helper to create shapes, use [method CollisionObject2D." -"shape_owner_get_shape] to get the actual shape.\n" -"You can use this node to represent all sorts of collision shapes, for " -"example, add this to an [Area2D] to give it a detection shape, or add it to " -"a [PhysicsBody2D] to create a solid object." -msgstr "" -"用于在 2D 空间中创建和编辑碰撞形状的编辑工具。请使用 [member shape] 属性配置" -"形状。[b]重要[/b]:这是专为编辑器提供的形状创建工具,要获取实际形状,请使用 " -"[method CollisionObject2D.shape_owner_get_shape]。\n" -"你可以使用这个节点表示各种碰撞形状,例如,将其添加到 [Area2D] 以使其具有检测" -"形状,或将其添加到物理体 [PhysicsBody2D] 以创建实体对象。" - msgid "Physics introduction" msgstr "物理介绍" @@ -19901,25 +22564,9 @@ msgid "Node that represents collision shape data in 3D space." msgstr "表示 3D 空间中的碰撞形状数据的节点。" msgid "" -"Editor facility for creating and editing collision shapes in 3D space. Set " -"the [member shape] property to configure the shape. [b]IMPORTANT[/b]: this " -"is an Editor-only helper to create shapes, use [method CollisionObject3D." -"shape_owner_get_shape] to get the actual shape.\n" -"You can use this node to represent all sorts of collision shapes, for " -"example, add this to an [Area3D] to give it a detection shape, or add it to " -"a [PhysicsBody3D] to create a solid object.\n" -"[b]Warning:[/b] A non-uniformly scaled CollisionShape3D node will probably " -"not function as expected. Please make sure to keep its scale uniform (i.e. " -"the same on all axes), and change the size of its [member shape] resource " -"instead." -msgstr "" -"用于在 3D 空间中创建和编辑碰撞形状的编辑器工具。请设置 [member shape] 属性来" -"配置形状。[b]重要[/b]:这是一个仅供编辑器使用的用于创建形状的助手类,使用 " -"[method CollisionObject3D.shape_owner_get_shape] 来获取实际形状。\n" -"您可以使用此节点来表示各种碰撞形状,例如,将其添加到 [Area3D] 以为其提供检测" -"形状,或将其添加到 [PhysicsBody3D] 以创建实体对象。\n" -"[b]警告:[/b]非均匀缩放的 CollisionShape3D 节点可能无法按预期运行。请确保保持" -"其比例统一(即在所有轴上相同),并改为更改其 [member shape] 资源的大小。" +"Sets the collision shape's shape to the addition of all its convexed " +"[MeshInstance3D] siblings geometry." +msgstr "将碰撞形状的形状设置为其所有凸面 [MeshInstance3D] 兄弟几何体的相加。" msgid "" "If this method exists within a script it will be called whenever the shape " @@ -20105,6 +22752,14 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns a new color with all components clamped between the components of " +"[param min] and [param max], by running [method @GlobalScope.clamp] on each " +"component." +msgstr "" +"通过在每个分量上运行 [method @GlobalScope.clamp],返回一种新颜色,其中所有分" +"量都被钳制在 [param min] 和 [param max] 的分量之间。" + msgid "" "Returns a new color resulting from making this color darker by the specified " "[param amount] (ratio from 0.0 to 1.0). See also [method lightened].\n" @@ -20132,6 +22787,57 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Constructs a color from an [url=https://en.wikipedia.org/wiki/" +"HSL_and_HSV]HSV profile[/url]. The hue ([param h]), saturation ([param s]), " +"and value ([param v]) are typically between 0.0 and 1.0.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8)\n" +"[/gdscript]\n" +"[csharp]\n" +"var color = Color.FromHsv(0.58f, 0.5f, 0.79f, 0.8f);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"根据 [url=https://zh.wikipedia.org/wiki/" +"HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4]HSV 配置[/url]构建颜色。" +"色相([param h])、饱和度([param s])和值([param v])通常在 0.0 和 1.0 之" +"间。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8)\n" +"[/gdscript]\n" +"[csharp]\n" +"var color = Color.FromHsv(0.58f, 0.5f, 0.79f, 0.8f);\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Constructs a color from an [url=https://bottosson.github.io/posts/" +"colorpicker/]OK HSL profile[/url]. The hue ([param h]), saturation ([param " +"s]), and lightness ([param l]) are typically between 0.0 and 1.0.\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_ok_hsl(0.58, 0.5, 0.79, 0.8)\n" +"[/gdscript]\n" +"[csharp]\n" +"var color = Color.FromOkHsl(0.58f, 0.5f, 0.79f, 0.8f);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"根据 [url=https://bottosson.github.io/posts/colorpicker/]OK HSL 配置[/url]构" +"建颜色。色相([param h])、饱和度([param s])和亮度([param l])通常在 0.0 " +"和 1.0 之间。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var color = Color.from_ok_hsl(0.58, 0.5, 0.79, 0.8)\n" +"[/gdscript]\n" +"[csharp]\n" +"var color = Color.FromOkHsl(0.58f, 0.5f, 0.79f, 0.8f);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Decodes a [Color] from a RGBE9995 format integer. See [constant Image." "FORMAT_RGBE9995]." @@ -20146,6 +22852,56 @@ msgstr "" "从给定的字符串创建 [Color],该字符串可以是 HTML 颜色代码,也可以是颜色名称" "(不区分大小写)。如果无法从字符串中推断出颜色,则返回 [param default]。" +msgid "" +"Returns the light intensity of the color, as a value between 0.0 and 1.0 " +"(inclusive). This is useful when determining light or dark color. Colors " +"with a luminance smaller than 0.5 can be generally considered dark.\n" +"[b]Note:[/b] [method get_luminance] relies on the color being in the linear " +"color space to return an accurate relative luminance value. If the color is " +"in the sRGB color space, use [method srgb_to_linear] to convert it to the " +"linear color space first." +msgstr "" +"将颜色的光照强度返回为一个介于 0.0 和 1.0(包含)之间的值。这在确定浅色或深色" +"时很有用。亮度小于 0.5 的颜色通常可以认为是深色。\n" +"[b]注意:[/b][method get_luminance] 依赖于线性色彩空间中的颜色,以返回准确的" +"相对亮度值。如果颜色在 sRGB 色彩空间,请先使用 [method srgb_to_linear] 将其转" +"换为线性色彩空间。" + +msgid "" +"Returns the [Color] associated with the provided [param hex] integer in 32-" +"bit RGBA format (8 bits per channel, alpha channel first).\n" +"In GDScript and C#, the [int] is best visualized with hexadecimal notation " +"([code]\"0x\"[/code] prefix).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var red = Color.hex(0xff0000ff)\n" +"var dark_cyan = Color.hex(0x008b8bff)\n" +"var my_color = Color.hex(0xbbefd2a4)\n" +"[/gdscript]\n" +"[csharp]\n" +"var red = new Color(0xff0000ff);\n" +"var dark_cyan = new Color(0x008b8bff);\n" +"var my_color = new Color(0xbbefd2a4);\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回与以 32 位 RGBA 格式(每个通道 8 位,Alpha 通道在前)提供的 [param hex] " +"整数关联的 [Color]。\n" +"在 GDScript 和 C# 中,[int] 最好用十六进制表示法([code]\"0x\"[/code] 前缀)" +"来可视化。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var red = Color.hex(0xff0000ff)\n" +"var dark_cyan = Color.hex(0x008b8bff)\n" +"var my_color = Color.hex(0xbbefd2a4)\n" +"[/gdscript]\n" +"[csharp]\n" +"var red = new Color(0xff0000ff);\n" +"var dark_cyan = new Color(0x008b8bff);\n" +"var my_color = new Color(0xbbefd2a4);\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns the [Color] associated with the provided [param hex] integer in 64-" "bit RGBA format (16 bits per channel, alpha channel first).\n" @@ -20200,6 +22956,91 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns [code]true[/code] if [param color] is a valid HTML hexadecimal color " +"string. The string must be a hexadecimal value (case-insensitive) of either " +"3, 4, 6 or 8 digits, and may be prefixed by a hash sign ([code]#[/code]). " +"This method is identical to [method String.is_valid_html_color].\n" +"[codeblocks]\n" +"[gdscript]\n" +"Color.html_is_valid(\"#55aaFF\") # Returns true\n" +"Color.html_is_valid(\"#55AAFF20\") # Returns true\n" +"Color.html_is_valid(\"55AAFF\") # Returns true\n" +"Color.html_is_valid(\"#F2C\") # Returns true\n" +"\n" +"Color.html_is_valid(\"#AABBC) # Returns false\n" +"Color.html_is_valid(\"#55aaFF5\") # Returns false\n" +"[/gdscript]\n" +"[csharp]\n" +"Color.HtmlIsValid(\"#55AAFF\"); // Returns true\n" +"Color.HtmlIsValid(\"#55AAFF20\"); // Returns true\n" +"Color.HtmlIsValid(\"55AAFF\"); // Returns true\n" +"Color.HtmlIsValid(\"#F2C\"); // Returns true\n" +"\n" +"Color.HtmlIsValid(\"#AABBC\"); // Returns false\n" +"Color.HtmlIsValid(\"#55aaFF5\"); // Returns false\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"如果 [param color] 是一个有效的 HTML 十六进制颜色字符串,则返回 [code]true[/" +"code]。该字符串必须是一个由 3、4、6 或 8 位数字组成的十六进制值(不区分大小" +"写),并且可以以井号 ([code]#[/code]) 作为前缀。该方法与 [method String." +"is_valid_html_color] 相同。\n" +"[codeblocks]\n" +"[gdscript]\n" +"Color.html_is_valid(\"#55aaFF\") # 返回 true\n" +"Color.html_is_valid(\"#55AAFF20\") # 返回 true\n" +"Color.html_is_valid(\"55AAFF\") # 返回 true\n" +"Color.html_is_valid(\"#F2C\") # 返回 true\n" +"\n" +"Color.html_is_valid(\"#AABBC) # 返回 false\n" +"Color.html_is_valid(\"#55aaFF5\") # 返回 false\n" +"[/gdscript]\n" +"[csharp]\n" +"Color.HtmlIsValid(\"#55AAFF\"); // 返回 true\n" +"Color.HtmlIsValid(\"#55AAFF20\"); // 返回 true\n" +"Color.HtmlIsValid(\"55AAFF\"); // 返回 true\n" +"Color.HtmlIsValid(\"#F2C\"); // 返回 true\n" +"\n" +"Color.HtmlIsValid(\"#AABBC\"); // 返回 false\n" +"Color.HtmlIsValid(\"#55aaFF5\"); // 返回 false\n" +"[/csharp]\n" +"[/codeblocks]" + +msgid "" +"Returns the color with its [member r], [member g], and [member b] components " +"inverted ([code](1 - r, 1 - g, 1 - b, a)[/code]).\n" +"[codeblocks]\n" +"[gdscript]\n" +"var black = Color.WHITE.inverted()\n" +"var color = Color(0.3, 0.4, 0.9)\n" +"var inverted_color = color.inverted() # Equivalent to `Color(0.7, 0.6, " +"0.1)`\n" +"[/gdscript]\n" +"[csharp]\n" +"var black = Colors.White.Inverted();\n" +"var color = new Color(0.3f, 0.4f, 0.9f);\n" +"Color invertedColor = color.Inverted(); // Equivalent to `new Color(0.7f, " +"0.6f, 0.1f)`\n" +"[/csharp]\n" +"[/codeblocks]" +msgstr "" +"返回将 [member r]、[member g]、[member b] 分量翻转后的颜色([code](1 - r, 1 " +"- g, 1 - b, a)[/code])。\n" +"[codeblocks]\n" +"[gdscript]\n" +"var black = Color.WHITE.inverted()\n" +"var color = Color(0.3, 0.4, 0.9)\n" +"var inverted_color = color.inverted() # 等价于 `Color(0.7, 0.6, 0.1)`\n" +"[/gdscript]\n" +"[csharp]\n" +"var black = Colors.White.Inverted();\n" +"var color = new Color(0.3f, 0.4f, 0.9f);\n" +"Color invertedColor = color.Inverted(); // 等价于 `new Color(0.7f, 0.6f, " +"0.1f)`\n" +"[/csharp]\n" +"[/codeblocks]" + msgid "" "Returns [code]true[/code] if this color and [param to] are approximately " "equal, by running [method @GlobalScope.is_equal_approx] on each component." @@ -20280,6 +23121,24 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Returns the color converted to the [url=https://en.wikipedia.org/wiki/" +"SRGB]sRGB[/url] color space. This method assumes the original color is in " +"the linear color space. See also [method srgb_to_linear] which performs the " +"opposite operation." +msgstr "" +"返回转换到 [url=https://en.wikipedia.org/wiki/SRGB]sRGB[/url] 色彩空间的颜" +"色。该方法假定原始颜色位于线性色彩空间中。另请参阅执行相反操作的 [method " +"srgb_to_linear]。" + +msgid "" +"Returns the color converted to the linear color space. This method assumes " +"the original color already is in the sRGB color space. See also [method " +"linear_to_srgb] which performs the opposite operation." +msgstr "" +"返回转换到线性色彩空间的颜色。该方法假定原始颜色已经在 sRGB 色彩空间中。另请" +"参见执行相反操作的 [method linear_to_srgb]。" + msgid "" "Returns the color converted to a 32-bit integer in ABGR format (each " "component is 8 bits). ABGR is the reversed version of the default RGBA " @@ -21020,6 +23879,15 @@ msgstr "" "返回与 [code]+[/code] 不存在时相同的值。单目 [code]+[/code] 没有作用,但有时" "可以使你的代码更具可读性。" +msgid "" +"Inverts the given color. This is equivalent to [code]Color.WHITE - c[/code] " +"or [code]Color(1 - c.r, 1 - c.g, 1 - c.b, 1 - c.a)[/code]. Unlike with " +"[method inverted], the [member a] component is inverted, too." +msgstr "" +"反转给定的颜色。这相当于 [code]Color.WHITE - c[/code] 或 [code]Color(1 - c." +"r, 1 - c.g, 1 - c.b, 1 - c.a)[/code]。与 [method inverted] 不同,[member a] " +"分量也将被反转。" + msgid "Color picker control." msgstr "取色器控件。" @@ -21042,13 +23910,39 @@ msgstr "" "将给定的颜色添加到颜色预设列表中。预设会显示在取色器中,可以被用户选择。\n" "[b]注意:[/b]预设列表仅适用于[i]这个[/i]取色器。" +msgid "" +"Adds the given color to a list of color recent presets so that it can be " +"picked later. Recent presets are the colors that were picked recently, a new " +"preset is automatically created and added to recent presets when you pick a " +"new color.\n" +"[b]Note:[/b] The recent presets list is only for [i]this[/i] color picker." +msgstr "" +"将给定的颜色添加到近期颜色预设列表中,以便以后可以选择它。近期预设是最近选择" +"的颜色,当选择新颜色时,会自动创建新的预设并将其添加到近期预设中。\n" +"[b]注意:[/b]近期预设列表仅适用于[i]这个[/i]取色器。" + msgid "" "Removes the given color from the list of color presets of this color picker." msgstr "从这个取色器的颜色预设列表中移除给定的颜色。" +msgid "" +"Removes the given color from the list of color recent presets of this color " +"picker." +msgstr "从这个取色器的颜色近期预设列表中移除给定的颜色。" + msgid "Returns the list of colors in the presets of the color picker." msgstr "返回取色器的预设颜色列表。" +msgid "Returns the list of colors in the recent presets of the color picker." +msgstr "返回取色器的近期预设中的颜色列表。" + +msgid "" +"If [code]true[/code], it's possible to add presets under Swatches. If " +"[code]false[/code], the button to add presets is disabled." +msgstr "" +"如果为 [code]true[/code],则可以在色板下添加预设。如果为 [code]false[/code]," +"添加预设的按钮将被禁用。" + msgid "The currently selected color." msgstr "当前选择的颜色。" @@ -21075,6 +23969,10 @@ msgstr "如果为 [code]true[/code],则十六进制颜色代码输入框可见 msgid "The shape of the color space view. See [enum PickerShapeType]." msgstr "色彩空间视图的形状。见 [enum PickerShapeType]。" +msgid "" +"If [code]true[/code], the Swatches and Recent Colors presets are visible." +msgstr "如果为 [code]true[/code],则色板和近期颜色预设可见。" + msgid "If [code]true[/code], the color sampler and color preview are visible." msgstr "如果为 [code]true[/code],则颜色采样器和颜色预览可见。" @@ -21096,6 +23994,28 @@ msgstr "允许使用红、绿、蓝滑块编辑颜色。" msgid "Allows editing the color with Hue/Saturation/Value sliders." msgstr "允许使用色相、饱和度、明度滑块编辑颜色。" +msgid "" +"Allows the color R, G, B component values to go beyond 1.0, which can be " +"used for certain special operations that require it (like tinting without " +"darkening or rendering sprites in HDR)." +msgstr "" +"允许颜色 R、G、B 分量值超过 1.0,这可用于某些需要它的特殊操作(例如在 HDR " +"中,着色而不变暗或渲染精灵)。" + +msgid "" +"Allows editing the color with Hue/Saturation/Lightness sliders.\n" +"OKHSL is a new color space similar to HSL but that better match perception " +"by leveraging the Oklab color space which is designed to be simple to use, " +"while doing a good job at predicting perceived lightness, chroma and hue.\n" +"[url=https://bottosson.github.io/posts/colorpicker/]Okhsv and Okhsl color " +"spaces[/url]" +msgstr "" +"允许使用色相/饱和度/亮度滑块编辑颜色。\n" +"OKHSL 是一种类似于 HSL 的新色彩空间,但通过利用设计简单易用的 Oklab 色彩空间" +"更好地匹配感知,同时在预测感知亮度、色度和色调方面做得很好。\n" +"[url=https://bottosson.github.io/posts/colorpicker/]Okhsv 和 Okhsl 色彩空间[/" +"url]" + msgid "HSV Color Model rectangle color space." msgstr "HSV 颜色模型矩形色彩空间。" @@ -21108,9 +24028,17 @@ msgstr "HSV 颜色模型圆形色彩空间。半径为饱和度。" msgid "HSL OK Color Model circle color space." msgstr "HSL OK 颜色模型圆形色彩空间。" +msgid "" +"The color space shape and the shape select button are hidden. Can't be " +"selected from the shapes popup." +msgstr "色彩空间形状和形状选择按钮被隐藏。不能从形状弹出窗口中选择。" + msgid "The width of the hue selection slider." msgstr "色相选择滑块的宽度。" +msgid "The minimum width of the color labels next to sliders." +msgstr "滑块旁颜色标签的最小宽度。" + msgid "The margin around the [ColorPicker]." msgstr "[ColorPicker] 周围的边距。" @@ -21143,6 +24071,17 @@ msgid "" "range." msgstr "该指示器用于指示颜色值在 0-1 范围之外。" +msgid "" +"The image displayed over the color box/circle (depending on the [member " +"picker_shape]), marking the currently selected color." +msgstr "" +"显示在颜色框/圆(取决于 [member picker_shape])上的图像,标记当前选择的颜色。" + +msgid "" +"Background panel for the color preview box (visible when the color is " +"translucent)." +msgstr "颜色预览框的背景面板(颜色为半透明时可见)。" + msgid "The icon for the screen color picker button." msgstr "屏幕取色器按钮的图标。" @@ -21158,6 +24097,22 @@ msgstr "矩形轮拾取器形状的图标。" msgid "Button that pops out a [ColorPicker]." msgstr "弹出 [ColorPicker] 的按钮。" +msgid "" +"Encapsulates a [ColorPicker] making it accessible by pressing a button. " +"Pressing the button will toggle the [ColorPicker] visibility.\n" +"See also [BaseButton] which contains common properties and methods " +"associated with this node.\n" +"[b]Note:[/b] By default, the button may not be wide enough for the color " +"preview swatch to be visible. Make sure to set [member Control." +"custom_minimum_size] to a big enough value to give the button enough space." +msgstr "" +"封装一个 [ColorPicker] 使其可以通过按下按钮访问。按下按钮将切换 " +"[ColorPicker] 的可见性。\n" +"另请参阅 [BaseButton],其中包含与该节点关联的通用属性和方法。\n" +"[b]注意:[/b]默认情况下,按钮的宽度可能不足以使颜色预览色板可见。确保将 " +"[member Control.custom_minimum_size] 设置为足够大的值,以便为按钮提供足够的空" +"间。" + msgid "" "Returns the [ColorPicker] that this node toggles.\n" "[b]Warning:[/b] This is a required internal node, removing and freeing it " @@ -21168,6 +24123,19 @@ msgstr "" "[b]警告:[/b]这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果你希望隐" "藏它或其所有子项,请使用其 [member CanvasItem.visible] 属性。" +msgid "" +"Returns the control's [PopupPanel] which allows you to connect to popup " +"signals. This allows you to handle events when the ColorPicker is shown or " +"hidden.\n" +"[b]Warning:[/b] This is a required internal node, removing and freeing it " +"may cause a crash. If you wish to hide it or any of its children, use their " +"[member Window.visible] property." +msgstr "" +"返回该控件的 [PopupPanel],它允许连接到其弹出信号。这允许在显示或隐藏 " +"ColorPicker 时处理事件。\n" +"[b]警告:[/b]这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果希望隐藏" +"它或它的任何子项,请使用它们的 [member Window.visible] 属性。" + msgid "" "If [code]true[/code], the alpha channel in the displayed [ColorPicker] will " "be visible." @@ -21285,14 +24253,113 @@ msgstr "" msgid "6-sided texture typically used in 3D rendering, optionally compressed." msgstr "6 面纹理,通常用于 3D 渲染,可选择压缩。" +msgid "" +"A cubemap that is loaded from a [code].ccube[/code] file. This file format " +"is internal to Godot; it is created by importing other image formats with " +"the import system. [CompressedCubemap] can use one of 4 compresson methods:\n" +"- Uncompressed (uncompressed on the GPU)\n" +"- Lossless (WebP or PNG, uncompressed on the GPU)\n" +"- Lossy (WebP, uncompressed on the GPU)\n" +"- VRAM Compressed (compressed on the GPU)\n" +"Only [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. " +"The [b]Lossless[/b] and [b]Lossy[/b] compression methods will reduce the " +"required storage on disk, but they will not reduce memory usage on the GPU " +"as the texture is sent to the GPU uncompressed.\n" +"Using [b]VRAM Compressed[/b] also improves loading times, as VRAM-compressed " +"textures are faster to load compared to textures using lossless or lossy " +"compression. VRAM compression can exhibit noticeable artifacts and is " +"intended to be used for 3D rendering, not 2D.\n" +"See [Cubemap] for a general description of cubemaps." +msgstr "" +"一种从 [code].ccube[/code] 文件加载的立方体贴图。这种文件格式是 Godot 内部使" +"用的;它是通过导入系统导入其他图像格式创建的。[CompressedCubemap] 可以使用 4 " +"种压缩方法中的一种:\n" +"- 无压缩(在 GPU 上不压缩)\n" +"- 无损(WebP 或 PNG,在 GPU 上不压缩)\n" +"- 有损(WebP,在 GPU 上不压缩)\n" +"- VRAM 压缩(在 GPU 上压缩)\n" +"只有 [b]VRAM 压缩[/b]实际上减少了 GPU 上的内存使用。[b]无损[/b]和[b]有损[/b]" +"压缩方法将减少磁盘上所需的存储空间,但它们不会减少 GPU 上的内存使用,因为纹理" +"未经压缩地被发送到 GPU。\n" +"使用 [b]VRAM 压缩[/b]还可以缩短加载时间,因为与使用无损或有损压缩的纹理相比," +"VRAM 压缩的纹理加载速度更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D " +"渲染,而不是 2D。\n" +"有关立方体贴图的一般描述,请参阅 [Cubemap]。" + msgid "" "Array of 6-sided textures typically used in 3D rendering, optionally " "compressed." msgstr "6 面纹理的数组,通常用于 3D 渲染,可选择压缩。" +msgid "" +"A cubemap array that is loaded from a [code].ccubearray[/code] file. This " +"file format is internal to Godot; it is created by importing other image " +"formats with the import system. [CompressedCubemapArray] can use one of 4 " +"compresson methods:\n" +"- Uncompressed (uncompressed on the GPU)\n" +"- Lossless (WebP or PNG, uncompressed on the GPU)\n" +"- Lossy (WebP, uncompressed on the GPU)\n" +"- VRAM Compressed (compressed on the GPU)\n" +"Only [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. " +"The [b]Lossless[/b] and [b]Lossy[/b] compression methods will reduce the " +"required storage on disk, but they will not reduce memory usage on the GPU " +"as the texture is sent to the GPU uncompressed.\n" +"Using [b]VRAM Compressed[/b] also improves loading times, as VRAM-compressed " +"textures are faster to load compared to textures using lossless or lossy " +"compression. VRAM compression can exhibit noticeable artifacts and is " +"intended to be used for 3D rendering, not 2D.\n" +"See [CubemapArray] for a general description of cubemap arrays." +msgstr "" +"一种从 [code].ccubearray[/code] 文件加载的立方体贴图数组。这种文件格式是 " +"Godot 内部使用的;它是通过导入系统导入其他图像格式创建的。" +"[CompressedCubemapArray] 可以使用 4 种压缩方法中的一种:\n" +"- 无压缩(在 GPU 上不压缩)\n" +"- 无损(WebP 或 PNG,在 GPU 上不压缩)\n" +"- 有损(WebP,在 GPU 上不压缩)\n" +"- VRAM 压缩(在 GPU 上压缩)\n" +"只有 [b]VRAM 压缩[/b]实际上减少了 GPU 上的内存使用。[b]无损[/b]和[b]有损[/b]" +"压缩方法将减少磁盘上所需的存储空间,但它们不会减少 GPU 上的内存使用,因为纹理" +"未经压缩地被发送到 GPU。\n" +"使用 [b]VRAM 压缩[/b]还可以缩短加载时间,因为与使用无损或有损压缩的纹理相比," +"VRAM 压缩的纹理加载速度更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D " +"渲染,而不是 2D。\n" +"有关立方体贴图数组的一般说明,请参阅 [CubemapArray]。" + msgid "Texture with 2 dimensions, optionally compressed." msgstr "二维纹理,可选择压缩。" +msgid "" +"A texture that is loaded from a [code].ctex[/code] file. This file format is " +"internal to Godot; it is created by importing other image formats with the " +"import system. [CompressedTexture2D] can use one of 4 compression methods " +"(including a lack of any compression):\n" +"- Uncompressed (uncompressed on the GPU)\n" +"- Lossless (WebP or PNG, uncompressed on the GPU)\n" +"- Lossy (WebP, uncompressed on the GPU)\n" +"- VRAM Compressed (compressed on the GPU)\n" +"Only [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. " +"The [b]Lossless[/b] and [b]Lossy[/b] compression methods will reduce the " +"required storage on disk, but they will not reduce memory usage on the GPU " +"as the texture is sent to the GPU uncompressed.\n" +"Using [b]VRAM Compressed[/b] also improves loading times, as VRAM-compressed " +"textures are faster to load compared to textures using lossless or lossy " +"compression. VRAM compression can exhibit noticeable artifacts and is " +"intended to be used for 3D rendering, not 2D." +msgstr "" +"一种从 [code].ctex[/code] 文件加载的纹理。这种文件格式是 Godot 内部使用的;它" +"是通过导入系统导入其他图像格式创建的。[CompressedTexture2D] 可以使用 4 种压缩" +"方法中的一种(包括没有任何压缩):\n" +"- 无压缩(在 GPU 上不压缩)\n" +"- 无损(WebP 或 PNG,在 GPU 上不压缩)\n" +"- 有损(WebP,在 GPU 上不压缩)\n" +"- VRAM 压缩(在 GPU 上压缩)\n" +"只有 [b]VRAM 压缩[/b]实际上减少了 GPU 上的内存使用。[b]无损[/b]和[b]有损[/b]" +"压缩方法将减少磁盘上所需的存储空间,但它们不会减少 GPU 上的内存使用,因为纹理" +"未经压缩地被发送到 GPU。\n" +"使用 [b]VRAM 压缩[/b]还可以缩短加载时间,因为与使用无损或有损压缩的纹理相比," +"VRAM 压缩的纹理加载速度更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D " +"渲染,而不是 2D。" + msgid "Loads the texture from the specified [param path]." msgstr "从指定的路径 [param path] 加载纹理。" @@ -21302,127 +24369,143 @@ msgstr "该 [CompressedTexture2D] 的文件路径,指向 [code].ctex[/code] msgid "Array of 2-dimensional textures, optionally compressed." msgstr "二维纹理的数组,可选择压缩。" +msgid "" +"A texture array that is loaded from a [code].ctexarray[/code] file. This " +"file format is internal to Godot; it is created by importing other image " +"formats with the import system. [CompressedTexture2DArray] can use one of 4 " +"compresson methods:\n" +"- Uncompressed (uncompressed on the GPU)\n" +"- Lossless (WebP or PNG, uncompressed on the GPU)\n" +"- Lossy (WebP, uncompressed on the GPU)\n" +"- VRAM Compressed (compressed on the GPU)\n" +"Only [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. " +"The [b]Lossless[/b] and [b]Lossy[/b] compression methods will reduce the " +"required storage on disk, but they will not reduce memory usage on the GPU " +"as the texture is sent to the GPU uncompressed.\n" +"Using [b]VRAM Compressed[/b] also improves loading times, as VRAM-compressed " +"textures are faster to load compared to textures using lossless or lossy " +"compression. VRAM compression can exhibit noticeable artifacts and is " +"intended to be used for 3D rendering, not 2D.\n" +"See [Texture2DArray] for a general description of texture arrays." +msgstr "" +"一种从 [code].ctexarray[/code] 文件加载的纹理数组。这种文件格式是 Godot 内部" +"使用的;它是通过导入系统导入其他图像格式创建的。[CompressedTexture2DArray] 可" +"以使用 4 种压缩方法中的一种:\n" +"- 无压缩(在 GPU 上不压缩)\n" +"- 无损(WebP 或 PNG,在 GPU 上不压缩)\n" +"- 有损(WebP,在 GPU 上不压缩)\n" +"- VRAM 压缩(在 GPU 上压缩)\n" +"只有 [b]VRAM 压缩[/b]实际上减少了 GPU 上的内存使用。[b]无损[/b]和[b]有损[/b]" +"压缩方法将减少磁盘上所需的存储空间,但它们不会减少 GPU 上的内存使用,因为纹理" +"未经压缩地被发送到 GPU。\n" +"使用 [b]VRAM 压缩[/b]还可以缩短加载时间,因为与使用无损或有损压缩的纹理相比," +"VRAM 压缩的纹理加载速度更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D " +"渲染,而不是 2D。\n" +"有关纹理数组的一般描述,请参阅 [Texture2DArray]。" + msgid "Texture with 3 dimensions, optionally compressed." msgstr "三维纹理,可选择压缩。" +msgid "" +"[CompressedTexture3D] is the VRAM-compressed counterpart of " +"[ImageTexture3D]. The file extension for [CompressedTexture3D] files is " +"[code].ctex3d[/code]. This file format is internal to Godot; it is created " +"by importing other image formats with the import system.\n" +"[CompressedTexture3D] uses VRAM compression, which allows to reduce memory " +"usage on the GPU when rendering the texture. This also improves loading " +"times, as VRAM-compressed textures are faster to load compared to textures " +"using lossless compression. VRAM compression can exhibit noticeable " +"artifacts and is intended to be used for 3D rendering, not 2D.\n" +"See [Texture3D] for a general description of 3D textures." +msgstr "" +"[CompressedTexture3D] 是 [ImageTexture3D] 的 VRAM 压缩对应物。" +"[CompressedTexture3D] 文件的文件扩展名为 [code].ctex3d[/code]。这种文件格式" +"是 Godot 内部使用的;它是通过导入系统导入其他图像格式创建的。\n" +"[CompressedTexture3D] 使用 VRAM 压缩,这可以在渲染纹理时减少 GPU 的内存使用" +"量。这也缩短了加载时间,因为与使用无损压缩的纹理相比,VRAM 压缩的纹理加载速度" +"更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D 渲染,而不是 2D。\n" +"有关 3D 纹理的一般描述,请参阅 [Texture3D]。" + msgid "The [CompressedTexture3D]'s file path to a [code].ctex3d[/code] file." msgstr "该 [CompressedTexture3D] 的文件路径,指向 [code].ctex3d[/code] 文件。" msgid "Base class for texture arrays that can optionally be compressed." msgstr "可压缩纹理数组的基类。" +msgid "" +"A texture array that is loaded from a [code].ctexarray[/code] file. This " +"file format is internal to Godot; it is created by importing other image " +"formats with the import system. [CompressedTexture2D] can use one of 4 " +"compresson methods:\n" +"- Uncompressed (uncompressed on the GPU)\n" +"- Lossless (WebP or PNG, uncompressed on the GPU)\n" +"- Lossy (WebP, uncompressed on the GPU)\n" +"- VRAM Compressed (compressed on the GPU)\n" +"Only [b]VRAM Compressed[/b] actually reduces the memory usage on the GPU. " +"The [b]Lossless[/b] and [b]Lossy[/b] compression methods will reduce the " +"required storage on disk, but they will not reduce memory usage on the GPU " +"as the texture is sent to the GPU uncompressed.\n" +"Using [b]VRAM Compressed[/b] also improves loading times, as VRAM-compressed " +"textures are faster to load compared to textures using lossless or lossy " +"compression. VRAM compression can exhibit noticeable artifacts and is " +"intended to be used for 3D rendering, not 2D." +msgstr "" +"一种从 [code].ctexarray[/code] 文件加载的纹理数组。这种文件格式是 Godot 内部" +"使用的;它是通过导入系统导入其他图像格式创建的。[CompressedTexture2D] 可以使" +"用 4 种压缩方法中的一种:\n" +"- 无压缩(在 GPU 上不压缩)\n" +"- 无损(WebP 或 PNG,在 GPU 上不压缩)\n" +"- 有损(WebP,在 GPU 上不压缩)\n" +"- VRAM 压缩(在 GPU 上压缩)\n" +"只有 [b]VRAM 压缩[/b]实际上减少了 GPU 上的内存使用。[b]无损[/b]和[b]有损[/b]" +"压缩方法将减少磁盘上所需的存储空间,但它们不会减少 GPU 上的内存使用,因为纹理" +"未经压缩地被发送到 GPU。\n" +"使用 [b]VRAM 压缩[/b]还可以缩短加载时间,因为与使用无损或有损压缩的纹理相比," +"VRAM 压缩的纹理加载速度更快。VRAM 压缩会表现出明显的伪影,并且它旨在用于 3D " +"渲染,而不是 2D。" + msgid "Loads the texture at [param path]." msgstr "从路径 [param path] 加载纹理。" msgid "The path the texture should be loaded from." msgstr "加载纹理所使用的路径。" +msgid "Concave polygon shape resource for 2D physics." +msgstr "用于 2D 物理的凹多边形形状资源。" + msgid "" -"2D concave polygon shape to be added as a [i]direct[/i] child of a " -"[PhysicsBody2D] or [Area2D] using a [CollisionShape2D] node. It is made out " -"of segments and is optimal for complex polygonal concave collisions. " -"However, it is not advised to use for [RigidBody2D] nodes. A " -"CollisionPolygon2D in convex decomposition mode (solids) or several convex " -"objects are advised for that instead. Otherwise, a concave polygon 2D shape " -"is better for static collisions.\n" -"The main difference between a [ConvexPolygonShape2D] and a " -"[ConcavePolygonShape2D] is that a concave polygon assumes it is concave and " -"uses a more complex method of collision detection, and a convex one forces " -"itself to be convex to speed up collision detection.\n" -"[b]Performance:[/b] Due to its complexity, [ConcavePolygonShape2D] is the " -"slowest collision shape to check collisions against. Its use should " -"generally be limited to level geometry. For convex geometry, using " -"[ConvexPolygonShape2D] will perform better. For dynamic physics bodies that " -"need concave collision, several [ConvexPolygonShape2D]s can be used to " -"represent its collision by using convex decomposition; see " -"[ConvexPolygonShape2D]'s documentation for instructions. However, consider " -"using primitive collision shapes such as [CircleShape2D] or " -"[RectangleShape2D] first.\n" -"[b]Warning:[/b] Using this shape for an [Area2D] (via a [CollisionShape2D] " -"node) may give unexpected results: the area will only detect collisions with " -"the segments in the [ConcavePolygonShape2D] (and not with any \"inside\" of " -"the shape, for example)." +"Concave polygon shape resource (also called \"trimesh\") for 3D physics." +msgstr "用于 3D 物理的凹多边形形状资源(也称为“trimesh”)。" + +msgid "" +"If set to [code]true[/code], collisions occur on both sides of the concave " +"shape faces. Otherwise they occur only along the face normals." msgstr "" -"使用 [CollisionShape2D] 节点作为 [PhysicsBody2D] 或 [Area2D] 的[i]直接[/i]子" -"节点添加的 2D 凹多边形形状。它由线段组成,最适合复杂的多边形凹面碰撞。但是," -"不建议用于 [RigidBody2D] 节点。建议改用凸分解模式(实体)的 " -"CollisionPolygon2D 或多个凸对象。否则,凹多边形 2D 形状更适合静态碰撞。\n" -"[ConvexPolygonShape2D] 和 [ConcavePolygonShape2D] 之间的主要区别在于,凹多边" -"形假设它是凹的,并使用更复杂的碰撞检测方法,而凸多边形强制自身成为凸面以加速" -"碰撞检测。\n" -"[b]性能:[/b]由于其复杂性,[ConcavePolygonShape2D] 是检查碰撞时最慢的碰撞形" -"状。它的使用通常应限于关卡几何。对于凸几何,使用 [ConvexPolygonShape2D] 会表" -"现更好。对于需要凹碰撞的动态物理实体,可以用几个 [ConvexPolygonShape2D] 来表" -"示它的碰撞,使用凸分解;有关说明,请参阅 [ConvexPolygonShape2D] 的文档。但" -"是,请首先考虑使用原始碰撞形状,例如 [CircleShape2D] 或 " -"[RectangleShape2D]。\n" -"[b]警告:[/b]将该形状用于 [Area2D](通过 [CollisionShape2D] 节点)可能会产生" -"意想不到的结果:该区域将仅检测与 [ConcavePolygonShape2D] 中的线段的碰撞(而非" -"任何诸如形状的“内部”)。" - -msgid "" -"The array of points that make up the [ConcavePolygonShape2D]'s line segments." -msgstr "组成 [ConcavePolygonShape2D] 线段的点的数组。" - -msgid "" -"3D concave polygon shape resource (also called \"trimesh\") to be added as a " -"[i]direct[/i] child of a [PhysicsBody3D] or [Area3D] using a " -"[CollisionShape3D] node. This shape is created by feeding a list of " -"triangles. Despite its name, [ConcavePolygonShape3D] can also store convex " -"polygon shapes. However, unlike [ConvexPolygonShape3D], " -"[ConcavePolygonShape3D] is [i]not[/i] limited to storing convex shapes " -"exclusively.\n" -"[b]Note:[/b] When used for collision, [ConcavePolygonShape3D] is intended to " -"work with static [PhysicsBody3D] nodes like [StaticBody3D] and will not work " -"with [CharacterBody3D] or [RigidBody3D] with a mode other than Static.\n" -"[b]Performance:[/b] Due to its complexity, [ConcavePolygonShape3D] is the " -"slowest collision shape to check collisions against. Its use should " -"generally be limited to level geometry. For convex geometry, using " -"[ConvexPolygonShape3D] will perform better. For dynamic physics bodies that " -"need concave collision, several [ConvexPolygonShape3D]s can be used to " -"represent its collision by using convex decomposition; see " -"[ConvexPolygonShape3D]'s documentation for instructions. However, consider " -"using primitive collision shapes such as [SphereShape3D] or [BoxShape3D] " -"first.\n" -"[b]Warning:[/b] Using this shape for an [Area3D] (via a [CollisionShape3D] " -"node, created e.g. by using the [i]Create Trimesh Collision Sibling[/i] " -"option in the [i]Mesh[/i] menu that appears when selecting a " -"[MeshInstance3D] node) may give unexpected results: the area will only " -"detect collisions with the triangle faces in the [ConcavePolygonShape3D] " -"(and not with any \"inside\" of the shape, for example); moreover it will " -"only detect all such collisions if [member backface_collision] is " -"[code]true[/code]." -msgstr "" -"使用 [CollisionShape3D] 节点时,添加为 [PhysicsBody3D] 或 [Area3D] 的[i]直接" -"[/i]子节点的 3D 凹多边形形状资源(也称为“trimesh”)。这个形状是通过输入一个三" -"角形列表创建的。尽管名称如此,[ConcavePolygonShape3D] 也可以存储凸多边形形" -"状。因而,与 [ConvexPolygonShape3D] 不同,[ConcavePolygonShape3D] [i]不[/i]仅" -"限于专门存储凸多边形。\n" -"[b]注意:[/b]当用于碰撞时,[ConcavePolygonShape3D] 旨在与 [StaticBody3D] 等静" -"态 [PhysicsBody3D] 节点一起使用,而不会与使用非静态模式的 [CharacterBody3D] " -"或 [RigidBody3D] 等一起使用。\n" -"[b]性能:[/b]由于其复杂性,[ConcavePolygonShape3D] 是检查碰撞时最慢的碰撞形" -"状。它的使用通常应限于关卡几何体。对于凸形几何体,使用 " -"[ConvexPolygonShape3D] 会表现更好。对于需要凸形碰撞的动态物理实体,可以用几" -"个 [ConvexPolygonShape3D] 通过凸形分解来表示它的碰撞;有关说明,请参阅 " -"[ConvexPolygonShape3D] 的文档。但是,请首先考虑使用原始碰撞形状,例如 " -"[SphereShape3D] 或 [BoxShape3D]。\n" -"[b]警告:[/b]将该形状用于 [Area3D](通过 [CollisionShape3D] 节点创建的,例如" -"通过使用选择 [MeshInstance3D] 节点时出现的[i]网格[/i]菜单中的[i]创建三角网格" -"碰撞同级[/i]选项)时可能会产生意想不到的结果:该区域将仅检测与 " -"[ConcavePolygonShape3D] 中的三角形面的碰撞(例如,并不会检测与形状的任何“内" -"部”的碰撞);此外,如果 [member backface_collision] 为 [code]true[/code],它" -"只会检测所有这种碰撞。" - -msgid "Returns the faces (an array of triangles)." -msgstr "返回面(三角形数组)。" - -msgid "Sets the faces (an array of triangles)." -msgstr "设置面(三角形数组)。" +"如果设置为 [code]true[/code],则碰撞会发生在凹形面的两侧。否则,它们只会沿着" +"面法线发生。" msgid "A twist joint between two 3D PhysicsBodies." msgstr "两个 3D PhysicsBody 之间的扭转关节。" +msgid "" +"The joint can rotate the bodies across an axis defined by the local x-axes " +"of the [Joint3D].\n" +"The twist axis is initiated as the X axis of the [Joint3D].\n" +"Once the Bodies swing, the twist axis is calculated as the middle of the x-" +"axes of the Joint3D in the local space of the two Bodies. See also " +"[Generic6DOFJoint3D]." +msgstr "" +"关节可以在 [Joint3D] 的局部 x 轴定义的轴上旋转实体。\n" +"扭转轴被初始化为 [Joint3D] 的 X 轴。\n" +"一旦实体摆动,扭转轴将被计算为两个实体的局部空间中 Joint3D 的 x 轴的中间。另" +"见 [Generic6DOFJoint3D]。" + +msgid "Returns the value of the specified parameter." +msgstr "返回指定参数的值。" + +msgid "Sets the value of the specified parameter." +msgstr "设置指定参数的值。" + msgid "" "The speed with which the swing or twist will take place.\n" "The higher, the faster." @@ -21438,15 +24521,28 @@ msgstr "定义两侧的摆动速度和扭转速度差异同步的速度。" msgid "" "The ease with which the joint starts to twist. If it's too low, it takes " "more force to start twisting the joint." -msgstr "关节开始扭曲的难易程度。如果太低,则需要更多的力才能开始扭转关节。" +msgstr "关节开始扭转的难易程度。如果太低,则需要更多的力才能开始扭转关节。" + +msgid "" +"Swing is rotation from side to side, around the axis perpendicular to the " +"twist axis.\n" +"The swing span defines, how much rotation will not get corrected along the " +"swing axis.\n" +"Could be defined as looseness in the [ConeTwistJoint3D].\n" +"If below 0.05, this behavior is locked." +msgstr "" +"摆动是围绕垂直于扭转轴的轴线,从一边到另一边的旋转。\n" +"摆动跨度定义了沿摆动轴旋转多少不会得到校正。\n" +"可以被定义为 [ConeTwistJoint3D] 中的松动。\n" +"如果低于 0.05,该行为将被锁定。" msgid "" "Twist is the rotation around the twist axis, this value defined how far the " "joint can twist.\n" "Twist is locked if below 0.05." msgstr "" -"扭曲是绕扭曲轴的旋转,此值定义了关节可以扭曲多远。\n" -"如果低于 0.05,则扭曲被锁定。" +"扭转是绕扭转轴的旋转,此值定义了关节可以扭转多远。\n" +"如果低于 0.05,则扭转被锁定。" msgid "Represents the size of the [enum Param] enum." msgstr "代表 [enum Param] 枚举的大小。" @@ -21454,28 +24550,232 @@ msgstr "代表 [enum Param] 枚举的大小。" msgid "Helper class to handle INI-style files." msgstr "用于处理 INI 样式文件的辅助类。" +msgid "" +"This helper class can be used to store [Variant] values on the filesystem " +"using INI-style formatting. The stored values are identified by a section " +"and a key:\n" +"[codeblock]\n" +"[section]\n" +"some_key=42\n" +"string_example=\"Hello World3D!\"\n" +"a_vector=Vector3(1, 0, 2)\n" +"[/codeblock]\n" +"The stored data can be saved to or parsed from a file, though ConfigFile " +"objects can also be used directly without accessing the filesystem.\n" +"The following example shows how to create a simple [ConfigFile] and save it " +"on disc:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Create new ConfigFile object.\n" +"var config = ConfigFile.new()\n" +"\n" +"# Store some values.\n" +"config.set_value(\"Player1\", \"player_name\", \"Steve\")\n" +"config.set_value(\"Player1\", \"best_score\", 10)\n" +"config.set_value(\"Player2\", \"player_name\", \"V3geta\")\n" +"config.set_value(\"Player2\", \"best_score\", 9001)\n" +"\n" +"# Save it to a file (overwrite if already exists).\n" +"config.save(\"user://scores.cfg\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// Create new ConfigFile object.\n" +"var config = new ConfigFile();\n" +"\n" +"// Store some values.\n" +"config.SetValue(\"Player1\", \"player_name\", \"Steve\");\n" +"config.SetValue(\"Player1\", \"best_score\", 10);\n" +"config.SetValue(\"Player2\", \"player_name\", \"V3geta\");\n" +"config.SetValue(\"Player2\", \"best_score\", 9001);\n" +"\n" +"// Save it to a file (overwrite if already exists).\n" +"config.Save(\"user://scores.cfg\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"This example shows how the above file could be loaded:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var score_data = {}\n" +"var config = ConfigFile.new()\n" +"\n" +"# Load data from a file.\n" +"var err = config.load(\"user://scores.cfg\")\n" +"\n" +"# If the file didn't load, ignore it.\n" +"if err != OK:\n" +" return\n" +"\n" +"# Iterate over all sections.\n" +"for player in config.get_sections():\n" +" # Fetch the data for each section.\n" +" var player_name = config.get_value(player, \"player_name\")\n" +" var player_score = config.get_value(player, \"best_score\")\n" +" score_data[player_name] = player_score\n" +"[/gdscript]\n" +"[csharp]\n" +"var score_data = new Godot.Collections.Dictionary();\n" +"var config = new ConfigFile();\n" +"\n" +"// Load data from a file.\n" +"Error err = config.Load(\"user://scores.cfg\");\n" +"\n" +"// If the file didn't load, ignore it.\n" +"if (err != Error.Ok)\n" +"{\n" +" return;\n" +"}\n" +"\n" +"// Iterate over all sections.\n" +"foreach (String player in config.GetSections())\n" +"{\n" +" // Fetch the data for each section.\n" +" var player_name = (String)config.GetValue(player, \"player_name\");\n" +" var player_score = (int)config.GetValue(player, \"best_score\");\n" +" score_data[player_name] = player_score;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"Any operation that mutates the ConfigFile such as [method set_value], " +"[method clear], or [method erase_section], only changes what is loaded in " +"memory. If you want to write the change to a file, you have to save the " +"changes with [method save], [method save_encrypted], or [method " +"save_encrypted_pass].\n" +"Keep in mind that section and property names can't contain spaces. Anything " +"after a space will be ignored on save and on load.\n" +"ConfigFiles can also contain manually written comment lines starting with a " +"semicolon ([code];[/code]). Those lines will be ignored when parsing the " +"file. Note that comments will be lost when saving the ConfigFile. This can " +"still be useful for dedicated server configuration files, which are " +"typically never overwritten without explicit user action.\n" +"[b]Note:[/b] The file extension given to a ConfigFile does not have any " +"impact on its formatting or behavior. By convention, the [code].cfg[/code] " +"extension is used here, but any other extension such as [code].ini[/code] is " +"also valid. Since neither [code].cfg[/code] nor [code].ini[/code] are " +"standardized, Godot's ConfigFile formatting may differ from files written by " +"other programs." +msgstr "" +"该辅助类可用于使用 INI 样式格式在文件系统上存储 [Variant] 值。存储的值由一个" +"小节和一个键标识:\n" +"[codeblock]\n" +"[section]\n" +"some_key=42\n" +"string_example=\"Hello World3D!\"\n" +"a_vector=Vector3(1, 0, 2)\n" +"[/codeblock]\n" +"存储的数据可以被保存到文件中或从文件中解析出来,尽管 ConfigFile 对象也可以直" +"接使用而无需访问文件系统。\n" +"以下示例显示了如何创建一个简单的 [ConfigFile] 并将其保存在磁盘上:\n" +"[codeblocks]\n" +"[gdscript]\n" +"# 创建新的 ConfigFile 对象。\n" +"var config = ConfigFile.new()\n" +"\n" +"# 存储一些值。\n" +"config.set_value(\"Player1\", \"player_name\", \"Steve\")\n" +"config.set_value(\"Player1\", \"best_score\", 10)\n" +"config.set_value(\"Player2\", \"player_name\", \"V3geta\")\n" +"config.set_value(\"Player2\", \"best_score\", 9001)\n" +"\n" +"# 将其保存到文件中(如果已存在则覆盖)。\n" +"config.save(\"user://scores.cfg\")\n" +"[/gdscript]\n" +"[csharp]\n" +"// 创建新的 ConfigFile 对象。\n" +"var config = new ConfigFile();\n" +"\n" +"// 存储一些值。\n" +"config.SetValue(\"Player1\", \"player_name\", \"Steve\");\n" +"config.SetValue(\"Player1\", \"best_score\", 10);\n" +"config.SetValue(\"Player2\", \"player_name\", \"V3geta\");\n" +"config.SetValue(\"Player2\", \"best_score\", 9001);\n" +"\n" +"// 将其保存到文件中(如果已存在则覆盖)。\n" +"config.Save(\"user://scores.cfg\");\n" +"[/csharp]\n" +"[/codeblocks]\n" +"该示例展示了如何加载上面的文件:\n" +"[codeblocks]\n" +"[gdscript]\n" +"var score_data = {}\n" +"var config = ConfigFile.new()\n" +"\n" +"# 从文件加载数据。\n" +"var err = config.load(\"user://scores.cfg\")\n" +"\n" +"# 如果文件没有加载,忽略它。\n" +"if err != OK:\n" +" return\n" +"\n" +"# 迭代所有小节。\n" +"for player in config.get_sections():\n" +" # 获取每个小节的数据。\n" +" var player_name = config.get_value(player, \"player_name\")\n" +" var player_score = config.get_value(player, \"best_score\")\n" +" score_data[player_name] = player_score\n" +"[/gdscript]\n" +"[csharp]\n" +"var score_data = new Godot.Collections.Dictionary();\n" +"var config = new ConfigFile();\n" +"\n" +"// 从文件加载数据。\n" +"Error err = config.Load(\"user://scores.cfg\");\n" +"\n" +"// 如果文件没有加载,忽略它。\n" +"if (err != Error.Ok)\n" +"{\n" +" return;\n" +"}\n" +"\n" +"// 迭代所有小节。\n" +"foreach (String player in config.GetSections())\n" +"{\n" +" // 获取每个小节的数据。\n" +" var player_name = (String)config.GetValue(player, \"player_name\");\n" +" var player_score = (int)config.GetValue(player, \"best_score\");\n" +" score_data[player_name] = player_score;\n" +"}\n" +"[/csharp]\n" +"[/codeblocks]\n" +"任何改变 ConfigFile 的操作,例如 [method set_value]、[method clear]、或 " +"[method erase_section],只会改变加载到内存中的内容。如果要将更改写入文件,则" +"必须使用 [method save]、[method save_encrypted]、或 [method " +"save_encrypted_pass] 保存更改。\n" +"请记住,小节和属性名称不能包含空格。保存和加载时将忽略空格后的任何内容。\n" +"ConfigFiles 还可以包含以分号([code];[/code])开头的手动编写的注释行。解析文" +"件时将忽略这些行。请注意,保存 ConfigFile 时注释将丢失。注释对于专用服务器配" +"置文件仍然很有用,如果没有明确的用户操作,这些文件通常永远不会被覆盖。\n" +"[b]注意:[/b]为 ConfigFile 指定的文件扩展名对其格式或行为没有任何影响。按照惯" +"例,此处使用 [code].cfg[/code] 扩展名,但 [code].ini[/code] 等任何其他扩展名" +"也有效。由于 [code].cfg[/code] 和 [code].ini[/code] 都不是标准化的格式," +"Godot 的 ConfigFile 格式可能与其他程序编写的文件不同。" + msgid "Removes the entire contents of the config." msgstr "移除配置的全部内容。" +msgid "" +"Obtain the text version of this config file (the same text that would be " +"written to a file)." +msgstr "获得该配置文件的文本版本(与写入文件的文本相同)。" + msgid "" "Deletes the specified section along with all the key-value pairs inside. " "Raises an error if the section does not exist." -msgstr "删除指定的部分以及内部的所有键值对。如果该节不存在,则会引发错误。" +msgstr "删除指定小节以及其中的所有键值对。如果该小节不存在,则会引发错误。" msgid "" "Deletes the specified key in a section. Raises an error if either the " "section or the key do not exist." -msgstr "删除部分中的指定键。如果该部分或键不存在,则会引发错误。" +msgstr "删除小节中的指定键。如果该小节或键不存在,则会引发错误。" msgid "" "Returns an array of all defined key identifiers in the specified section. " "Raises an error and returns an empty array if the section does not exist." msgstr "" -"返回指定部分中所有已定义键标识符的数组。如果该部分不存在,则会引发错误并返回" +"返回指定小节中所有已定义键标识符的数组。如果该小节不存在,则会引发错误并返回" "一个空数组。" msgid "Returns an array of all defined section identifiers." -msgstr "返回所有已定义节标识符的数组。" +msgstr "返回所有已定义小节的标识符的数组。" msgid "" "Returns the current value for the specified section and key. If either the " @@ -21483,15 +24783,15 @@ msgid "" "default] value. If [param default] is not specified or set to [code]null[/" "code], an error is also raised." msgstr "" -"返回指定部分和键的当前值。如果该部分或键不存在,则该方法返回后备值 [param " +"返回指定小节和键的当前值。如果该小节或键不存在,则该方法返回后备值 [param " "default]。如果未指定 [param default] 或将其设置为 [code]null[/code],则会引发" "一个错误。" msgid "Returns [code]true[/code] if the specified section exists." -msgstr "如果指定的部分存在,则返回 [code]true[/code]。" +msgstr "如果指定的小节存在,则返回 [code]true[/code]。" msgid "Returns [code]true[/code] if the specified section-key pair exists." -msgstr "如果指定的段键对存在,则返回 [code]true[/code]。" +msgstr "如果指定的小节-键对存在,则返回 [code]true[/code]。" msgid "" "Loads the config file specified as a parameter. The file's contents are " @@ -21567,9 +24867,9 @@ msgid "" "code] value deletes the specified key if it exists, and deletes the section " "if it ends up empty once the key has been removed." msgstr "" -"为指定节的指定键赋值。如果节或键不存在,则创建它们。如果指定的键存在,传递 " -"[code]null[/code] 值就会移除指定的键,如果键被移除后,键最终是空的,就会移除" -"节。" +"为指定小节的指定键赋值。如果小节或键不存在,则创建它们。如果指定的键存在,传" +"递 [code]null[/code] 值就会移除指定的键,如果键被移除后,小节最终是空的,就会" +"移除小节。" msgid "Dialog for confirmation of actions." msgstr "确认动作的对话框。" @@ -21625,6 +24925,34 @@ msgstr "" "容器的基础节点。[Container] 包含其他控件,并自动以某种方式排列它们。\n" "Control 可以继承该类来创建自定义的容器类。" +msgid "" +"Implement to return a list of allowed horizontal [enum Control.SizeFlags] " +"for child nodes. This doesn't technically prevent the usages of any other " +"size flags, if your implementation requires that. This only limits the " +"options available to the user in the Inspector dock.\n" +"[b]Note:[/b] Having no size flags is equal to having [constant Control." +"SIZE_SHRINK_BEGIN]. As such, this value is always implicitly allowed." +msgstr "" +"实现以返回子节点允许的水平 [enum Control.SizeFlags] 列表。这在技术上并不妨碍" +"任何其他大小标志的使用,如果你的实现需要这样做。这只会限制检查器停靠面板中用" +"户可用的选项。\n" +"[b]注意:[/b]没有大小标志等同于有 [constant Control.SIZE_SHRINK_BEGIN]。因" +"此,该值始终是隐式允许的。" + +msgid "" +"Implement to return a list of allowed vertical [enum Control.SizeFlags] for " +"child nodes. This doesn't technically prevent the usages of any other size " +"flags, if your implementation requires that. This only limits the options " +"available to the user in the Inspector dock.\n" +"[b]Note:[/b] Having no size flags is equal to having [constant Control." +"SIZE_SHRINK_BEGIN]. As such, this value is always implicitly allowed." +msgstr "" +"实现以返回子节点允许的垂直 [enum Control.SizeFlags] 列表。这在技术上并不妨碍" +"任何其他大小标志的使用,如果你的实现需要这样做。这只会限制检查器停靠面板中用" +"户可用的选项。\n" +"[b]注意:[/b]没有大小标志等同于有 [constant Control.SIZE_SHRINK_BEGIN]。因" +"此,该值始终是隐式允许的。" + msgid "" "Fit a child control in a given rect. This is mainly a helper for creating " "custom container classes." @@ -21641,6 +24969,11 @@ msgstr "子节点将要被排序时发出。" msgid "Emitted when sorting the children is needed." msgstr "需要对子节点进行排序时发出。" +msgid "" +"Notification just before children are going to be sorted, in case there's " +"something to process beforehand." +msgstr "在子节点将要被排序之前通知,以防有事情需要事先处理。" + msgid "" "Notification for when sorting the children, it must be obeyed immediately." msgstr "对子节点进行排序时的通知,必须立即服从。" @@ -21884,6 +25217,25 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"Virtual method to be implemented by the user. Returns the minimum size for " +"this control. Alternative to [member custom_minimum_size] for controlling " +"minimum size via code. The actual minimum size will be the max value of " +"these two (in each axis separately).\n" +"If not overridden, defaults to [constant Vector2.ZERO].\n" +"[b]Note:[/b] This method will not be called when the script is attached to a " +"[Control] node that already overrides its minimum size (e.g. [Label], " +"[Button], [PanelContainer] etc.). It can only be used with most basic GUI " +"nodes, like [Control], [Container], [Panel] etc." +msgstr "" +"由用户实现的虚方法。返回此控件的最小大小。替代 [member custom_minimum_size]," +"以用于通过代码控制最小尺寸。实际的最小尺寸将是这两者的最大值(分别在每个轴" +"上)。\n" +"如果未重写,则默认为 [constant Vector2.ZERO]。\n" +"[b]注意:[/b]当脚本被附加到已经覆盖其最小大小的 [Control] 节点(例如 " +"[Label]、[Button]、[PanelContainer] 等)时,该方法将不会被调用。它只能用于最" +"基本的 GUI 节点,如 [Control]、[Container]、[Panel] 等。" + msgid "" "Virtual method to be implemented by the user. Use this method to process and " "accept inputs on UI elements. See [method accept_event].\n" @@ -22070,6 +25422,17 @@ msgstr "" "[/csharp]\n" "[/codeblocks]" +msgid "" +"User defined BiDi algorithm override function.\n" +"Returns an [Array] of [Vector3i] text ranges and text base directions, in " +"the left-to-right order. Ranges should cover full source [param text] " +"without overlaps. BiDi algorithm will be used on each range separately." +msgstr "" +"用户定义的 BiDi 算法覆盖函数。\n" +"返回 [Vector3i] 文本范围和文本基础方向的 [Array],顺序为从左至右。这些范围应" +"该覆盖完整的来源文本 [param text],不应该存在重叠。BiDi 算法会对每个范围单独" +"应用。" + msgid "" "Marks an input event as handled. Once you accept an input event, it stops " "propagating, even to nodes listening to [method Node._unhandled_input] or " @@ -22078,6 +25441,77 @@ msgstr "" "将输入事件标记为已处理。一旦接受输入事件,传播就会停止,不会再传播到正在侦听 " "[method Node._unhandled_input] 和 [method Node._unhandled_key_input] 的节点。" +msgid "" +"Creates a local override for a theme [Color] with the specified [param " +"name]. Local overrides always take precedence when fetching theme items for " +"the control. An override can be removed with [method " +"remove_theme_color_override].\n" +"See also [method get_theme_color].\n" +"[b]Example of overriding a label's color and resetting it later:[/b]\n" +"[codeblocks]\n" +"[gdscript]\n" +"# Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"$MyLabel.add_theme_color_override(\"font_color\", Color(1, 0.5, 0))\n" +"# Reset the font color of the child label.\n" +"$MyLabel.remove_theme_color_override(\"font_color\")\n" +"# Alternatively it can be overridden with the default value from the Label " +"type.\n" +"$MyLabel.add_theme_color_override(\"font_color\", " +"get_theme_color(\"font_color\", \"Label\"))\n" +"[/gdscript]\n" +"[csharp]\n" +"// Given the child Label node \"MyLabel\", override its font color with a " +"custom value.\n" +"GetNode