diff --git a/doc/classes/Skeleton3D.xml b/doc/classes/Skeleton3D.xml
index b4c42ea399f..bc3782d1a02 100644
--- a/doc/classes/Skeleton3D.xml
+++ b/doc/classes/Skeleton3D.xml
@@ -126,18 +126,21 @@
+ Returns the pose position of the bone at [param bone_idx]. The returned [Vector3] is in the local coordinate space of the [Skeleton3D] node.
+ Returns the pose rotation of the bone at [param bone_idx]. The returned [Quaternion] is local to the bone with respect to the rotation of any parent bones.
+ Returns the pose scale of the bone at [param bone_idx].
@@ -265,6 +268,7 @@
+ Sets the pose position of the bone at [param bone_idx] to [param position]. [param position] is a [Vector3] describing a position local to the [Skeleton3D] node.
@@ -272,6 +276,7 @@
+ Sets the pose rotation of the bone at [param bone_idx] to [param rotation]. [param rotation] is a [Quaternion] describing a rotation in the bone's local coordinate space with respect to the rotation of any parent bones.
@@ -279,6 +284,7 @@
+ Sets the pose scale of the bone at [param bone_idx] to [param scale].
diff --git a/doc/translations/de.po b/doc/translations/de.po
new file mode 100644
index 00000000000..7536065eb42
--- /dev/null
+++ b/doc/translations/de.po
@@ -0,0 +1,19960 @@
+# German translation of the Godot Engine class reference.
+# Copyright (c) 2014-present Godot Engine contributors.
+# Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
+# This file is distributed under the same license as the Godot source code.
+#
+# Jaigskim , 2020.
+# So Wieso , 2020, 2022, 2023.
+# artism90 , 2020.
+# HugeGameArt , 2020.
+# Günther Bohn , 2020, 2021.
+# Rémi Verschelde , 2020.
+# Julian Pritzi , 2020.
+# Markus Lechner , 2020.
+# lmarz , 2020.
+# Helmut Hirtes , 2020.
+# Michal695 , 2020.
+# Dusk , 2020, 2021.
+# Aaron H , 2020.
+# Gehteuchimmer Nochnichtsan <31415card@web.de>, 2020, 2021.
+# GrauBlitZ , 2020.
+# Geometror , 2020, 2021.
+# Phil Ipp , 2020.
+# Bjarne Hiller , 2020, 2023.
+# Martin , 2021.
+# The Origin , 2021.
+# Daniel Plaster , 2021.
+# RoniPerson , 2021.
+# Badewu , 2021.
+# Linux User , 2021.
+# Independent-Eye , 2021.
+# Leon Wehrwein , 2021.
+# Ron Eric Hackländer , 2021.
+# Stephan Kerbl , 2021.
+# jmih03 , 2021.
+# spoadr , 2021.
+# Tim , 2021.
+# user , 2021.
+# Jummit , 2021, 2022.
+# Bastian , 2021.
+# KuhnChris , 2021.
+# Rémi Verschelde , 2021.
+# Antonio Noack , 2022.
+# , 2022, 2023.
+# Coxcopi70f00b67b61542fe , 2022.
+# Leon Marz , 2022.
+# Robin , 2022.
+# Andreas , 2022.
+# Christian Packenius , 2022.
+# Hannes Petersen <01zustrom.baklava@icloud.com>, 2022.
+# Hans Peter , 2022.
+# Tim , 2022.
+# Anonynonymouse , 2022.
+# Felix Bitsch , 2022.
+# Coxcopi , 2022.
+# Harusakii , 2022.
+# GadMas , 2022.
+# JodliDev , 2022.
+# co1inco , 2023.
+# Sorogu , 2023.
+# Haoyu Qiu , 2023.
+# Marco Koennecke , 2023.
+# Jan Werder , 2023.
+# Benno , 2023.
+# Mattis “EnergyArt” Flade , 2023.
+# Benedikt Wicklein , 2023.
+# HolonProduction , 2023.
+# dasTholo , 2023.
+# Ettore Atalan , 2023.
+# Arktikus , 2023.
+# marv1nb , 2023.
+# Rob G , 2023.
+# Joshiy13 , 2023.
+# Wuzzy , 2023.
+# Björn Reißig , 2023.
+# Cerno_b , 2023.
+# Cerno_b , 2023.
+# Janosch Lion , 2023.
+# Tobias Mohr , 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-11-09 22:40+0000\n"
+"Last-Translator: Tobias Mohr \n"
+"Language-Team: German \n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.2-dev\n"
+
+msgid "Description"
+msgstr "Beschreibung"
+
+msgid "Tutorials"
+msgstr "Tutorials"
+
+msgid "Properties"
+msgstr "Eigenschaften"
+
+msgid "Constructors"
+msgstr "Konstruktoren"
+
+msgid "Methods"
+msgstr "Methoden"
+
+msgid "Operators"
+msgstr "Operatoren"
+
+msgid "Theme Properties"
+msgstr "Theme-Eigenschaften"
+
+msgid "Signals"
+msgstr "Signale"
+
+msgid "Enumerations"
+msgstr "Enumerationen"
+
+msgid "Constants"
+msgstr "Konstanten"
+
+msgid "Property Descriptions"
+msgstr "Eigenschaften-Beschreibung"
+
+msgid "Constructor Descriptions"
+msgstr "Konstruktorbeschreibungen"
+
+msgid "Method Descriptions"
+msgstr "Methoden-Beschreibung"
+
+msgid "Operator Descriptions"
+msgstr "Operatorbeschreibungen"
+
+msgid "Theme Property Descriptions"
+msgstr "Theme-Eigenschaften Beschreibungen"
+
+msgid "Inherits:"
+msgstr "Erbt von:"
+
+msgid "Inherited By:"
+msgstr "Geerbt von:"
+
+msgid "(overrides %s)"
+msgstr "(überschreibt %s)"
+
+msgid "Default"
+msgstr "Default"
+
+msgid "Setter"
+msgstr "Setter"
+
+msgid "value"
+msgstr "Wert"
+
+msgid "Getter"
+msgstr "Getter"
+
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr "Diese Methode sollte bei Gebrauch überschrieben werden."
+
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr ""
+"Diese Methode löst keine Seiteneffekte aus. Variablen der betroffenen Instanz "
+"bleiben unverändert."
+
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr ""
+"Diese Methode nimmt eine beliebige Anzahl an Argumenten nach Ende der hier "
+"beschriebenen Argumente auf."
+
+msgid "This method is used to construct a type."
+msgstr "Diese Methode wird dazu verwendet, einen Typen zu konstruieren."
+
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr ""
+"Diese Methode benötigt keine Instanz zum Aufruf, sie kann direkt über den "
+"Klassennamen aufgerufen werden."
+
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr ""
+"Diese Methode beschreibt einen gültigen Operator für diesen Typ zur "
+"Verwendung als linksseitigen Operanden."
+
+msgid "This value is an integer composed as a bitmask of the following flags."
+msgstr ""
+"Dieser Wert ist ein Integer, zusammengesetzt als Bitmaske der folgenden Flags."
+
+msgid ""
+"There is currently no description for this class. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Es gibt derzeit keine Beschreibung für diese Klasse. Hilf uns in dem du :ref:"
+"`contributing one `!"
+
+msgid ""
+"There is currently no description for this signal. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für dieses Signal keine Beschreibung. Bitte helfen Sie uns, "
+"indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this annotation. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diese Annotation keine Beschreibung. Bitte helfen Sie "
+"uns, indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this property. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diese Eigenschaft keine Beschreibung. Bitte helfen Sie "
+"uns, indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this constructor. Please help us by :"
+"ref:`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diesen Constructor keine Beschreibung. Bitte helfen Sie "
+"uns, indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this method. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diese Methode keine Beschreibung. Bitte helfen Sie uns, "
+"indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this operator. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diesen Operator keine Beschreibung. Bitte helfen Sie uns, "
+"indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There is currently no description for this theme property. Please help us by :"
+"ref:`contributing one `!"
+msgstr ""
+"Zurzeit gibt es für diese Theme-Eigenschaft keine Beschreibung. Bitte helfen "
+"Sie uns, indem Sie :ref:` eine beitragen `!"
+
+msgid ""
+"There are notable differences when using this API with C#. See :ref:"
+"`doc_c_sharp_differences` for more information."
+msgstr ""
+"Es macht einen großen Unterschied, wenn man diese API mit C# verwendet. Mehr "
+"Informationen unter :ref:`doc_c_sharp_differences`."
+
+msgid "Built-in GDScript constants, functions, and annotations."
+msgstr "Eingebaute GDScript-Konstanten, -Funktionen und -Anmerkungen."
+
+msgid ""
+"A list of GDScript-specific utility functions and annotations accessible from "
+"any script.\n"
+"For the list of the global functions and constants see [@GlobalScope]."
+msgstr ""
+"Eine Liste von GDScript-spezifischen Hilfsfunktionen, auf die in jedem Skript "
+"zugegriffen werden kann.\n"
+"Für die Liste der globalen Funktionen und Konstanten siehe [@GlobalScope]."
+
+msgid "GDScript exports"
+msgstr "GDScript Exporte"
+
+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. Using [method Color8] "
+"instead of the standard [Color] constructor is useful when you need to match "
+"exact color values in an [Image].\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]\n"
+"[b]Note:[/b] Due to the lower precision of [method Color8] compared to the "
+"standard [Color] constructor, a color created with [method Color8] will "
+"generally not be equal to the same color created with the standard [Color] "
+"constructor. Use [method Color.is_equal_approx] for comparisons to avoid "
+"issues with floating-point precision error."
+msgstr ""
+"Gibt eine [Color] zurück, die aus roten ([param r8]), grünen ([param g8]), "
+"blauen ([param b8]) und optionalen Alpha ([param a8]) Integer-Kanälen "
+"besteht, die jeweils durch [code]255.0[/code] geteilt werden, um ihren "
+"endgültigen Wert zu erhalten. [method Color8] statt dem Standard [Color] "
+"Konstruktor zu verwenden ist nützlich, wenn exakte Farbwerte in einem [Image] "
+"getroffen werden sollen.\n"
+"[codeblock]\n"
+"var red = Color8(255, 0, 0) # entspricht Color(1, 0, 0)\n"
+"var dark_blue = Color8(0, 0, 51) # entspricht Color(0, 0, 0.2).\n"
+"var my_color = Color8(306, 255, 0, 102) # entspricht Color(1.2, 1, 0, 0.4).\n"
+"[/codeblock]\n"
+"[b]Anmerkung:[/b] Aufgrund der geringeren Genauigkeit von[method Color8] im "
+"Vergleich zum Standard [Color] Konstruktor ist eine Farbe die mit [method "
+"Color8] erzeugt wurde nicht gleich einer Farbe die mit dem Standard [Color] "
+"Konstruktor erzeugt wurde. Um Fehler aufgrund von Gleitkomma Präzision zu "
+"vermeiden, kann [method Color.is_equal_approx] verwendet werden."
+
+msgid ""
+"Asserts that the [param condition] is [code]true[/code]. If the [param "
+"condition] is [code]false[/code], an error is generated. When running from "
+"the editor, the running project will also be paused until you resume it. This "
+"can be used as a stronger form of [method @GlobalScope.push_error] for "
+"reporting errors to project developers or add-on users.\n"
+"An optional [param message] can be shown in addition to the generic "
+"\"Assertion failed\" message. You can use this to provide additional details "
+"about why the assertion failed.\n"
+"[b]Warning:[/b] For performance reasons, the code inside [method assert] is "
+"only executed in debug builds or when running the project from the editor. "
+"Don't include code that has side effects in an [method assert] call. "
+"Otherwise, the project will behave differently when exported in release "
+"mode.\n"
+"[codeblock]\n"
+"# Imagine we always want speed to be between 0 and 20.\n"
+"var speed = -10\n"
+"assert(speed < 20) # True, the program will continue.\n"
+"assert(speed >= 0) # False, the program will stop.\n"
+"assert(speed >= 0 and speed < 20) # You can also combine the two conditional "
+"statements in one check.\n"
+"assert(speed < 20, \"the speed limit is 20\") # Show a message.\n"
+"[/codeblock]"
+msgstr ""
+"Stellt sicher, dass [param condition] [code]true[/code] ist. Wenn [param "
+"condition] [code]false[/code] ist wird ein Fehler erzeugt. Wenn das Projekt "
+"vom Editor aus gestartet wurde wird es außerdem pausiert. Zum Fortfahren muss "
+"es vom Editor aus fortgesetzt werden.\n"
+"Das optionale Argument [param message] wird, zusätzlich zu der allgemeinen "
+"Fehlermeldung angezeigt. Das kann verwendet werden um genauere Informationen "
+"zum Grund des Fehlers zu geben.\n"
+"[b]Warnung:[/b] Der Code innerhalb von [method assert] wird nur in Debug-"
+"Builds oder beim Ausführen des Spiels vom Editor ausgeführt. Deswegen sollte "
+"kein Code mit Nebeneffekten (z.B.: ändern von Variablen) innerhalb der "
+"Argumente von [method assert] genutzt werden. Sonst wird sich das Projekt in "
+"exportierten Versionen anders verhalten als im Editor.\n"
+"[codeblock]\n"
+"# Angenommen, wir wollen immer eine Geschwindigkeit zwischen 0 und 20.\n"
+"var geschwindigkeit = -10\n"
+"assert(geschwindigkeit < 20) # Wahr, das Programm wird fortgesetzt\n"
+"assert(geschwindigkeit >= 0) # Falsch, das Programm wird gestoppt\n"
+"assert(geschwindigkeit >= 0 and geschwindigkeit < 20) # Zwei Aussagen können "
+"in einer Prüfung zusammengefasst werden\n"
+"assert(geschwindigkeit < 20, \"Geschwindigkeit = %f, aber die "
+"Geschwindigkeitsbegrenzung beträgt 20\" % geschwindigkeit) # Zeigt eine "
+"Nachricht mit klärenden Details\n"
+"[/codeblock]"
+
+msgid ""
+"Returns a single character (as a [String]) of the given Unicode code point "
+"(which is compatible with ASCII code).\n"
+"[codeblock]\n"
+"a = char(65) # a is \"A\"\n"
+"a = char(65 + 32) # a is \"a\"\n"
+"a = char(8364) # a is \"€\"\n"
+"[/codeblock]"
+msgstr ""
+"Gibt ein Zeichen als Zeichenkette ([String]) mit dem angegebenen Unicode-"
+"Codepunkt (der mit dem ASCII-Code kompatibel ist) zurück.\n"
+"[codeblock]\n"
+"a = char(65) # a ist \"A\"\n"
+"a = char(65 + 32) # a ist \"a\"\n"
+"a = char(8364) # a ist \"€\"\n"
+"[/codeblock]"
+
+msgid ""
+"[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.\n"
+"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 ""
+"[i]Veraltet[/i] Verwenden Sie stattdessen [Methode @GlobalScope."
+"type_convert].\n"
+"Konvertiert [param what] in [param type] auf die bestmögliche Weise. Der "
+"[param type] verwendet die [enum Variant.Type] Werte.\n"
+"[codeblock]\n"
+"var a = [4, 2.5, 1.2]\n"
+"print(a is Array) # Druckt true\n"
+"\n"
+"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n"
+"print(b) # Druckt [4, 2, 1]\n"
+"print(b is Array) # Druckt 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 ""
+"Konvertiert ein [param dictionary] (das zuvor mit [method inst_to_dict] "
+"erstellt wurde) zurück in eine Instanz. Nützlich für die Deserialisierung."
+
+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 ""
+"Gibt ein Array von Dictionaries zurück, das den aktuellen Aufruf-Stack "
+"darstellt. Siehe auch [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"
+"Ausgehend von [code]_ready()[/code] würde [code]bar()[/code] folgendes "
+"ausgeben:\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]Hinweis:[/b] Diese Funktion funktioniert nur, wenn die laufende Instanz "
+"mit einem Debugging-Server (d.h. einer Editor-Instanz) verbunden ist. Die "
+"[Methode get_stack] funktioniert nicht in Projekten, die im Release-Modus "
+"exportiert wurden, oder in Projekten, die im Debug-Modus exportiert wurden, "
+"wenn sie nicht mit einem Debugging-Server verbunden sind.\n"
+"[b]Hinweis:[/b] Der Aufruf dieser Funktion aus einem [Thread] wird nicht "
+"unterstützt. In diesem Fall wird ein leeres Array zurückgegeben."
+
+msgid ""
+"Returns the passed [param instance] converted to a Dictionary. Can be useful "
+"for serializing.\n"
+"[b]Note:[/b] Cannot be used to serialize objects with built-in scripts "
+"attached or objects allocated within built-in scripts.\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst_to_dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"Prints out:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, res://test.gd, bar]\n"
+"[/codeblock]"
+msgstr ""
+"Gibt die übergebene [param instance] in ein Dictionary konvertiert zurück. "
+"Kann für die Serialisierung nützlich sein.\n"
+"[b]Hinweis:[/b] kann nicht verwendet werden, um Objekte mit eingebetteten "
+"Skripten, oder Objekte, die in eingebetteten Skripten zugewiesen sind, zu "
+"serialisieren.\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst_to_dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"Druckt aus:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, 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 a runtime error.\n"
+"See also [method @GlobalScope.typeof], [method type_exists], [method Array."
+"is_same_typed] (and other [Array] methods)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param value] eine Instanz von [param "
+"type] ist. Der [param type]-Wert muss einer der folgenden sein:\n"
+"- Eine Konstante aus der Aufzählung [enum Variant.Type], zum Beispiel "
+"[Konstante TYPE_INT].\n"
+"- Eine von [Object] abgeleitete Klasse, die in [ClassDB] existiert, z. B. "
+"[Node].\n"
+"- Ein [Script] (Es kann eine beliebige Klasse verwendet werden, auch eine "
+"innere).\n"
+"Anders als der rechte Operand des [code]is[/code]-Operators kann [param type] "
+"ein nicht-konstanter Wert sein. Der [code]is[/code]-Operator unterstützt mehr "
+"Funktionen (wie typisierte Arrays) und ist performanter. Der Operator sollte "
+"anstelle dieser Methode verwendet werden, wenn keine dynamische "
+"Typüberprüfung benötigen benötigt wird.\n"
+"Beispiele:\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]Hinweis:[/b] Wenn [param value] und/oder [param type] freigegebene Objekte "
+"sind (siehe [method @GlobalScope.is_instance_valid]), oder [param type] keine "
+"der oben genannten Optionen ist, löst diese Methode einen Laufzeitfehler "
+"aus.\n"
+"Siehe auch [method @GlobalScope.typeof], [method type_exists], [method Array."
+"is_same_typed] (und andere [Array]-Methoden)."
+
+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 ""
+"Gibt die Länge der angegebenen Variante [param var] zurück. Die Länge kann "
+"die Anzahl der Zeichen eines [String], die Anzahl der Elemente eines "
+"beliebigen Array-Typs oder die Größe eines [Dictionary] sein. Für jeden "
+"anderen Variantentyp wird ein Laufzeitfehler erzeugt und die Ausführung "
+"abgebrochen.\n"
+"[Codeblock]\n"
+"a = [1, 2, 3, 4]\n"
+"len(a) # Gibt 4 zurück\n"
+"\n"
+"b = \"Hallo!\"\n"
+"len(b) # Gibt 6 zurück\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].\n"
+"[b]Note:[/b] If [member ProjectSettings.editor/export/"
+"convert_text_resources_to_binary] is [code]true[/code], [method @GDScript."
+"load] will not be able to read converted files in an exported project. If you "
+"rely on run-time loading of files present within the PCK, set [member "
+"ProjectSettings.editor/export/convert_text_resources_to_binary] to "
+"[code]false[/code]."
+msgstr ""
+"Gibt eine [Resource] aus dem Dateisystem zurück, die sich am absoluten Pfad "
+"[param path] befindet. Sofern sie nicht bereits an anderer Stelle "
+"referenziert ist (z.B. in einem anderen Skript oder in der Szene), wird die "
+"Ressource beim Funktionsaufruf von der Festplatte geladen, was zu einer "
+"leichten Verzögerung führen kann, insbesondere beim Laden großer Szenen. Um "
+"unnötige Verzögerungen beim mehrfachen Laden zu vermeiden, kann die Ressource "
+"entweder in einer Variablen gespeichert, oder die Methode [method preload] "
+"verwendet werden.\n"
+"[b]Hinweis:[/b] Ressourcenpfade können erhalten werden, indem mit der rechten "
+"Maustaste auf eine Ressource im Dateisystem-Dock geklickt und \"Pfad "
+"kopieren\" ausgewählt wird, oder indem die Datei aus dem Dateisystem-Dock in "
+"das aktuelle Skript gezogen wird.\n"
+"[codeblock]\n"
+"# Läd eine Szene mit dem Namen \"main\", die sich im Stammverzeichnis des "
+"Projekts befindet, und speichert sie in einer Variablen zwischen.\n"
+"var main = load(\"res://main.tscn\") # main wird eine PackedScene-Ressource "
+"enthalten.\n"
+"[/codeblock]\n"
+"[b]Wichtig:[/b] Der Pfad muss absolut sein. Ein relativer Pfad wird immer "
+"[code]null[/code] zurückgeben.\n"
+"Diese Funktion ist eine vereinfachte Version von [method ResourceLoader."
+"load], die für fortgeschrittenere Szenarien verwendet werden kann.\n"
+"[b]Hinweis:[/b] Dateien müssen zuerst in die Engine importiert werden, um sie "
+"mit dieser Funktion zu laden. Wenn [Image]s zur Laufzeit geladen werden "
+"sollen, kann [method Image.load] verwendet werden. Wenn Audiodateien "
+"importiert werden sollen, kann das in [member AudioStreamMP3.data] "
+"beschriebene Snippet verwendt werden.\n"
+"[b]Hinweis:[/b] Wenn [member ProjectSettings.editor/export/"
+"convert_text_resources_to_binary] [code]true[/code] ist, kann die [Methode "
+"@GDScript.load] keine konvertierten Dateien in einem exportierten Projekt "
+"lesen. Wenn zur Laufzeit Dateien aus einem PCK geladen werden müssen, muss "
+"[member ProjectSettings.editor/export/convert_text_resources_to_binary] auf "
+"[code]false[/code] gesetzt werden."
+
+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 ""
+"Liefert eine [Resource] aus dem Dateisystem, die sich unter dem Pfad [param "
+"path] befindet. Während der Laufzeit wird die Ressource geladen, wenn das "
+"Skript geparst wird. Diese Funktion fungiert quasi als Referenz auf diese "
+"Ressource. Zu beachten ist, dass diese Funktion einn konstanten [String] für "
+"[param path] erfordert. Wenn eine Ressource von einem dynamischen/variablen "
+"Pfad geladen werden soll, muss [method load] verwendet werden.\n"
+"[b]Hinweis:[/b] Ressourcenpfade können erhalten werden, indem mit der rechten "
+"Maustaste auf eine Ressource im Dateisystem-Dock geklickt und \"Pfad "
+"kopieren\" ausgewählt wird, oder indem die Datei aus dem Dateisystem-Dock in "
+"das aktuelle Skript gezogen wird.\n"
+"[codeblock]\n"
+"# Instanz einer Szene erstellen.\n"
+"var diamond = preload(\"res://diamond.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 ""
+"Funktioniert wie [method @GlobalScope.print], schließt aber den aktuellen "
+"Stack-Frame mit ein, wenn der Debugger eingeschaltet ist.\n"
+"Die Ausgabe auf der Konsole kann wie folgt aussehen:\n"
+"[codeblock]\n"
+"Test print\n"
+"Bei: res://test.gd:15:_process()\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Der Aufruf dieser Funktion aus einem [Thread] wird nicht "
+"unterstützt. In diesem Fall wird stattdessen die Thread-ID ausgegeben."
+
+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 ""
+"Druckt einen Stack-Trace an der aktuellen Codestelle. Siehe auch [method "
+"get_stack].\n"
+"Die Ausgabe auf der Konsole kann wie folgt aussehen:\n"
+"[codeblock]\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Diese Funktion funktioniert nur, wenn die laufende Instanz "
+"mit einem Debugging-Server (z.B. einer Editor-Instanz) verbunden ist. [method "
+"print_stack] funktioniert nicht in Projekten, die als Release exportiert "
+"wurden, oder in Projekten, die als Debug exportiert wurden, wenn keine "
+"Verbindung zu einem Debugging-Server besteht.\n"
+"[b]Hinweis:[/b] Der Aufruf dieser Funktion aus einem [Thread] wird nicht "
+"unterstützt. In diesem Fall wird stattdessen die Thread-ID ausgegeben."
+
+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() - 1, -1, -1):\n"
+" print(array[i])\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 ""
+"Gibt ein Array mit dem angegebenen Bereich zurück. Die Methode [method range] "
+"kann auf drei Arten aufgerufen werden:\n"
+"[code]range(n: int)[/code]: Beginnt bei 0, erhöht sich in Schritten von 1 und "
+"endet [i]vor[/i] [code]n[/code]. Das Argument [code]n[/code] ist [b]exklusiv[/"
+"b].\n"
+"[code]range(b: int, n: int)[/code]: Beginnt bei [code]b[/code], erhöht sich "
+"in Schritten von 1 und endet [i]vor[/i] [code]n[/code]. Das Argument [code]b[/"
+"code] ist [b]inklusiv[/b] und [code]n[/code] ist [b]exklusiv[/b].\n"
+"[code]range(b: int, n: int, s: int)[/code]: Beginnt bei [code]b[/code], "
+"erhöht/verringert sich um Schritte von [code]s[/code] und endet [i]vor[/i] "
+"[code]n[/code]. Das Argument [code]b[/code] ist [b]inklusiv[/b] und [code]n[/"
+"code] ist [b]exklusiv[/b]. Das Argument [code]s[/code] [b]kann[/b] negativ "
+"sein, aber nicht [code]0[/code]. Wenn [code]s[/code] gleich [code]0[/code] "
+"ist, wird eine Fehlermeldung ausgegeben.\n"
+"Die Methode [method range] wandelt alle Argumente vor der Verarbeitung in "
+"[int] um.\n"
+"[b]Hinweis:[/b] Gibt ein leeres Array zurück, wenn kein Wert die "
+"Werteinschränkung erfüllt (z. B. [code]range(2, 5, -1)[/code] oder "
+"[code]range(5, 5, 1)[/code]).\n"
+"Beispiele:\n"
+"[codeblock]\n"
+"print(range(4)) # Gibt [0, 1, 2, 3] aus\n"
+"print(range(2, 5)) # Gibt [2, 3, 4] aus\n"
+"print(range(0, 6, 2)) # Gibt [0, 2, 4] aus\n"
+"print(range(4, 1, -1)) # Gibt [4, 3, 2] aus\n"
+"[/codeblock]\n"
+"Um rückwärts über ein [Array] zu iterieren, benutze:\n"
+"[codeblock]\n"
+"var array = [3, 6, 9]\n"
+"for i in range(array.size() - 1, -1, -1):\n"
+" print(array[i - 1])\n"
+"[/codeblock]\n"
+"Ausgabe:\n"
+"[codeblock]\n"
+"9\n"
+"6\n"
+"3\n"
+"[/codeblock]\n"
+"Um über [float] Werte zu iterieren, können sie in der Schleife umgewandelt "
+"werden:\n"
+"[codeblock]\n"
+"for i in range (3, 0, -1):\n"
+" print(i / 10.0)\n"
+"[/codeblock]\n"
+"Ausgabe:\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 ""
+"Gibt [code]true[/code] zurück, wenn die gegebene von [Object] abgeleitete "
+"Klasse in [ClassDB] existiert. Es sollte beachtet werden, dass [Variant] "
+"Datentypen nicht in [ClassDB] registriert sind.\n"
+"[codeblock]\n"
+"type_exists(\"Sprite2D\") # Ergibt true\n"
+"type_exists(\"NichtExistenteKlasse\") # Ergibt 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 ""
+"Konstante, die beschreibt, wie oft der Durchmesser eines Kreises in seinen "
+"Umfang passt. Dies ist äquivalent zu [code]TAU / 2[/code] oder einer 180° "
+"Drehungen."
+
+msgid ""
+"The circle constant, the circumference of the unit circle in radians. This is "
+"equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
+msgstr ""
+"Die Kreiskonstante, der Umfang des Einheitskreises im Bogenmaß. Sie ist "
+"äquivalent mit [code]PI * 2[/code], oder einer 360°-Drehung."
+
+msgid ""
+"Positive floating-point infinity. This is the result of floating-point "
+"division when the divisor is [code]0.0[/code]. For negative infinity, use "
+"[code]-INF[/code]. Dividing by [code]-0.0[/code] will result in negative "
+"infinity if the numerator is positive, so dividing by [code]0.0[/code] is not "
+"the same as dividing by [code]-0.0[/code] (despite [code]0.0 == -0.0[/code] "
+"returning [code]true[/code]).\n"
+"[b]Warning:[/b] Numeric infinity is only a concept with floating-point "
+"numbers, and has no equivalent for integers. Dividing an integer number by "
+"[code]0[/code] will not result in [constant INF] and will result in a run-"
+"time error instead."
+msgstr ""
+"Positives Gleitkomma-Unendlich. Dies ist das Ergebnis einer "
+"Gleitkommadivision, wenn der Divisor [code]0.0[/code] ist. Für Negativ-"
+"Unendlich gibt es [code]-INF[/code]. Die Division durch [code]-0.0[/code] "
+"führt zu Negativ-Unendlichkeit, wenn der Zähler positiv ist, also ist die "
+"Division durch [code]0.0[/code] nicht dasselbe wie die Division durch "
+"[code]-0.0[/code] (obwohl [code]0.0 == -0.0[/code] gleich [code] true[/code] "
+"ist).\n"
+"[b]Warnung:[/b] Numerische Unendlichkeit ist nur ein Konzept für "
+"Fließkommazahlen und hat keine Entsprechung für Integer-Zahlen. Die Division "
+"einer ganzen Zahl durch [code]0[/code] ergibt kein [constant INF] und führt "
+"stattdessen zu einem Laufzeitfehler."
+
+msgid ""
+"\"Not a Number\", an invalid floating-point value. [constant NAN] has special "
+"properties, including that [code]!=[/code] always returns [code]true[/code], "
+"while other comparison operators always return [code]false[/code]. This is "
+"true even when comparing with itself ([code]NAN == NAN[/code] returns "
+"[code]false[/code] and [code]NAN != NAN[/code] returns [code]true[/code]). It "
+"is returned 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\", ein ungültiger Gleitkommawert. [constant NAN] hat besondere "
+"Eigenschaften, unter anderem, dass [code]!=[/code] immer [code]true[/code] "
+"zurückgibt, während andere Vergleichsoperatoren immer [code]false[/code] "
+"zurückgeben. Dies gilt auch, wenn sie mit sich selbst verglichen wird "
+"([code]NAN == NAN[/code] liefert [code]false[/code] und [code]NAN != NAN[/"
+"code] liefert [code]true[/code]). Es wird von einigen ungültigen Operationen "
+"zurückgegeben, wie z.B. der Division von Fließkommazahlen [code]0.0[/code] "
+"durch [code]0.0[/code].\n"
+"[b]Warnung:[/b] \"Not a Number\" ist nur ein Konzept für Fließkommazahlen und "
+"hat keine Entsprechung für ganze Zahlen. Die Division einer Ganzzahl [code]0[/"
+"code] durch [code]0[/code] ergibt nicht [Konstante NAN] und führt stattdessen "
+"zu einem Laufzeitfehler."
+
+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 ""
+"Definiert eine neue Kategory für die nachfolgenden exportierten "
+"Eigenschaften. Dies kann helfen, Eigenschaften im Inspektor-Panel besser zu "
+"organisieren.\n"
+"Siehe auch [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]Hinweis:[/b] Kategorien unterteilen im Inspektor normalerweise die "
+"Eigenschaften verschiedener Klassen (Node, Node2D, Sprite, etc.). Um "
+"Unklarheiten zu vermeiden, sollten lieber [annotation @export_group] und "
+"[annotation @export_subgroup] verwendet werden."
+
+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 ""
+"Exportiert eine [Color] Eigenschaft, ohne Veränderungen ihrer Transparenz "
+"([member Color.a]) zuzulassen.\n"
+"Siehe auch [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 @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 ""
+"Exportiert eine [String]-Eigenschaft als Pfad zu einem Ordner. Der Pfad wird "
+"auf den Projektordner und seine Unterordner beschränkt. Siehe [annotation "
+"@export_global_dir], um die Auswahl aus dem gesamten Dateisystem zu "
+"ermöglichen.\n"
+"Siehe auch [constant PROPERTY_HINT_DIR].\n"
+"[codeblock]\n"
+"@export_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an [int] or [String] property as an enumerated list of options. If the "
+"property is an [int], then the index of the value is stored, in the same "
+"order the values are provided. You can add explicit values using a colon. If "
+"the property is a [String], then the value is stored.\n"
+"See also [constant PROPERTY_HINT_ENUM].\n"
+"[codeblock]\n"
+"@export_enum(\"Warrior\", \"Magician\", \"Thief\") var character_class: int\n"
+"@export_enum(\"Slow:30\", \"Average:60\", \"Very Fast:200\") var "
+"character_speed: int\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String\n"
+"[/codeblock]\n"
+"If you want to set an initial value, you must specify it explicitly:\n"
+"[codeblock]\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String = "
+"\"Rebecca\"\n"
+"[/codeblock]\n"
+"If you want to use named GDScript enums, then use [annotation @export] "
+"instead:\n"
+"[codeblock]\n"
+"enum CharacterName {REBECCA, MARY, LEAH}\n"
+"@export var character_name: CharacterName\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]- oder [String]-Eigenschaft als nummerierte Liste von "
+"Optionen. Wenn die Eigenschaft vom Typ [int] ist, wird der Index des Wertes "
+"gespeichert. Die Indizes sind durch die Reihenfolge der gegeben Argumente "
+"gegeben. Mithilfe eines Doppelpunktes, kann ein spezieller Wert festgelegt "
+"werden. Ist die Eigenschaft vom Typ [String], wird der Wert direkt "
+"gespeichert.\n"
+"Siehe auch [constant PROPERTY_HINT_ENUM].\n"
+"[codeblock]\n"
+"@export_enum(\"Krieger\", \"Magier\", \"Dieb\") var character_class: int\n"
+"@export_enum(\"Langsam:30\", \"Durchschnittlich:60\", \"Sehr schnell:200\") "
+"var character_speed: int\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String\n"
+"[/codeblock]\n"
+"Soll ein Anfangswert genutzt werden, muss dieser explizit festgelegt werden:\n"
+"[codeblock]\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String = "
+"\"Rebecca\"\n"
+"[/codeblock]\n"
+"Um benannte GDScript Enums zu nutzen, kann [annotation @export] genutzt "
+"werden:\n"
+"[codeblock]\n"
+"enum CharacterName {REBECCA, MARY, LEAH}\n"
+"@export var character_name: CharacterName\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 ""
+"Exportiert eine Gleitkomma-Eigenschaft mit einem Easingeditor-Widget. "
+"Zusätzliche Hinweise können bereitgestellt werden, um das Verhalten des "
+"Widgets anzupassen. [code]\"attenuation\"[/code] spiegelt die Kurve, was die "
+"Bearbeitung von Easing-eigenschaften intuitiver macht. "
+"[code]\"positive_only\"[/code] begrenzt die Werte auf Werte, die größer oder "
+"gleich Null sind.\n"
+"Siehe auch [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 a [String] property as a path to a file. The path will be limited to "
+"the project folder and its subfolders. See [annotation @export_global_file] "
+"to allow picking from the entire filesystem.\n"
+"If [param filter] is provided, only matching files will be available for "
+"picking.\n"
+"See also [constant PROPERTY_HINT_FILE].\n"
+"[codeblock]\n"
+"@export_file var sound_effect_path: String\n"
+"@export_file(\"*.txt\") var notes_path: String\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [String]-Eigenschaft als Pfad zu einer Datei. Der Pfad wird "
+"auf den Projektordner und seine Unterordner beschränkt. Siehe [annotation "
+"@export_global_file] um die Auswahl aus dem gesamten Dateisystem zu "
+"ermöglichen.\n"
+"Wenn [param filter] angegeben wird, werden nur passende Dateien zur Auswahl "
+"angeboten.\n"
+"Siehe auch [constant PROPERTY_HINT_FILE].\n"
+"[codeblock]\n"
+"@export_file var sound_effect_file: String\n"
+"@export_file(\"*.txt\") var notes_file: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field. This allows to store several "
+"\"checked\" or [code]true[/code] values with one property, and comfortably "
+"select them from the Inspector dock.\n"
+"See also [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"You can add explicit values using a colon:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"You can also combine several flags:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [annotation @export_enum], the previous explicit value is "
+"not taken into account. In the following example, A is 16, B is 2, C is 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft as Bit-Flag-Feld. Dies erlaubt mehrere "
+"\"ausgewählte\" (oder [code]true[/code]) Werte in einer Eigenschaft zu "
+"speichern und bequem vom Inspektor-Panel auszuwählen.\n"
+"Siehe auch [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"Mithilfe eines Doppelpunktes können auch spezielle Werte festgelegt werden:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"Es ist außerdem möglich verschiedene Flags zu kombinieren:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Ein Flag-Wert muss zwischen [code]1[/code] und [code]2 ** 32 "
+"- 1[/code] liegen.\n"
+"[b]Hinweis:[/b] Im Gegensatz zu [annotation @export_enum], wird der letzte "
+"explizit festegelegte Wert nicht in betracht gezogen. Im folgenden Beispiel "
+"ist A 16, B 2 und C 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 2D navigation layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_navigation/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_2d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 2D Navigationsebenen. "
+"Das Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/2d_navigation/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_2D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_2d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 2D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 2D Physik-Ebenen. Das "
+"Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/2d_physics/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\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 ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 2D Render-Ebenen. Das "
+"Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/2d_render/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_2D_RENDER].\n"
+"[codeblock]\n"
+"@export_flags_2d_render var render_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D navigation layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_navigation/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 3D Navigations-"
+"Ebenen. Das Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/3d_navigation/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 3D Physik-Ebenen. Das "
+"Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/3d_physics/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_3D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D render layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_render/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_RENDER].\n"
+"[codeblock]\n"
+"@export_flags_3d_render var render_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]-Eigenschaft als Bit-Flag-Feld für 3D Render-Ebenen. Das "
+"Element im Inspektor-Pannel wird die in [member ProjectSettings."
+"layer_names/3d_render/layer_1] für die Ebenen festgelegten Namen nutzen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_3D_RENDER].\n"
+"[codeblock]\n"
+"@export_flags_3d_render var render_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for navigation avoidance "
+"layers. The widget in the Inspector dock will use the layer names defined in "
+"[member ProjectSettings.layer_names/avoidance/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_AVOIDANCE].\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine Ganzzahl-Eigenschaft als Bit-Flag-Feld für "
+"Navigationsvermeidungsebenen. Das Widget im Inspektor-Dock verwendet die in "
+"[member ProjectSettings.layer_names/avoidance/layer_1] definierten "
+"Layernamen.\n"
+"Siehe auch [constant PROPERTY_HINT_LAYERS_AVOIDANCE].\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a directory. The path can "
+"be picked from the entire filesystem. See [annotation @export_dir] to limit "
+"it to the project folder and its subfolders.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_DIR].\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [String]-Eigenschaft als absoluten Pfad zu einem Ordner. Der "
+"Pfad kann aus dem gesamten Dateisystem gewählt werden. Siehe [annotation "
+"@export_dir] um die Auswahl auf den Projekt-Ordner und seine Unterordner zu "
+"beschränken.\n"
+"Siehe auch [constant PROPERTY_HINT_GLOBAL_DIR].\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a file. The path can be "
+"picked from the entire filesystem. See [annotation @export_file] to limit it "
+"to the project folder and its subfolders.\n"
+"If [param filter] is provided, only matching files will be available for "
+"picking.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_FILE].\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@export_global_file(\"*.txt\") var notes_path: String\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [String]-Eigenschaft als absoluten Pfad zu einer Datei. Der "
+"Pfad kann aus dem gesammten Dateisystem gewählt werden. Siehe [annotation "
+"@export_file] um die Auswahl auf den Projekt-Ordner und seine Unterordner zu "
+"beschränken.\n"
+"Wenn [param filter] angegeben wird, werden nur passende Dateien zur Auswahl "
+"angeboten.\n"
+"Siehe auch [constant PROPERTY_HINT_GLOBAL_FILE].\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@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, then every following property will be 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 ""
+"Definieren Sie eine neue Gruppe für die folgenden exportierten Eigenschaften. "
+"Dies hilft bei der Organisation von Eigenschaften im Inspektor-Dock. Gruppen "
+"können mit einem optionalen [param prefix] hinzugefügt werden, so dass die "
+"Gruppe nur Eigenschaften berücksichtigt, die dieses Präfix haben. Die "
+"Gruppierung wird bei der ersten Eigenschaft, die kein Präfix hat, "
+"unterbrochen. Das Präfix wird auch aus dem Namen der Eigenschaft im Inspektor-"
+"Dock entfernt.\n"
+"Wenn kein [param prefix] angegeben wird, wird jede folgende Eigenschaft der "
+"Gruppe hinzugefügt. Die Gruppe endet, wenn die nächste Gruppe oder Kategorie "
+"definiert ist. Sie können das Ende einer Gruppe auch erzwingen, indem Sie "
+"diese Anmerkung mit leeren Strings für Parameter verwenden, "
+"[code]@export_group(\"\", \"\")[/code].\n"
+"Gruppen können nicht verschachtelt werden, verwenden Sie [annotation "
+"@export_subgroup], um Untergruppen innerhalb von Gruppen hinzuzufügen.\n"
+"Siehe auch [Konstante 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]"
+
+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 ""
+"Exportiert eine [String]-Eigenschaft mit einem großen [TextEdit]-Widget "
+"anstelle eines [LineEdit]. Dadurch werden mehrzeilige Inhalte möglich und die "
+"Bearbeitung großer Textmengen, die in der Eigenschaft gespeichert sind, "
+"erleichtert.\n"
+"Siehe auch [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]\n"
+"[b]Note:[/b] The type must be a native class or a globally registered script "
+"(using the [code]class_name[/code] keyword) that inherits [Node]."
+msgstr ""
+"Exportiert eine [NodePath]-Eigenschaft mit einem Filter für zulässige "
+"Knotentypen.\n"
+"Siehe auch [Konstante PROPERTY_HINT_NODE_PATH_VALID_TYPES].\n"
+"[codeblock]\n"
+"@export_node_path(\"Button\", \"TouchScreenButton\") var some_button\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Der Typ muss eine native Klasse oder ein global registriertes "
+"Skript (mit dem Schlüsselwort [code]class_name[/code]) sein, das [Node] erbt."
+
+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 ""
+"Exportiert eine [String]-Eigenschaft mit einem Platzhaltertext, der im Editor-"
+"Widget angezeigt wird, wenn kein Wert vorhanden ist.\n"
+"Siehe auch [constant PROPERTY_HINT_PLACEHOLDER_TEXT].\n"
+"[codeblock]\n"
+"@export_placeholder(\"Name in Kleinbuchstaben\") var character_id: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an [int] or [float] property as a range value. The range must be "
+"defined by [param min] and [param max], as well as an optional [param step] "
+"and a variety of extra hints. The [param step] defaults to [code]1[/code] for "
+"integer properties. For floating-point numbers this value depends on your "
+"[code]EditorSettings.interface/inspector/default_float_step[/code] setting.\n"
+"If hints [code]\"or_greater\"[/code] and [code]\"or_less\"[/code] are "
+"provided, the editor widget will not cap the value at range boundaries. The "
+"[code]\"exp\"[/code] hint will make the edited values on range to change "
+"exponentially. The [code]\"hide_slider\"[/code] hint will hide the slider "
+"element of the editor widget.\n"
+"Hints also allow to indicate the units for the edited value. Using "
+"[code]\"radians_as_degrees\"[/code] you can specify that the actual value is "
+"in radians, but should be displayed in degrees in the Inspector dock (the "
+"range values are also in degrees). [code]\"degrees\"[/code] allows to add a "
+"degree sign as a unit suffix (the value is unchanged). Finally, a custom "
+"suffix can be provided using [code]\"suffix:unit\"[/code], where \"unit\" can "
+"be any string.\n"
+"See also [constant PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+msgstr ""
+"Exportiert eine [int]- oder [float]-Eigenschaft als Bereichswert. Der Bereich "
+"muss durch [param min] und [param max] sowie einen optionalen [param step] "
+"und eine Reihe von zusätzlichen Hinweisen definiert werden. Der [param step] "
+"ist standardmäßig [code]1[/code] für Ganzzahl-Eigenschaften. Bei "
+"Fließkommazahlen hängt dieser Wert von Ihrer Einstellung [code]EditorSettings."
+"interface/inspector/default_float_step[/code] ab.\n"
+"Wenn die Hinweise [code]\"or_greater\"[/code] und [code]\"or_less\"[/code] "
+"angegeben sind, wird das Editor-Widget den Wert an Bereichsgrenzen nicht "
+"begrenzen. Der [code]\"exp\"[/code]-Hinweis bewirkt, dass sich die "
+"bearbeiteten Werte im Bereich exponentiell verändern. Der Hinweis "
+"[code]\"hide_slider\"[/code] blendet das Schiebereglerelement des Editor-"
+"Widgets aus.\n"
+"Hinweise erlauben auch die Angabe der Einheiten für den bearbeiteten Wert. "
+"Mit [code]\"radians_as_degrees\"[/code] können Sie angeben, dass der aktuelle "
+"Wert im Bogenmaß angegeben ist, aber im Inspektor-Dock in Grad angezeigt "
+"werden soll (die Werte des Bereichs sind ebenfalls in Grad angegeben). Mit "
+"[code]\"Grad\"[/code] kann man ein Gradzeichen als Einheitssuffix hinzufügen "
+"(der Wert bleibt unverändert). Schließlich kann ein eigenes Suffix mit "
+"[code]\"suffix:unit\"[/code] angegeben werden, wobei \"unit\" eine beliebige "
+"Zeichenkette sein kann.\n"
+"Siehe auch [Konstante PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+
+msgid ""
+"Define a new subgroup for the following exported properties. This helps to "
+"organize properties in the Inspector dock. Subgroups work exactly like "
+"groups, except they need a parent group to exist. See [annotation "
+"@export_group].\n"
+"See also [constant PROPERTY_USAGE_SUBGROUP].\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Subgroups cannot be nested, they only provide one extra level of "
+"depth. Just like the next group ends the previous group, so do the subsequent "
+"subgroups."
+msgstr ""
+"Definiert eine neue Untergruppe für die folgenden exportierten Eigenschaften. "
+"Dies hilft bei der Organisation von Eigenschaften im Inspektor-Panel. "
+"Untergruppen funktionieren genau wie Gruppen, mit dem Unterschied, dass sie "
+"eine übergeordnete Gruppe benötigen, um zu existieren. Siehe [annotation "
+"@export_group].\n"
+"Siehe auch [constant PROPERTY_USAGE_SUBGROUP].\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]Anmerkung:[/b] Untergruppen können nicht verschachtelt werden, sie bieten "
+"nur eine zusätzliche Ebene. Genauso wie die nächste Gruppe die vorherige "
+"Gruppe abschließt, tun dies auch die nachfolgenden Untergruppen."
+
+msgid ""
+"Mark the following property as assigned when the [Node] is ready. Values for "
+"these properties are not assigned immediately when the node is initialized "
+"([method Object._init]), and instead are computed and stored right before "
+"[method Node._ready].\n"
+"[codeblock]\n"
+"@onready var character_name: Label = $Label\n"
+"[/codeblock]"
+msgstr ""
+"Markiert die folgende Eigenschaft als zugewiesen, wenn der [Node] bereit ist. "
+"Die Werte für diese Eigenschaften werden nicht sofort bei der Initialisierung "
+"des Nodes ([method Object._init]) zugewiesen, sondern erst unmittelbar vor "
+"[method Node._ready] berechnet und gespeichert.\n"
+"[codeblock]\n"
+"@onready var character_name: Label = $Label\n"
+"[/codeblock]"
+
+msgid ""
+"Mark the following method for remote procedure calls. See [url=$DOCS_URL/"
+"tutorials/networking/high_level_multiplayer.html]High-level multiplayer[/"
+"url].\n"
+"If [param mode] is set as [code]\"any_peer\"[/code], allows any peer to call "
+"this RPC function. Otherwise, only the authority peer is allowed to call it "
+"and [param mode] should be kept as [code]\"authority\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], each of these "
+"modes respectively corresponds to the [constant MultiplayerAPI."
+"RPC_MODE_AUTHORITY] and [constant MultiplayerAPI.RPC_MODE_ANY_PEER] RPC "
+"modes. See [enum MultiplayerAPI.RPCMode]. If a peer that is not the authority "
+"tries to call a function that is only allowed for the authority, the function "
+"will not be executed. If the error can be detected locally (when the RPC "
+"configuration is consistent between the local and the remote peer), an error "
+"message will be displayed on the sender peer. Otherwise, the remote peer will "
+"detect the error and print an error there.\n"
+"If [param sync] is set as [code]\"call_remote\"[/code], the function will "
+"only be executed on the remote peer, but not locally. To run this function "
+"locally too, set [param sync] to [code]\"call_local\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], this is "
+"equivalent to setting [code]call_local[/code] to [code]true[/code].\n"
+"The [param transfer_mode] accepted values are [code]\"unreliable\"[/code], "
+"[code]\"unreliable_ordered\"[/code], or [code]\"reliable\"[/code]. It sets "
+"the transfer mode of the underlying [MultiplayerPeer]. See [member "
+"MultiplayerPeer.transfer_mode].\n"
+"The [param transfer_channel] defines the channel of the underlying "
+"[MultiplayerPeer]. See [member MultiplayerPeer.transfer_channel].\n"
+"The order of [param mode], [param sync] and [param transfer_mode] does not "
+"matter, but values related to the same argument must not be used more than "
+"once. [param transfer_channel] always has to be the 4th argument (you must "
+"specify 3 preceding arguments).\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Equivalent to @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+msgstr ""
+"Markieren Sie die folgende Methode für Remote Procedure Calls. Siehe "
+"[url=$DOCS_URL/tutorials/networking/high_level_multiplayer.html]High-level "
+"multiplayer[/url].\n"
+"Wenn [param mode] auf [code]\"any_peer\"[/code] gesetzt ist, kann jeder Peer "
+"diese RPC-Funktion aufrufen. Andernfalls darf nur der Autoritäts-Peer die "
+"Funktion aufrufen und [param mode] sollte auf [code]\"authority\"[/code] "
+"gesetzt werden. Wenn Funktionen als RPCs mit [method Node.rpc_config] "
+"konfiguriert werden, entspricht jeder dieser Modi jeweils den RPC-Modi "
+"[constant MultiplayerAPI.RPC_MODE_AUTHORITY] und [constant MultiplayerAPI."
+"RPC_MODE_ANY_PEER]. Siehe [enum MultiplayerAPI.RPCMode]. Wenn ein Peer, der "
+"nicht die Autorität ist, versucht, eine Funktion aufzurufen, die nur für die "
+"Autorität erlaubt ist, wird die Funktion nicht ausgeführt. Wenn der Fehler "
+"lokal erkannt werden kann (wenn die RPC-Konfiguration zwischen der lokalen "
+"und der entfernten Gegenstelle konsistent ist), wird eine Fehlermeldung auf "
+"der sendenden Gegenstelle angezeigt. Andernfalls wird die Gegenstelle den "
+"Fehler erkennen und dort eine Fehlermeldung ausgeben.\n"
+"Wenn [param sync] auf [code]\"call_remote\"[/code] gesetzt ist, wird die "
+"Funktion nur auf der Gegenstelle, aber nicht lokal ausgeführt. Um diese "
+"Funktion auch lokal auszuführen, setzen Sie [param sync] auf "
+"[code]\"call_local\"[/code]. Wenn Sie Funktionen als RPCs mit der [Methode "
+"Node.rpc_config] konfigurieren, entspricht dies der Einstellung von "
+"[code]call_local[/code] auf [code]true[/code].\n"
+"Der [param transfer_mode] akzeptiert die Werte [code]\"unreliable\"[/code], "
+"[code]\"unreliable_ordered\"[/code], oder [code]\"reliable\"[/code]. Es setzt "
+"den Übertragungsmodus des zugrunde liegenden [MultiplayerPeer]. Siehe [member "
+"MultiplayerPeer.transfer_mode].\n"
+"Der [param transfer_channel] definiert den Kanal des zugrunde liegenden "
+"[MultiplayerPeer]. Siehe [member MultiplayerPeer.transfer_channel].\n"
+"Die Reihenfolge von [param mode], [param sync] und [param transfer_mode] "
+"spielt keine Rolle, aber Werte, die sich auf dasselbe Argument beziehen, "
+"dürfen nicht mehr als einmal verwendet werden. [param transfer_channel] muss "
+"immer das 4. Argument sein (Sie müssen 3 vorangehende Argumente angeben).\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Äquivalent zu @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+
+msgid ""
+"Make a script with static variables to not persist after all references are "
+"lost. If the script is loaded again the static variables will revert to their "
+"default values."
+msgstr ""
+"Macht ein Skript mit statischen Variablen nicht persistent, nachdem alle "
+"Verweise verloren gegangen sind. Wenn das Skript erneut geladen wird, werden "
+"die statischen Variablen auf ihre Standardwerte zurückgesetzt."
+
+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 ""
+"Markiert die folgende Anweisung, um die angegebene [param warning] zu "
+"ignorieren. Siehe [url=$DOCS_URL/tutorials/scripting/gdscript/warning_system."
+"html]GDScript-Warnsystem[/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 "Globale Konstanten und Variablen."
+
+msgid ""
+"A list of global scope enumerated constants and built-in functions. This is "
+"all that resides in the globals, constants regarding error codes, keycodes, "
+"property hints, etc.\n"
+"Singletons are also documented here, since they can be accessed from "
+"anywhere.\n"
+"For the entries related to GDScript which can be accessed in any script see "
+"[@GDScript]."
+msgstr ""
+"Eine Liste globaler Konstanten und eingebauter Funktionen. Dabei handelt es "
+"sich um alles was global existiert, Konstanten zu Fehlercodes, Keycodes, "
+"Eigenschaftshinweise usw.\n"
+"Auch Singeltons sind hier dokumentiert, da auf sie von überall zugegriffen "
+"werden kann.\n"
+"Für die Einträge, die sich auf GDScript beziehen und auf die in jedem Skript "
+"zugegriffen werden kann, siehe [@GDScript]."
+
+msgid "Random number generation"
+msgstr "Zufallszahlengenerierung"
+
+msgid ""
+"Returns the absolute value of a [Variant] parameter [param x] (i.e. non-"
+"negative value). Supported types: [int], [float], [Vector2], [Vector2i], "
+"[Vector3], [Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"var a = abs(-1)\n"
+"# a is 1\n"
+"\n"
+"var b = abs(-1.2)\n"
+"# b is 1.2\n"
+"\n"
+"var c = abs(Vector2(-3.5, -4))\n"
+"# c is (3.5, 4)\n"
+"\n"
+"var d = abs(Vector2i(-5, -6))\n"
+"# d is (5, 6)\n"
+"\n"
+"var e = abs(Vector3(-7, 8.5, -3.8))\n"
+"# e is (7, 8.5, 3.8)\n"
+"\n"
+"var f = abs(Vector3i(-7, -8, -9))\n"
+"# f is (7, 8, 9)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method absf], [method absi], "
+"[method Vector2.abs], [method Vector2i.abs], [method Vector3.abs], [method "
+"Vector3i.abs], [method Vector4.abs], or [method Vector4i.abs]."
+msgstr ""
+"Gibt den absoluten Wert eines [Variant]-Parameters [param x] zurück (d.h. "
+"nicht-negativer Wert). Unterstützte Typen: [int], [float], [Vector2], "
+"[Vector2i], [Vector3], [Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"var a = abs(-1)\n"
+"# a is 1\n"
+"\n"
+"var b = abs(-1.2)\n"
+"# b is 1.2\n"
+"\n"
+"var c = abs(Vector2(-3.5, -4))\n"
+"# c is (3.5, 4)\n"
+"\n"
+"var d = abs(Vector2i(-5, -6))\n"
+"# d is (5, 6)\n"
+"\n"
+"var e = abs(Vector3(-7, 8.5, -3.8))\n"
+"# e is (7, 8.5, 3.8)\n"
+"\n"
+"var f = abs(Vector3i(-7, -8, -9))\n"
+"# f is (7, 8, 9)\n"
+"[/codeblock]\n"
+"[b]Anmerkung:[/b] Für eine bessere Typsicherheit sollten [method absf], "
+"[method absi], [method Vector2.abs], [method Vector2i.abs], [method Vector3."
+"abs], [method Vector3i.abs], [method Vector4.abs] oder [method Vector4i.abs] "
+"verwendet werden."
+
+msgid ""
+"Returns the absolute value of float parameter [param x] (i.e. positive "
+"value).\n"
+"[codeblock]\n"
+"# a is 1.2\n"
+"var a = absf(-1.2)\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den absoluten Wert des Gleitkommazahl-Parameters [param x] zurück (d.h. "
+"positiver Wert).\n"
+"[codeblock]\n"
+"# a ist 1.2\n"
+"a = abs(-1.2)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the absolute value of int parameter [param x] (i.e. positive value).\n"
+"[codeblock]\n"
+"# a is 1\n"
+"var a = absi(-1)\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den absoluten Wert des Ganzzahl-Parameters [param x] zurück (d.h. "
+"positiver Wert).\n"
+"[codeblock]\n"
+"# a ist 1\n"
+"a = abs(-1)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the arc cosine of [param x] in radians. Use to get the angle of "
+"cosine [param x]. [param x] will be clamped between [code]-1.0[/code] and "
+"[code]1.0[/code] (inclusive), in order to prevent [method acos] from "
+"returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"# c is 0.523599 or 30 degrees if converted with rad_to_deg(c)\n"
+"var c = acos(0.866025)\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Arkuskosinus von [param x] in Bogenmaß zurück. Verwenden Sie diese "
+"Funktion, um den Winkel des Kosinus [param x] zu erhalten. [param x] muss "
+"zwischen [code]-1.0[/code] und [code]1.0[/code] (inklusiv) liegen, sonst wird "
+"[method acos] [constant @GDScript.NAN] zurückgeben.\n"
+"[codeblock]\n"
+"# c ist 0,523599 oder 30 Grad, wenn mit rad2deg(s) umgerechnet\n"
+"var c = acos(0,866025)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) cosine of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's cosine "
+"in hyperbolic space if [param x] is larger or equal to 1. For values of "
+"[param x] lower than 1, it will return 0, in order to prevent [method acosh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = acosh(2) # Returns 1.31695789692482\n"
+"cosh(a) # Returns 2\n"
+"\n"
+"var b = acosh(-1) # Returns 0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Arkuskosinus von [param x] im Bogenmaß zurück. Verwenden Sie diese "
+"Funktion, um den Winkel des Kosinus [param x] zu erhalten, wenn [param x] "
+"größer oder gleich 1 ist. Für Werte kleiner 1 gibt die Funktion 0 zurück, um "
+"zu verhindern, dass [method acosh] den Wert [constant @GDScript.NAN] "
+"zurückgibt.\n"
+"[codeblock]\n"
+"var a = acosh(2) # Ergibt 1.31695789692482\n"
+"cosh(a) # Ergibt 2\n"
+"\n"
+"var b = acosh(-1) # Ergibt 0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the difference between the two angles, in the range of [code][-PI, "
+"+PI][/code]. When [param from] and [param to] are opposite, returns [code]-"
+"PI[/code] if [param from] is smaller than [param to], or [code]PI[/code] "
+"otherwise."
+msgstr ""
+"Gibt die Differenz zwischen den beiden Winkeln im Bereich von [code][-PI, +PI]"
+"[/code] zurück. Wenn [param from] und [param to] entgegengesetzt sind, wird "
+"[code]-PI[/code] zurückgegeben, wenn [param from] kleiner ist als [param to], "
+"oder [code]PI[/code] sonst."
+
+msgid ""
+"Returns the arc sine of [param x] in radians. Use to get the angle of sine "
+"[param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/"
+"code] (inclusive), in order to prevent [method asin] from returning [constant "
+"@GDScript.NAN].\n"
+"[codeblock]\n"
+"# s is 0.523599 or 30 degrees if converted with rad_to_deg(s)\n"
+"var s = asin(0.5)\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Arkussinus von [param x] im Bogenmaß zurück. Verwenden Sie diese "
+"Funktion, um den Sinuswinkel [param x] zu erhalten. [param x] wird auf den "
+"Wertebereich zwischen [code]-1.0[/code] und [code]1.0[/code] (einschließlich) "
+"begrenzt, damit [method asin] nicht den Wert [constant @GDScript.NAN] "
+"zurückgibt.\n"
+"[codeblock]\n"
+"# s ist 0.523599 or 30 Grad, wenn mit rad_to_deg(s) umgewandelt.\n"
+"var s = asin(0.5)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) sine of [param x], returning "
+"a value in radians. Use it to get the angle from an angle's sine in "
+"hyperbolic space.\n"
+"[codeblock]\n"
+"var a = asinh(0.9) # Returns 0.8088669356527824\n"
+"sinh(a) # Returns 0.9\n"
+"[/codeblock]"
+msgstr ""
+"Liefert den hyperbolischen Bogensinus (auch inverser Sinus genannt) von "
+"[param x] und gibt einen Wert im Bogenmaß zurück. Verwenden Sie diese "
+"Funktion, um den Winkel aus dem Sinus eines Winkels im hyperbolischen Raum zu "
+"ermitteln.\n"
+"[codeblock]\n"
+"var a = asinh(0.9) # Gibt 0.8088669356527824 zurück\n"
+"sinh(a) # Gibt 0.9 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle "
+"of tangent [code]y/x[/code]. To compute the value, the method takes into "
+"account the sign of both arguments in order to determine the quadrant.\n"
+"Important note: The Y coordinate comes first, by convention.\n"
+"[codeblock]\n"
+"var a = atan2(0, -1) # a is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+"Liefert den Arkustangens von [code]y/x[/code] im Bogenmaß zurück. Sie können "
+"damit den Winkel der Tangente [code]y/x[/code] bestimmen. Um den Wert zu "
+"berechnen, berücksichtigt die Methode das Vorzeichen beider Argumente, um den "
+"Quadranten zu bestimmen.\n"
+"Wichtiger Hinweis: Gemäß der Konvention wird die Y-Koordinate zuerst "
+"angegeben.\n"
+"[codeblock]\n"
+"a = atan2(0, -1) # a ist 3,141593\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) tangent of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's tangent "
+"in hyperbolic space if [param x] is between -1 and 1 (non-inclusive).\n"
+"In mathematics, the inverse hyperbolic tangent is only defined for -1 < "
+"[param x] < 1 in the real set, so values equal or lower to -1 for [param x] "
+"return negative [constant @GDScript.INF] and values equal or higher than 1 "
+"return positive [constant @GDScript.INF] in order to prevent [method atanh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # Returns 1.47221948958322\n"
+"tanh(a) # Returns 0.9\n"
+"\n"
+"var b = atanh(-2) # Returns -inf\n"
+"tanh(b) # Returns -1\n"
+"[/codeblock]"
+msgstr ""
+"Liefert den Tangens des hyperbolischen Bogens (auch invers genannt) von "
+"[param x] und gibt einen Wert im Bogenmaß zurück. Verwenden Sie diese "
+"Funktion, um den Winkel aus dem Tangens eines Winkels im hyperbolischen Raum "
+"zu ermitteln, wenn [param x] zwischen -1 und 1 liegt (nicht eingeschlossen).\n"
+"In der Mathematik ist der inverse hyperbolische Tangens nur für -1 < [param "
+"x] < 1 in der reellen Menge definiert, so dass Werte, die gleich oder kleiner "
+"als -1 für [param x] sind, negative [Konstante @GDScript.INF] und Werte, die "
+"gleich oder größer als 1 sind, positive [Konstante @GDScript.INF] "
+"zurückgeben, um zu verhindern, dass die [Methode atanh] [Konstante @GDScript."
+"NAN] zurückgibt.\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # Gibt 1.47221948958322 zurück\n"
+"tanh(a) # Gibt 0.9 zurück\n"
+"\n"
+"var b = atanh(-2) # Gibt -inf zurück\n"
+"tanh(b) # Gibt -1 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the derivative at the given [param t] on a one-dimensional "
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]Bézier curve[/url] "
+"defined by the given [param control_1], [param control_2], and [param end] "
+"points."
+msgstr ""
+"Gibt die Ableitung am angegebenen [param t] auf einer eindimensionalen "
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]Bézier-Kurve[/url] "
+"zurück, die durch die angegebenen [param control_1], [param control_2] und "
+"[param end] Punkte definiert ist."
+
+msgid ""
+"Returns the point at the given [param t] on a one-dimensional [url=https://en."
+"wikipedia.org/wiki/B%C3%A9zier_curve]Bézier curve[/url] defined by the given "
+"[param control_1], [param control_2], and [param end] points."
+msgstr ""
+"Gibt den Punkt am angegebenen [param t] auf einer eindimensionalen "
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]Bézier-Kurve[/url] "
+"zurück, die durch die angegebenen [param control_1], [param control_2] und "
+"[param end] Punkte definiert ist."
+
+msgid ""
+"Decodes a byte array back to a [Variant] value, without decoding objects.\n"
+"[b]Note:[/b] If you need object deserialization, see [method "
+"bytes_to_var_with_objects]."
+msgstr ""
+"Dekodiert ein Byte-Array zurück in einen [Variant]-Wert, ohne Objekte zu "
+"dekodieren.\n"
+"[b]Hinweis:[/b] Wenn Sie die Deserialisierung von Objekten benötigen, siehe "
+"[Methode bytes_to_var_with_objects]."
+
+msgid ""
+"Decodes a byte array back to a [Variant] value. Decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized object can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats (remote code execution)."
+msgstr ""
+"Dekodiert ein Byte-Array zurück zu einem [Variant]-Wert. Das dekodieren von "
+"Objekten ist erlaubt.\n"
+"[b]Warnung:[/b] Deserialisierte Objekte können Code enthalten, der ausgeführt "
+"wird. Verwenden Sie diese Option nicht, wenn das serialisierte Objekt aus "
+"nicht vertrauenswürdigen Quellen stammt, um potenzielle "
+"Sicherheitsbedrohungen zu vermeiden (entfernte Codeausführung)."
+
+msgid ""
+"Rounds [param x] upward (towards positive infinity), returning the smallest "
+"whole number that is not less than [param x].\n"
+"A type-safe version of [method ceil], returning a [float]."
+msgstr ""
+"Rundet [param x] nach oben auf und gibt die kleinste ganze Zahl zurück, die "
+"nicht kleiner ist als [param x].\n"
+"Eine typsichere Version von [method ceil], welche einen [float] zurückgibt."
+
+msgid ""
+"Rounds [param x] upward (towards positive infinity), returning the smallest "
+"whole number that is not less than [param x].\n"
+"A type-safe version of [method ceil], returning an [int]."
+msgstr ""
+"Rundet [param x] nach oben auf (in Richtung plus unendlich) und gibt die "
+"kleinste ganze Zahl zurück, die nicht kleiner als [param x] ist.\n"
+"Eine typsichere Version von [method ceil], die einen [int] zurückgibt."
+
+msgid ""
+"Clamps the [param value], returning a [Variant] not less than [param min] and "
+"not more than [param max]. Any values that can be compared with the less than "
+"and greater than operators will work.\n"
+"[codeblock]\n"
+"var a = clamp(-10, -1, 5)\n"
+"# a is -1\n"
+"\n"
+"var b = clamp(8.1, 0.9, 5.5)\n"
+"# b is 5.5\n"
+"\n"
+"var c = clamp(Vector2(-3.5, -4), Vector2(-3.2, -2), Vector2(2, 6.5))\n"
+"# c is (-3.2, -2)\n"
+"\n"
+"var d = clamp(Vector2i(7, 8), Vector2i(-3, -2), Vector2i(2, 6))\n"
+"# d is (2, 6)\n"
+"\n"
+"var e = clamp(Vector3(-7, 8.5, -3.8), Vector3(-3, -2, 5.4), Vector3(-2, 6, "
+"-4.1))\n"
+"# e is (-3, -2, 5.4)\n"
+"\n"
+"var f = clamp(Vector3i(-7, -8, -9), Vector3i(-1, 2, 3), Vector3i(-4, -5, "
+"-6))\n"
+"# f is (-4, -5, -6)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method clampf], [method clampi], "
+"[method Vector2.clamp], [method Vector2i.clamp], [method Vector3.clamp], "
+"[method Vector3i.clamp], [method Vector4.clamp], [method Vector4i.clamp], or "
+"[method Color.clamp]."
+msgstr ""
+"Klemmt den [param value] und gibt eine [Variant] zurück, die nicht kleiner "
+"als [param min] und nicht größer als [param max] ist. Alle Werte, die mit den "
+"Operatoren kleiner als und größer als verglichen werden können, "
+"funktionieren.\n"
+"[codeblock]\n"
+"var a = clamp(-10, -1, 5)\n"
+"# a is -1\n"
+"\n"
+"var b = clamp(8.1, 0.9, 5.5)\n"
+"# b ist 5.5\n"
+"\n"
+"var c = clamp(Vector2(-3.5, -4), Vector2(-3.2, -2), Vector2(2, 6.5))\n"
+"# c ist (-3.2, -2)\n"
+"\n"
+"var d = clamp(Vector2i(7, 8), Vector2i(-3, -2), Vector2i(2, 6))\n"
+"# d ist (2, 6)\n"
+"\n"
+"var e = clamp(Vector3(-7, 8.5, -3.8), Vector3(-3, -2, 5.4), Vector3(-2, 6, "
+"-4.1))\n"
+"# e ist (-3, -2, 5.4)\n"
+"\n"
+"var f = clamp(Vector3i(-7, -8, -9), Vector3i(-1, 2, 3), Vector3i(-4, -5, "
+"-6))\n"
+"# f ist (-4, -5, -6)\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Für eine bessere Typsicherheit verwenden Sie [method clampf], "
+"[method clampi], [method Vector2.clamp], [method Vector2i.clamp], [method "
+"Vector3.clamp], [method Vector3i.clamp], [method Vector4.clamp], [method "
+"Vector4i.clamp] oder [method Color.clamp]."
+
+msgid ""
+"Clamps the [param value], returning a [float] not less than [param min] and "
+"not more than [param max].\n"
+"[codeblock]\n"
+"var speed = 42.1\n"
+"var a = clampf(speed, 1.0, 20.5) # a is 20.5\n"
+"\n"
+"speed = -10.0\n"
+"var b = clampf(speed, -1.0, 1.0) # b is -1.0\n"
+"[/codeblock]"
+msgstr ""
+"Klammert den [param value] und gibt einen [float] zurück, der nicht kleiner "
+"als [param min] und nicht größer als [param max] ist.\n"
+"[codeblock]\n"
+"var speed = 42.1\n"
+"var a = clampf(speed, 1.0, 20.5) # a is 20.5\n"
+"\n"
+"speed = -10.0\n"
+"var b = clampf(speed, -1.0, 1.0) # b is -1.0\n"
+"[/codeblock]"
+
+msgid ""
+"Clamps the [param value], returning an [int] not less than [param min] and "
+"not more than [param max].\n"
+"[codeblock]\n"
+"var speed = 42\n"
+"var a = clampi(speed, 1, 20) # a is 20\n"
+"\n"
+"speed = -10\n"
+"var b = clampi(speed, -1, 1) # b is -1\n"
+"[/codeblock]"
+msgstr ""
+"Klammert den [param value] und gibt einen [int] zurück, der nicht kleiner als "
+"[param min] und nicht größer als [param max] ist.\n"
+"[codeblock]\n"
+"var speed= 42\n"
+"var a = clampi(speed, 1, 20) # a is 20\n"
+"\n"
+"speed = -10\n"
+"var b = clampi(speed, -1, 1) # b is -1\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the cosine of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"cos(PI * 2) # Returns 1.0\n"
+"cos(PI) # Returns -1.0\n"
+"cos(deg_to_rad(90)) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Cosinus des Winkels [param angle_rad] im Bogenmaß zurück.\n"
+"[codeblock]\n"
+"cos(PI * 2) # ergibt 1.0\n"
+"cos(PI) # ergibt -1.0\n"
+"cos(deg_to_rad(90)) # ergibt 0.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic cosine of [param x] in radians.\n"
+"[codeblock]\n"
+"print(cosh(1)) # Prints 1.543081\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den hyperbolischen Kosinus von [param x] in Bogenmaß zurück.\n"
+"[codeblock]\n"
+"print(cosh(1)) # Gibt 1.543081 aus\n"
+"[/codeblock]"
+
+msgid ""
+"Cubic interpolates between two values by the factor defined in [param weight] "
+"with [param pre] and [param post] values."
+msgstr ""
+"Cubic interpoliert zwischen zwei Werten mit dem in [param weight] definierten "
+"Faktor mit [param pre] und [param post] Werten."
+
+msgid ""
+"Cubic interpolates between two rotation values with shortest path by the "
+"factor defined in [param weight] with [param pre] and [param post] values. "
+"See also [method lerp_angle]."
+msgstr ""
+"Cubic interpoliert zwischen zwei Rotationswerten mit kürzestem Weg durch den "
+"in [param weight] definierten Faktor mit [param pre] und [param post] Werten. "
+"Siehe auch [method lerp_angle]."
+
+msgid ""
+"Cubic interpolates between two values by the factor defined in [param weight] "
+"with [param pre] and [param post] values.\n"
+"It can perform smoother interpolation than [method cubic_interpolate] by the "
+"time values."
+msgstr ""
+"Cubic interpoliert zwischen zwei Werten mit dem in [param weight] definierten "
+"Faktor mit [param pre] und [param post] Werten.\n"
+"Es kann eine glattere Interpolation als [method cubic_interpolate] nach den "
+"Zeitwerten durchführen."
+
+msgid "Converts from decibels to linear energy (audio)."
+msgstr "Konvertiert von Dezibel in lineare Energie (Audio)."
+
+msgid ""
+"Converts an angle expressed in degrees to radians.\n"
+"[codeblock]\n"
+"var r = deg_to_rad(180) # r is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+"Konvertiert einen Winkel vom Gradmaß ins Bogenmaß.\n"
+"[codeblock]\n"
+"var r = deg_to_rad(180) # r ist 3.141593\n"
+"[/codeblock]"
+
+msgid ""
+"Returns an \"eased\" value of [param x] based on an easing function defined "
+"with [param curve]. This easing function is based on an exponent. The [param "
+"curve] can be any floating-point number, with specific values leading to the "
+"following behaviors:\n"
+"[codeblock]\n"
+"- Lower than -1.0 (exclusive): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Between -1.0 and 0.0 (exclusive): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Between 0.0 to 1.0 (exclusive): Ease out\n"
+"- 1.0: Linear\n"
+"- Greater than 1.0 (exclusive): Ease in\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
+"See also [method smoothstep]. If you need to perform more advanced "
+"transitions, use [method Tween.interpolate_value]."
+msgstr ""
+"Gibt einen \"gelockerten\" Wert von [param x] zurück, der auf einer mit "
+"[param curve] definierten Lockerungsfunktion basiert. Diese "
+"Lockerungsfunktion basiert auf einem Exponenten. Die [param curve] kann eine "
+"beliebige Fließkommazahl sein, wobei bestimmte Werte zu den folgenden "
+"Verhaltensweisen führen:\n"
+"[codeblock]\n"
+"- Lower than -1.0 (exclusive): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Between -1.0 and 0.0 (exclusive): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Between 0.0 to 1.0 (exclusive): Ease out\n"
+"- 1.0: Linear\n"
+"- Greater than 1.0 (exclusive): Ease in\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
+"Siehe auch [Methode smoothstep]. Wenn Sie komplexere Übergänge durchführen "
+"möchten, verwenden Sie [method Tween.interpolate_value]."
+
+msgid ""
+"Returns a human-readable name for the given [enum Error] code.\n"
+"[codeblock]\n"
+"print(OK) # Prints 0\n"
+"print(error_string(OK)) # Prints OK\n"
+"print(error_string(ERR_BUSY)) # Prints Busy\n"
+"print(error_string(ERR_OUT_OF_MEMORY)) # Prints Out of memory\n"
+"[/codeblock]"
+msgstr ""
+"Gibt einen menschenlesbaren Namen für den angegebenen [enum Error]-Code "
+"zurück.\n"
+"[codeblock]\n"
+"print(OK) # Druckt 0\n"
+"print(error_string(OK)) # Druckt OK\n"
+"print(error_string(ERR_BUSY)) # Druckt Busy\n"
+"print(error_string(ERR_OUT_OF_MEMORY)) # Druckt Out of memory\n"
+"[/codeblock]"
+
+msgid ""
+"The natural exponential function. It raises the mathematical constant [i]e[/"
+"i] to the power of [param x] and returns it.\n"
+"[i]e[/i] has an approximate value of 2.71828, and can be obtained with "
+"[code]exp(1)[/code].\n"
+"For exponents to other bases use the method [method pow].\n"
+"[codeblock]\n"
+"var a = exp(2) # Approximately 7.39\n"
+"[/codeblock]"
+msgstr ""
+"Die natürliche Exponentialfunktion. Sie erhebt die mathematische Konstante "
+"[i]e[/i] in die Potenz von [param x] und gibt sie zurück.\n"
+"[i]e[/i] hat einen ungefähren Wert von 2,71828 und kann mit [code]exp(1)[/"
+"code] bestimmt werden.\n"
+"Für Exponenten anderer Basen verwenden Sie die Methode [method pow].\n"
+"[codeblock]\n"
+"var a = exp(2) # Circa 7.39\n"
+"[/codeblock]"
+
+msgid ""
+"Rounds [param x] downward (towards negative infinity), returning the largest "
+"whole number that is not more than [param x].\n"
+"A type-safe version of [method floor], returning a [float]."
+msgstr ""
+"Rundet [param x] nach unten (in Richtung negative Unendlichkeit) und gibt die "
+"größte ganze Zahl zurück, die nicht größer ist als [param x].\n"
+"Eine typsichere Version von [method floor], die einen [float] zurückgibt."
+
+msgid ""
+"Rounds [param x] downward (towards negative infinity), returning the largest "
+"whole number that is not more than [param x].\n"
+"A type-safe version of [method floor], returning an [int].\n"
+"[b]Note:[/b] This function is [i]not[/i] the same as [code]int(x)[/code], "
+"which rounds towards 0."
+msgstr ""
+"Rundet [param x] nach unten (in Richtung negative Unendlichkeit) und gibt die "
+"größte ganze Zahl zurück, die nicht größer ist als [param x].\n"
+"Eine typsichere Version von [method floor], die einen [int] zurückgibt.\n"
+"[b]Hinweis:[/b] Diese Funktion ist [i]nicht[/i] dasselbe wie [code]int(x)[/"
+"code], die gegen 0 rundet."
+
+msgid ""
+"Returns the floating-point remainder of [param x] divided by [param y], "
+"keeping the sign of [param x].\n"
+"[codeblock]\n"
+"var remainder = fmod(7, 5.5) # remainder is 1.5\n"
+"[/codeblock]\n"
+"For the integer remainder operation, use the [code]%[/code] operator."
+msgstr ""
+"Gibt den Divisionsrest von [param x] geteilt durch [param y] als Kommazahl "
+"zurück und behält dabei das Vorzeichen von [param x].\n"
+"[codeblock]\n"
+"var remainder = fmod(7, 5.5) # Rest ist 1.5\n"
+"[/codeblock]\n"
+"Verwenden Sie den [code]%[/code]-Operator, um den ganzzahligen Divisionsrest "
+"zu erhalten."
+
+msgid ""
+"Returns the floating-point modulus of [param x] divided by [param y], "
+"wrapping equally in positive and negative.\n"
+"[codeblock]\n"
+"print(\" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\")\n"
+"for i in 7:\n"
+" var x = i * 0.5 - 1.5\n"
+" print(\"%4.1f %4.1f | %4.1f\" % [x, fmod(x, 1.5), fposmod(x, "
+"1.5)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\n"
+"-1.5 -0.0 | 0.0\n"
+"-1.0 -1.0 | 0.5\n"
+"-0.5 -0.5 | 1.0\n"
+" 0.0 0.0 | 0.0\n"
+" 0.5 0.5 | 0.5\n"
+" 1.0 1.0 | 1.0\n"
+" 1.5 0.0 | 0.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Fließkommamodul von [param x] geteilt durch [param y] zurück, wobei "
+"positive und negative Werte gleichmäßig verteilt werden.\n"
+"[codeblock]\n"
+"print(\" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\")\n"
+"for i in 7:\n"
+" var x = i * 0.5 - 1.5\n"
+" print(\"%4.1f %4.1f | %4.1f\" % [x, fmod(x, 1.5), fposmod(x, "
+"1.5)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\n"
+"-1.5 -0.0 | 0.0\n"
+"-1.0 -1.0 | 0.5\n"
+"-0.5 -0.5 | 1.0\n"
+" 0.0 0.0 | 0.0\n"
+" 0.5 0.5 | 0.5\n"
+" 1.0 1.0 | 1.0\n"
+" 1.5 0.0 | 0.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the integer hash of the passed [param variable].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print(hash(\"a\")) # Prints 177670\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Print(GD.Hash(\"a\")); // Prints 177670\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt den ganzahligen Hash-Wert der übergebenen Variable [param variable] "
+"zurück.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print(hash(\"a\")) # Gibt 177670 aus\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Print(GD.Hash(\"a\")); // Gibt 177670 aus\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the [Object] that corresponds to [param instance_id]. All Objects "
+"have a unique instance ID. See also [method Object.get_instance_id].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var foo = \"bar\"\n"
+"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # Prints bar\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" public string Foo { get; set; } = \"bar\";\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" ulong id = GetInstanceId();\n"
+" var inst = (MyNode)InstanceFromId(Id);\n"
+" GD.Print(inst.Foo); // Prints bar\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt das [Objekt] zurück, das der [param instance_id] entspricht. Alle "
+"Objekte haben eine eindeutige Instanz-ID. Siehe auch [method Object."
+"get_instance_id].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var foo = \"bar\"\n"
+"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # Druckt bar\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" public string Foo { get; set; } = \"bar\";\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" ulong id = GetInstanceId();\n"
+" var inst = (MyNode)InstanceFromId(Id);\n"
+" GD.Print(inst.Foo); // Druckt bar\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [param from] and [param to], and the interpolated value "
+"specified in [param weight]. The returned value will be between [code]0.0[/"
+"code] and [code]1.0[/code] if [param weight] is between [param from] and "
+"[param to] (inclusive). If [param weight] is located outside this range, then "
+"an extrapolation factor will be returned (return value lower than [code]0.0[/"
+"code] or greater than [code]1.0[/code]). Use [method clamp] on the result of "
+"[method inverse_lerp] if this is not desired.\n"
+"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
+"var middle = lerp(20, 30, 0.75)\n"
+"# middle is now 27.5.\n"
+"\n"
+"# Now, we pretend to have forgotten the original ratio and want to get it "
+"back.\n"
+"var ratio = inverse_lerp(20, 30, 27.5)\n"
+"# ratio is now 0.75.\n"
+"[/codeblock]\n"
+"See also [method lerp], which performs the reverse of this operation, and "
+"[method remap] to map a continuous series of values to another."
+msgstr ""
+"Gibt einen Interpolations- oder Extrapolationsfaktor zurück, der den in "
+"[param from] und [param to] angegebenen Bereich und den in [param weight] "
+"angegebenen interpolierten Wert berücksichtigt. Der zurückgegebene Wert liegt "
+"zwischen [code]0.0[/code] und [code]1.0[/code], wenn [param weight] zwischen "
+"[param from] und [param to] (einschließlich) liegt. Liegt [param weight] "
+"außerhalb dieses Bereichs, so wird ein Extrapolationsfaktor zurückgegeben "
+"(Rückgabewert kleiner als [code]0.0[/code] oder größer als [code]1.0[/code]). "
+"Verwenden Sie [method clamp] auf das Ergebnis von [method inverse_lerp], wenn "
+"dies nicht gewünscht ist.\n"
+"[codeblock]\n"
+"# Das Interpolationsverhältnis in dem nachstehenden Aufruf \"lerp()\" beträgt "
+"0,75.\n"
+"var middle = lerp(20, 30, 0.75)\n"
+"# Die Mitte liegt jetzt bei 27,5.\n"
+"\n"
+"# Jetzt tun wir so, als hätten wir das ursprüngliche Verhältnis vergessen und "
+"wollen es wiederherstellen.\n"
+"var ratio = inverse_lerp(20, 30, 27.5)\n"
+"# Verhältnis beträgt nun 0,75.\n"
+"[/codeblock]\n"
+"Siehe auch [method lerp], die den umgekehrten Vorgang durchführt, und [method "
+"remap], um eine fortlaufende Reihe von Werten auf eine andere abzubilden."
+
+msgid ""
+"Returns [code]true[/code] if [param a] and [param b] are approximately equal "
+"to each other.\n"
+"Here, \"approximately equal\" means that [param a] and [param b] are within a "
+"small internal epsilon of each other, which scales with the magnitude of the "
+"numbers.\n"
+"Infinity values of the same sign are considered equal."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param a] und [param b] ungefähr gleich "
+"sind.\n"
+"\"Ungefähr gleich\" bedeutet hier, dass der Abstand zwischen [param a] und "
+"[param b] kleiner ist als ein sehr kleiner interner Wert Epsilon, welcher mit "
+"der Größe beider Zahlenwerte skaliert.\n"
+"Unendliche Zahlenwerte mit gleichem Vorzeichen werden als gleich betrachtet."
+
+msgid ""
+"Returns whether [param x] is a finite value, i.e. it is not [constant "
+"@GDScript.NAN], positive infinity, or negative infinity."
+msgstr ""
+"Gibt zurück, ob [param x] ein endlicher Wert ist, d. h. nicht [constant "
+"@GDScript.NAN], positiv unendlich oder negativ unendlich."
+
+msgid ""
+"Returns [code]true[/code] if [param x] is either positive infinity or "
+"negative infinity."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param x] entweder positiv unendlich oder "
+"negativ unendlich ist."
+
+msgid ""
+"Returns [code]true[/code] if the Object that corresponds to [param id] is a "
+"valid object (e.g. has not been deleted from memory). All Objects have a "
+"unique instance ID."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Objekt, das [param id] entspricht, "
+"gültig ist (z.B. wenn es noch nicht aus dem Speicher gelöscht wurde). Alle "
+"Objekte haben eine eindeutige Instanz-ID."
+
+msgid ""
+"Returns [code]true[/code] if [param instance] is a valid Object (e.g. has not "
+"been deleted from memory)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param instance] ein gültiges Objekt ist "
+"(z.B. nicht aus dem Speicher gelöscht wurde)."
+
+msgid ""
+"Returns [code]true[/code] if [param x] is a NaN (\"Not a Number\" or invalid) "
+"value."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param x] ein NaN-Wert ist (Not A Number "
+"oder ungültig)."
+
+msgid ""
+"Returns [code]true[/code], for value types, if [param a] and [param b] share "
+"the same value. Returns [code]true[/code], for reference types, if the "
+"references of [param a] and [param b] are the same.\n"
+"[codeblock]\n"
+"# Vector2 is a value type\n"
+"var vec2_a = Vector2(0, 0)\n"
+"var vec2_b = Vector2(0, 0)\n"
+"var vec2_c = Vector2(1, 1)\n"
+"is_same(vec2_a, vec2_a) # true\n"
+"is_same(vec2_a, vec2_b) # true\n"
+"is_same(vec2_a, vec2_c) # false\n"
+"\n"
+"# Array is a reference type\n"
+"var arr_a = []\n"
+"var arr_b = []\n"
+"is_same(arr_a, arr_a) # true\n"
+"is_same(arr_a, arr_b) # false\n"
+"[/codeblock]\n"
+"These are [Variant] value types: [code]null[/code], [bool], [int], [float], "
+"[String], [StringName], [Vector2], [Vector2i], [Vector3], [Vector3i], "
+"[Vector4], [Vector4i], [Rect2], [Rect2i], [Transform2D], [Transform3D], "
+"[Plane], [Quaternion], [AABB], [Basis], [Projection], [Color], [NodePath], "
+"[RID], [Callable] and [Signal].\n"
+"These are [Variant] reference types: [Object], [Dictionary], [Array], "
+"[PackedByteArray], [PackedInt32Array], [PackedInt64Array], "
+"[PackedFloat32Array], [PackedFloat64Array], [PackedStringArray], "
+"[PackedVector2Array], [PackedVector3Array] and [PackedColorArray]."
+msgstr ""
+"Gibt bei Werttypen [code]true[/code] zurück, wenn [param a] und [param b] "
+"denselben Wert haben. Gibt [code]true[/code] für Referenztypen zurück, wenn "
+"die Referenzen von [param a] und [param b] identisch sind.\n"
+"[codeblock]\n"
+"# Vector2 ist ein Wertetyp\n"
+"var vec2_a = Vector2(0, 0)\n"
+"var vec2_b = Vector2(0, 0)\n"
+"var vec2_c = Vector2(1, 1)\n"
+"is_same(vec2_a, vec2_a) # true\n"
+"is_same(vec2_a, vec2_b) # true\n"
+"is_same(vec2_a, vec2_c) # false\n"
+"\n"
+"# Array ist ein Referenztyp\n"
+"var arr_a = []\n"
+"var arr_b = []\n"
+"is_same(arr_a, arr_a) # true\n"
+"is_same(arr_a, arr_b) # false\n"
+"[/codeblock]\n"
+"Dies sind [Variant]-Werttypen: [code]null[/code], [bool], [int], [float], "
+"[String], [StringName], [Vector2], [Vector2i], [Vector3], [Vector3i], "
+"[Vector4], [Vector4i], [Rect2], [Rect2i], [Transform2D], [Transform3D], "
+"[Plane], [Quaternion], [AABB], [Basis], [Projection], [Color], [NodePath], "
+"[RID], [Callable] und [Signal].\n"
+"Dies sind [Variant]-Referenztypen: [Object], [Dictionary], [Array], "
+"[PackedByteArray], [PackedInt32Array], [PackedInt64Array], "
+"[PackedFloat32Array], [PackedFloat64Array], [PackedStringArray], "
+"[PackedVector2Array], [PackedVector3Array] und [PackedColorArray]."
+
+msgid ""
+"Returns [code]true[/code] if [param x] is zero or almost zero. The comparison "
+"is done using a tolerance calculation with a small internal epsilon.\n"
+"This function is faster than using [method is_equal_approx] with one value as "
+"zero."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param x] gleich Null oder fast Null ist. "
+"Der Vergleich wird mithilfe einer Toleranzberechnung anhand eines kleinen "
+"internen Epsilons durchgeführt.\n"
+"Diese Funktion ist schneller als die Verwendung von [method is_equal_approx] "
+"mit einem Übergabewert von Null."
+
+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 clamp] on the result of this function.\n"
+"Both [param from] and [param to] must be the same type. Supported types: "
+"[int], [float], [Vector2], [Vector3], [Vector4], [Color], [Quaternion], "
+"[Basis].\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]. See also [method remap] to map a continuous "
+"series of values to another.\n"
+"[b]Note:[/b] For better type safety, use [method lerpf], [method Vector2."
+"lerp], [method Vector3.lerp], [method Vector4.lerp], [method Color.lerp], "
+"[method Quaternion.slerp] or [method Basis.slerp]."
+msgstr ""
+"Interpoliert linear zwischen zwei Werten mit dem in [param weight] "
+"definierten Faktor. Um eine Interpolation durchzuführen, sollte [param "
+"weight] zwischen [code]0.0[/code] und [code]1.0[/code] (einschließlich) "
+"liegen. Werte außerhalb dieses Bereichs sind jedoch zulässig und können für "
+"eine [i]Extrapolation[/i] verwendet werden. Wenn dies nicht erwünscht ist, "
+"verwenden Sie [method clamp] für das Ergebnis dieser Funktion.\n"
+"Sowohl [param from] als auch [param to] müssen vom gleichen Typ sein. "
+"Unterstützte Typen: [int], [float], [Vector2], [Vector3], [Vector4], [Color], "
+"[Quaternion], [Basis].\n"
+"[codeblock]\n"
+"lerp(0, 4, 0.75) # Gibt 3.0 zurück\n"
+"[/codeblock]\n"
+"Siehe auch [method inverse_lerp], ignore-duplicate:die die umgekehrte "
+"Operation durchführt. Um eine erleichterte Interpolation mit [method lerp] "
+"durchzuführen, kombinieren Sie sie mit [method ease] oder [method "
+"smoothstep]. Siehe auch [method remap], um eine kontinuierliche Reihe von "
+"Werten auf eine andere abzubilden.\n"
+"[b]Hinweis:[/b] Für bessere Typsicherheit verwenden Sie [method lerpf], "
+"[method Vector2.lerp], [method Vector3.lerp], [method Vector4.lerp], [method "
+"Color.lerp], [method Quaternion.slerp] oder [method Basis.slerp]."
+
+msgid ""
+"Linearly interpolates between two angles (in radians) by a [param weight] "
+"value between 0.0 and 1.0.\n"
+"Similar to [method lerp], but interpolates correctly when the angles wrap "
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg_to_rad(0.0)\n"
+" var max_angle = deg_to_rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This function lerps through the shortest path between [param "
+"from] and [param to]. However, when these two angles are approximately "
+"[code]PI + k * TAU[/code] apart for any integer [code]k[/code], it's not "
+"obvious which way they lerp due to floating-point precision errors. For "
+"example, [code]lerp_angle(0, PI, weight)[/code] lerps counter-clockwise, "
+"while [code]lerp_angle(0, PI + 5 * TAU, weight)[/code] lerps clockwise."
+msgstr ""
+"Interpoliert linear zwischen zwei Winkeln (im Bogenmaß) durch einen [param "
+"weight]-Wert zwischen 0,0 und 1,0.\n"
+"Ähnlich wie [method lerp], interpoliert aber korrekt, wenn die Winkel die "
+"[Konstante @GDScript.TAU] umschließen. Um eine erleichterte Interpolation mit "
+"[method lerp_angle] durchzuführen, kombinieren Sie sie mit [method ease] oder "
+"[method smoothstep].\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg_to_rad(0.0)\n"
+" var max_angle = deg_to_rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Diese Funktion nimmt den kürzesten Weg zwischen [param from] "
+"und [param to]. Wenn diese beiden Winkel jedoch für eine beliebige ganze Zahl "
+"[code]k[/code] ungefähr [code]PI + k * TAU[/code] auseinander liegen, ist es "
+"aufgrund von Fließkomma-Präzisionsfehlern nicht offensichtlich, welchen Weg "
+"sie nehmen. Zum Beispiel dreht sich [code]lerp_angle(0, PI, weight)[/code] "
+"gegen den Uhrzeigersinn, während sich [code]lerp_angle(0, PI + 5 * TAU, "
+"weight)[/code] im Uhrzeigersinn dreht."
+
+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"
+"lerpf(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 ""
+"Interpoliert linear zwischen zwei Werten mit dem in [param weight] "
+"definierten Faktor. Um eine Interpolation durchzuführen, sollte [param "
+"weight] zwischen [code]0.0[/code] und [code]1.0[/code] (einschließlich) "
+"liegen. Werte außerhalb dieses Bereichs sind jedoch zulässig und können für "
+"eine [i]Extrapolation[/i] verwendet werden. Wenn dies nicht erwünscht ist, "
+"verwenden Sie [method clampf] auf das Ergebnis dieser Funktion.\n"
+"[codeblock]\n"
+"lerpf(0, 4, 0.75) # Gibt 3.0 zurück\n"
+"[/codeblock]\n"
+"Siehe auch [method inverse_lerp], ignore-duplicate:die die umgekehrte "
+"Operation durchführt. Um eine erleichterte Interpolation mit [method lerp] "
+"durchzuführen, kombinieren Sie sie mit [method ease] oder [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 "
+"linear).\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"# \"Slider\" refers to a node that inherits Range such as HSlider or "
+"VSlider.\n"
+"# Its range must be configured to go from 0 to 1.\n"
+"# Change the bus name if you'd like to change the volume of a specific bus "
+"only.\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear_to_db($Slider.value))\n"
+"[/codeblock]"
+msgstr ""
+"Konvertiert von linearer Energie in Dezibel (Audio). Dies kann verwendet "
+"werden, um Lautstärkeregler zu implementieren, die sich wie erwartet "
+"verhalten (da die Lautstärke nicht linear ist).\n"
+"[b]Beispiel:[/b]\n"
+"[codeblock]\n"
+"# \"Slider\" bezieht sich auf einen Knoten (Node), der Range wie HSlider oder "
+"VSlider erbt.\n"
+"# Sein Bereich muss so konfiguriert werden, dass er von 0 bis 1 reicht.\n"
+"# Ändern Sie den Busnamen, wenn Sie nur die Lautstärke eines bestimmten "
+"Busses ändern möchten.\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear_to_db($Slider.value))\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the [url=https://en.wikipedia.org/wiki/Natural_logarithm]natural "
+"logarithm[/url] of [param x] (base [url=https://en.wikipedia.org/wiki/"
+"E_(mathematical_constant)][i]e[/i][/url], with [i]e[/i] being approximately "
+"2.71828). 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. To use base 10 logarithm, use "
+"[code]log(x) / log(10)[/code].\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 ""
+"Liefert den [url=https://en.wikipedia.org/wiki/Natural_logarithm]natürlichen "
+"Logarithmus[/url] von [param x] (Basis [url=https://en.wikipedia.org/wiki/"
+"E_(mathematical_constant)][i]e[/i][/url], wobei [i]e[/i] ungefähr 2,71828 "
+"ist). Dies ist die Zeitspanne, die benötigt wird, um ein bestimmtes Niveau "
+"des kontinuierlichen Wachstums zu erreichen.\n"
+"[b]Hinweis:[/b] Dies ist nicht dasselbe wie die \"log\"-Funktion der meisten "
+"Taschenrechner, die einen Logarithmus zur Basis 10 verwendet. Um den "
+"Logarithmus zur Basis 10 zu verwenden, verwenden Sie [code]log(x) / log(10)[/"
+"code].\n"
+"[codeblock]\n"
+"log(10) # Gibt 2.302585 zurück\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Der Logarithmus von [code]0[/code] ergibt [code]-inf[/code], "
+"während negative Werte [code]-nan[/code] ergeben."
+
+msgid ""
+"Returns the maximum of the given numeric values. This function can take any "
+"number of arguments.\n"
+"[codeblock]\n"
+"max(1, 7, 3, -6, 5) # Returns 7\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den größten der angegebenen Werte zurück. Diese Funktion akzeptiert eine "
+"beliebige Anzahl an Argumenten.\n"
+"[codeblock]\n"
+"max(1, 7, 3, -6, 5) # Gibt 7 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the maximum of two [float] values.\n"
+"[codeblock]\n"
+"maxf(3.6, 24) # Returns 24.0\n"
+"maxf(-3.99, -4) # Returns -3.99\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Maximum zweier [float]-Werte zurück.\n"
+"[codeblock]\n"
+"maxf(3.6, 24) # Ergebnis: 24.0\n"
+"maxf(-3.99, -4) # Ergebnis: -3.99\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the maximum of two [int] values.\n"
+"[codeblock]\n"
+"maxi(1, 2) # Returns 2\n"
+"maxi(-3, -4) # Returns -3\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Maximum zweier [int]-Werte zurück\n"
+"[codeblock]\n"
+"maxi(1, 2) # Ergebnis: 2\n"
+"maxi(-3, -4) # Ergebnis: -3\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of the given numeric values. This function can take any "
+"number of arguments.\n"
+"[codeblock]\n"
+"min(1, 7, 3, -6, 5) # Returns -6\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den kleinsten der angegebenen Werte zurück. Diese Funktion akzeptiert "
+"eine beliebige Anzahl an Argumenten.\n"
+"[codeblock]\n"
+"min(1, 7, 3, -6, 5) # Ergebnis: -6\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of two [float] values.\n"
+"[codeblock]\n"
+"minf(3.6, 24) # Returns 3.6\n"
+"minf(-3.99, -4) # Returns -4.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Minimum zweier [float]-Werte zurück.\n"
+"[codeblock]\n"
+"minf(3.6, 24) # Ergebnis: 3.6\n"
+"minf(-3.99, -4) # Ergebnis: -4.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of two [int] values.\n"
+"[codeblock]\n"
+"mini(1, 2) # Returns 1\n"
+"mini(-3, -4) # Returns -4\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Minimum zweier [int]-Werte zurück.\n"
+"[codeblock]\n"
+"mini(1, 2) # Ergebnis: 1\n"
+"mini(-3, -4) # Ergebnis: -4\n"
+"[/codeblock]"
+
+msgid ""
+"Moves [param from] toward [param to] by the [param delta] amount. Will not go "
+"past [param to].\n"
+"Use a negative [param delta] value to move away.\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Returns 9\n"
+"move_toward(10, 5, 4) # Returns 6\n"
+"move_toward(5, 10, 9) # Returns 10\n"
+"move_toward(10, 5, -1.5) # Returns 11.5\n"
+"[/codeblock]"
+msgstr ""
+"Verschiebt [param from] nach [param to] um den Wert [param delta]. Der Wert "
+"[param to] wird dabei nicht überschritten.\n"
+"Verwenden Sie einen negativen [param delta] um sich von vom Ziel "
+"wegzubewegen.\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Ergebnis: 9\n"
+"move_toward(10, 5, 4) # Ergebnis: 6\n"
+"move_toward(5, 10, 9) # Ergebnis: 10\n"
+"move_toward(10, 5, -1.5) # Ergebnis: 11.5\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the smallest integer power of 2 that is greater than or equal to "
+"[param value].\n"
+"[codeblock]\n"
+"nearest_po2(3) # Returns 4\n"
+"nearest_po2(4) # Returns 4\n"
+"nearest_po2(5) # Returns 8\n"
+"\n"
+"nearest_po2(0) # Returns 0 (this may not be expected)\n"
+"nearest_po2(-1) # Returns 0 (this may not be expected)\n"
+"[/codeblock]\n"
+"[b]Warning:[/b] Due to its implementation, this method returns [code]0[/code] "
+"rather than [code]1[/code] for values less than or equal to [code]0[/code], "
+"with an exception for [param value] being the smallest negative 64-bit "
+"integer ([code]-9223372036854775808[/code]) in which case the [param value] "
+"is returned unchanged."
+msgstr ""
+"Gibt die kleinste ganzzahlige Zweierpotenz zurück, die größer oder gleich "
+"[param value] ist.\n"
+"[codeblock]\n"
+"nearest_po2(3) # Ergebnis: 4\n"
+"nearest_po2(4) # Ergebnis: 4\n"
+"nearest_po2(5) # Ergebnis: 8\n"
+"\n"
+"nearest_po2(0) # Ergebnis: 0 (ggf. unerwartet)\n"
+"nearest_po2(-1) # Ergebnis: 0 (ggf. unerwartet)\n"
+"[/codeblock]\n"
+"[b]WARNUNG:[/b] Aufgrund der Art und Weise, wie sie implementiert ist, gibt "
+"diese Funktion [code]0[/code] und nicht [code]1[/code] bei Werten kleiner "
+"gleich [code]0[/code] zurück. Eine Ausnahme ergibt sich, wenn [param value] "
+"die kleinstmögliche negative 64-bit Ganzzahl ([code]-9223372036854775808[/"
+"code]) annimmt. In diesem Fall wird [param value] unverändert zurückgegeben."
+
+msgid ""
+"Wraps [param value] between [code]0[/code] and the [param length]. If the "
+"limit is reached, the next value the function returns is decreased to the "
+"[code]0[/code] side or increased to the [param length] side (like a triangle "
+"wave). If [param length] is less than zero, it becomes positive.\n"
+"[codeblock]\n"
+"pingpong(-3.0, 3.0) # Returns 3.0\n"
+"pingpong(-2.0, 3.0) # Returns 2.0\n"
+"pingpong(-1.0, 3.0) # Returns 1.0\n"
+"pingpong(0.0, 3.0) # Returns 0.0\n"
+"pingpong(1.0, 3.0) # Returns 1.0\n"
+"pingpong(2.0, 3.0) # Returns 2.0\n"
+"pingpong(3.0, 3.0) # Returns 3.0\n"
+"pingpong(4.0, 3.0) # Returns 2.0\n"
+"pingpong(5.0, 3.0) # Returns 1.0\n"
+"pingpong(6.0, 3.0) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"Wickelt [param value] zwischen [code]0[/code] und der [param length] ein. "
+"Wenn die Grenze erreicht ist, wird der nächste Wert, den die Funktion "
+"zurückgibt, auf die Seite [code]0[/code] verringert oder auf die Seite [param "
+"Länge] erhöht (wie eine Dreieckswelle). Wenn [param length] kleiner als Null "
+"ist, wird er positiv.\n"
+"[codeblock]\n"
+"pingpong(-3.0, 3.0) # Gibt 3.0 zurück\n"
+"pingpong(-2.0, 3.0) # Gibt 2.0 zurück\n"
+"pingpong(-1.0, 3.0) # Gibt 1.0 zurück\n"
+"pingpong(0.0, 3.0) # Gibt 0.0 zurück\n"
+"pingpong(1.0, 3.0) # Gibt 1.0 zurück\n"
+"pingpong(2.0, 3.0) # Gibt 2.0 zurück\n"
+"pingpong(3.0, 3.0) # Gibt 3.0 zurück\n"
+"pingpong(4.0, 3.0) # Gibt 2.0 zurück\n"
+"pingpong(5.0, 3.0) # Gibt 1.0 zurück\n"
+"pingpong(6.0, 3.0) # Gibt 0.0 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the integer modulus of [param x] divided by [param y] that wraps "
+"equally in positive and negative.\n"
+"[codeblock]\n"
+"print(\"#(i) (i % 3) (posmod(i, 3))\")\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d | %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+"(i) (i % 3) (posmod(i, 3))\n"
+"-3 0 | 0\n"
+"-2 -2 | 1\n"
+"-1 -1 | 2\n"
+" 0 0 | 0\n"
+" 1 1 | 1\n"
+" 2 2 | 2\n"
+" 3 0 | 0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den ganzzahligen Modulus von [param x] geteilt durch [param y] zurück, "
+"der gleichermaßen in positive und negative Werte umschlägt.\n"
+"[codeblock]\n"
+"print(\"#(i) (i % 3) (posmod(i, 3))\")\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d | %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"Produziert:\n"
+"[codeblock]\n"
+"(i) (i % 3) (posmod(i, 3))\n"
+"-3 0 | 0\n"
+"-2 -2 | 1\n"
+"-1 -1 | 2\n"
+" 0 0 | 0\n"
+" 1 1 | 1\n"
+" 2 2 | 2\n"
+" 3 0 | 0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the result of [param base] raised to the power of [param exp].\n"
+"In GDScript, this is the equivalent of the [code]**[/code] operator.\n"
+"[codeblock]\n"
+"pow(2, 5) # Returns 32.0\n"
+"pow(4, 1.5) # Returns 8.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Ergebnis von [param base] hochgezählt mit [param exp] zurück.\n"
+"In GDScript ist dies das Äquivalent zum Operator [code]**[/code].\n"
+"[codeblock]\n"
+"pow(2, 5) # Gibt 32.0 zurück\n"
+"pow(4, 1.5) # Gibt 8.0 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Converts one or more arguments of any type to string in the best way possible "
+"and prints them to the console.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = [1, 2, 3]\n"
+"print(\"a\", \"b\", a) # Prints ab[1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Array { 1, 2, 3 };\n"
+"GD.Print(\"a\", \"b\", a); // Prints ab[1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to "
+"print error and warning messages instead of [method print] or [method "
+"print_rich]. This distinguishes them from print messages used for debugging "
+"purposes, while also displaying a stack trace when an error or warning is "
+"printed."
+msgstr ""
+"Konvertiert ein oder mehrere Argumente eines beliebigen Typs bestmöglich in "
+"eine Zeichenkette und gibt sie auf der Konsole aus.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = [1, 2, 3]\n"
+"print(\"a\", \"b\", a) # Prints ab[1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Array { 1, 2, 3 };\n"
+"GD.Print(\"a\", \"b\", a); // Prints ab[1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Erwägen Sie die Verwendung von [method push_error] und "
+"[method push_warning] zum Drucken von Fehler- und Warnmeldungen anstelle von "
+"[method print] oder [method print_rich]. Dies unterscheidet sie von "
+"Druckmeldungen, die zu Debugging-Zwecken verwendet werden, und zeigt "
+"gleichzeitig einen Stack-Trace an, wenn ein Fehler oder eine Warnung "
+"ausgegeben wird."
+
+msgid ""
+"If verbose mode is enabled ([method OS.is_stdout_verbose] returning "
+"[code]true[/code]), converts one or more arguments of any type to string in "
+"the best way possible and prints them to the console."
+msgstr ""
+"Wenn der ausführliche Modus aktiviert ist ([Methode OS.is_stdout_verbose], "
+"die [code]true[/code] zurückgibt), wandelt er ein oder mehrere Argumente "
+"beliebigen Typs bestmöglich in Zeichenketten um und gibt sie auf der Konsole "
+"aus."
+
+msgid ""
+"Prints one or more arguments to strings in the best way possible to standard "
+"error line.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printerr(\"prints to stderr\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintErr(\"prints to stderr\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein oder mehrere Argumente in Form von Zeichenketten so gut wie möglich "
+"in der Standardfehlerzeile aus.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printerr(\"prints to stderr\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintErr(\"prints to stderr\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to strings in the best way possible to the OS "
+"terminal. Unlike [method print], no newline is automatically added at the "
+"end.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"printraw(\"C\")\n"
+"# Prints ABC to terminal\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintRaw(\"A\");\n"
+"GD.PrintRaw(\"B\");\n"
+"GD.PrintRaw(\"C\");\n"
+"// Prints ABC to terminal\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein oder mehrere Argumente in Form von Zeichenketten in der "
+"bestmöglichen Form auf dem OS-Terminal aus. Im Gegensatz zu [method print] "
+"wird am Ende nicht automatisch ein Zeilenumbruch eingefügt.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"printraw(\"C\")\n"
+"# Gibt ABC auf dem Terminal aus\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintRaw(\"A\");\n"
+"GD.PrintRaw(\"B\");\n"
+"GD.PrintRaw(\"C\");\n"
+"// Gibt ABC auf dem Terminal aus\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to the console with a space between each "
+"argument.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintS(\"A\", \"B\", \"C\"); // Prints A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein oder mehrere Argumente auf der Konsole aus, mit einem Leerzeichen "
+"zwischen den einzelnen Argumenten.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"prints(\"A\", \"B\", \"C\") # Gibt A B C zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintS(\"A\", \"B\", \"C\"); // Gibt A B C zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to the console with a tab between each "
+"argument.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printt(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintT(\"A\", \"B\", \"C\"); // Prints A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein oder mehrere Argumente auf der Konsole aus, mit einem Tabulator "
+"zwischen den einzelnen Argumenten.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printt(\"A\", \"B\", \"C\") # Gibt A B C zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintT(\"A\", \"B\", \"C\"); // Gibt A B C zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Pushes an error message to Godot's built-in debugger and to the OS terminal.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_error(\"test error\") # Prints \"test error\" to debugger and terminal "
+"as error call\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushError(\"test error\"); // Prints \"test error\" to debugger and "
+"terminal as error call\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] This function does not pause project execution. To print an "
+"error message and pause project execution in debug builds, use "
+"[code]assert(false, \"test error\")[/code] instead."
+msgstr ""
+"Gibt eine Fehlermeldung an Godots eingebauten Debugger und an das "
+"Betriebssystem-Terminal aus.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_error(\"Testfehler\") # Gibt \"Testfehler\" als Fehleraufruf an Debugger "
+"und Terminal aus\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushError(\"Testfehler\"); // Gibt \"Testfehler\" als Fehleraufruf an "
+"Debugger und Terminal aus\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Diese Funktion hält die Projektausführung nicht an. Um eine "
+"Fehlermeldung auszugeben und die Projektausführung in Debug-Builds "
+"anzuhalten, verwenden Sie stattdessen [code]assert(false, \"test error\")[/"
+"code]."
+
+msgid ""
+"Pushes a warning message to Godot's built-in debugger and to the OS "
+"terminal.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_warning(\"test warning\") # Prints \"test warning\" to debugger and "
+"terminal as warning call\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushWarning(\"test warning\"); // Prints \"test warning\" to debugger and "
+"terminal as warning call\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine Warnmeldung an Godots eingebauten Debugger und an das "
+"Betriebssystem-Terminal aus.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_warning(\"test warnung\") # Gibt \"test warnung\" als Warnaufruf an "
+"Debugger und Terminal au\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushWarning(\"test warnung\"); // Gibt \"test warnung\" als Warnaufruf an "
+"Debugger und Terminal au\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Converts an angle expressed in radians to degrees.\n"
+"[codeblock]\n"
+"rad_to_deg(0.523599) # Returns 30\n"
+"rad_to_deg(PI) # Returns 180\n"
+"rad_to_deg(PI * 2) # Returns 360\n"
+"[/codeblock]"
+msgstr ""
+"Konvertiert einen Winkel von Radiant (Rad) nach Grad (Deg).\n"
+"[codeblock]\n"
+"rad_to_deg(0.523599) # Gibt 30 zurück\n"
+"rad_to_deg(PI) # Gibt 180 zurück\n"
+"rad_to_deg(PI * 2) # Gibt 360 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Given a [param seed], returns a [PackedInt64Array] of size [code]2[/code], "
+"where its first element is the randomized [int] value, and the second element "
+"is the same as [param seed]. Passing the same [param seed] consistently "
+"returns the same array.\n"
+"[b]Note:[/b] \"Seed\" here refers to the internal state of the pseudo random "
+"number generator, currently implemented as a 64 bit integer.\n"
+"[codeblock]\n"
+"var a = rand_from_seed(4)\n"
+"\n"
+"print(a[0])\t# Prints 2879024997\n"
+"print(a[1])\t# Prints 4\n"
+"[/codeblock]"
+msgstr ""
+"Gibt bei einem [param seed] ein [PackedInt64Array] der Größe [code]2[/code] "
+"zurück, dessen erstes Element der zufällig ausgewählte [int]-Wert ist und "
+"dessen zweites Element dem [param seed] entspricht. Die Übergabe des gleichen "
+"[param seed] gibt immer das gleiche Array zurück.\n"
+"[b]Hinweis:[/b] \"Seed\" bezieht sich hier auf den internen Status des Pseudo-"
+"Zufallszahlengenerators, der derzeit als 64-Bit-Ganzzahl implementiert ist.\n"
+"[codeblock]\n"
+"var a = rand_from_seed(4)\n"
+"\n"
+"print(a[0])\t# Gibt 2879024997 zurück\n"
+"print(a[1])\t# Gibt 4 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns a random floating point value between [code]0.0[/code] and [code]1.0[/"
+"code] (inclusive).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf() # Returns e.g. 0.375671\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randf(); // Returns e.g. 0.375671\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt einen zufälligen Fließkommawert zwischen [code]0.0[/code] und [code]1.0[/"
+"code] (einschließlich) zurück.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf() # Gibt z.B. 0.375671 zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randf(); // Gibt z.B. 0.375671 zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a random floating point value between [param from] and [param to] "
+"(inclusive).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf_range(0, 20.5) # Returns e.g. 7.45315\n"
+"randf_range(-10, 10) # Returns e.g. -3.844535\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0.0, 20.5); // Returns e.g. 7.45315\n"
+"GD.RandRange(-10.0, 10.0); // Returns e.g. -3.844535\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt einen zufälligen Fließkommawert zwischen [param from] und [param to] "
+"(einschließlich) zurück.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf_range(0, 20.5) # Gibt z.B. 7.45315 zurück\n"
+"randf_range(-10, 10) # Returns e.g. -3.844535\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0.0, 20.5); // Gibt z.B. 7.45315 zurück\n"
+"GD.RandRange(-10.0, 10.0); // Gibt z.B. -3.844535 zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a normally-distributed pseudo-random floating point value using Box-"
+"Muller transform with the specified [param mean] and a standard [param "
+"deviation]. This is also called Gaussian distribution."
+msgstr ""
+"Liefert eine normalverteilte pseudozufällige Fließkommazahl unter Verwendung "
+"der Box-Muller-Transformation mit dem angegebenen [param Mittelwert] und "
+"einer Standard-[param Abweichung]. Dies wird auch als Gaußsche Verteilung "
+"bezeichnet."
+
+msgid ""
+"Returns a random unsigned 32-bit integer. Use remainder to obtain a random "
+"value in the interval [code][0, N - 1][/code] (where N is smaller than "
+"2^32).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi() # Returns random integer between 0 and 2^32 - 1\n"
+"randi() % 20 # Returns random integer between 0 and 19\n"
+"randi() % 100 # Returns random integer between 0 and 99\n"
+"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randi(); // Returns random integer between 0 and 2^32 - 1\n"
+"GD.Randi() % 20; // Returns random integer between 0 and 19\n"
+"GD.Randi() % 100; // Returns random integer between 0 and 99\n"
+"GD.Randi() % 100 + 1; // Returns random integer between 1 and 100\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine zufällige 32-Bit-Ganzzahl ohne Vorzeichen zurück. Verwenden Sie den "
+"Restwert, um einen Zufallswert im Intervall [code][0, N - 1][/code] zu "
+"erhalten (wobei N kleiner als 2^32 ist).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi() # Liefert eine zufällige Ganzzahl zwischen 0 und 2^32 - 1\n"
+"randi() % 20 # Liefert eine zufällige Ganzzahl zwischen 0 und 19\n"
+"randi() % 100 # Liefert eine zufällige Ganzzahl zwischen 0 und 99\n"
+"randi() % 100 + 1 # Liefert eine zufällige Ganzzahl zwischen 1 und 100\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randi(); // Liefert eine zufällige Ganzzahl zwischen 0 und 2^32 "
+"- 1\n"
+"GD.Randi() % 20; // Liefert eine zufällige Ganzzahl zwischen 0 und 19\n"
+"GD.Randi() % 100; // Liefert eine zufällige Ganzzahl zwischen 0 und 99\n"
+"GD.Randi() % 100 + 1; // Liefert eine zufällige Ganzzahl zwischen 1 und 100\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a random signed 32-bit integer between [param from] and [param to] "
+"(inclusive). If [param to] is lesser than [param from], they are swapped.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi_range(0, 1) # Returns either 0 or 1\n"
+"randi_range(-10, 1000) # Returns random integer between -10 and 1000\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0, 1); // Returns either 0 or 1\n"
+"GD.RandRange(-10, 1000); // Returns random integer between -10 and 1000\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine zufällige 32-Bit-Ganzzahl mit Vorzeichen zwischen [param from] und "
+"[param to] (inklusive) zurück. Wenn [param to] kleiner ist als [param from], "
+"werden sie vertauscht.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi_range(0, 1) # Gibt entweder 0 oder 1 zurück\n"
+"randi_range(-10, 1000) # Liefert eine zufällige Ganzzahl zwischen -10 und "
+"1000\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0, 1); // Gibt entweder 0 oder 1 zurück\n"
+"GD.RandRange(-10, 1000); // Liefert eine zufällige Ganzzahl zwischen -10 und "
+"1000\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Randomizes the seed (or the internal state) of the random number generator. "
+"The current implementation uses a number based on the device's time.\n"
+"[b]Note:[/b] This function is called automatically when the project is run. "
+"If you need to fix the seed to have consistent, reproducible results, use "
+"[method seed] to initialize the random number generator."
+msgstr ""
+"Randomisiert den Seed (oder den internen Zustand) des "
+"Zufallszahlengenerators. Die aktuelle Implementierung verwendet eine Zahl, "
+"die auf der Zeit des Geräts basiert.\n"
+"[b]Hinweis:[/b] Diese Funktion wird automatisch aufgerufen, wenn das Projekt "
+"ausgeführt wird. Wenn Sie den Seed festlegen müssen, um konsistente, "
+"reproduzierbare Ergebnisse zu erhalten, verwenden Sie [method seed], um den "
+"Zufallszahlengenerator zu initialisieren."
+
+msgid ""
+"Maps a [param value] from range [code][istart, istop][/code] to [code]"
+"[ostart, ostop][/code]. See also [method lerp] and [method inverse_lerp]. If "
+"[param value] is outside [code][istart, istop][/code], then the resulting "
+"value will also be outside [code][ostart, ostop][/code]. If this is not "
+"desired, use [method clamp] on the result of this function.\n"
+"[codeblock]\n"
+"remap(75, 0, 100, -1, 1) # Returns 0.5\n"
+"[/codeblock]\n"
+"For complex use cases where multiple ranges are needed, consider using "
+"[Curve] or [Gradient] instead."
+msgstr ""
+"Bildet einen [param-Wert] aus dem Bereich [code][istart, istop][/code] auf "
+"[code][ostart, ostop][/code] ab. Siehe auch [method lerp] und [method "
+"inverse_lerp]. Wenn [param value] außerhalb von [code][istart, istop][/code] "
+"liegt, dann liegt der resultierende Wert auch außerhalb von [code][ostart, "
+"ostop][/code]. Wenn dies nicht erwünscht ist, verwenden Sie [method clamp] "
+"auf das Ergebnis dieser Funktion.\n"
+"[codeblock]\n"
+"remap(75, 0, 100, -1, 1) # Liefert 0.5\n"
+"[/codeblock]\n"
+"Für komplexe Anwendungsfälle, in denen mehrere Bereiche benötigt werden, "
+"sollten Sie stattdessen [Curve] oder [Gradient] verwenden."
+
+msgid ""
+"Allocates a unique ID which can be used by the implementation to construct a "
+"RID. This is used mainly from native extensions to implement servers."
+msgstr ""
+"Weist eine eindeutige ID zu, die von der Implementierung verwendet werden "
+"kann, um eine RID zu erstellen. Dies wird hauptsächlich von nativen "
+"Erweiterungen zur Implementierung von Servern verwendet."
+
+msgid ""
+"Creates a RID from a [param base]. This is used mainly from native extensions "
+"to build servers."
+msgstr ""
+"Erzeugt ein RID aus einer [param base]. Dies wird hauptsächlich von nativen "
+"Erweiterungen verwendet, um Server zu erstellen."
+
+msgid ""
+"Rotates [param from] toward [param to] by the [param delta] amount. Will not "
+"go past [param to].\n"
+"Similar to [method move_toward], but interpolates correctly when the angles "
+"wrap around [constant @GDScript.TAU].\n"
+"If [param delta] is negative, this function will rotate away from [param to], "
+"toward the opposite angle, and will not go past the opposite angle."
+msgstr ""
+"Dreht [Parameter von] in Richtung [Parameter bis] um den Betrag [Parameter "
+"Delta]. Geht nicht über [param to] hinaus.\n"
+"Ähnlich wie [method move_toward], interpoliert aber korrekt, wenn die Winkel "
+"um [constant @GDScript.TAU] herumgehen.\n"
+"Wenn [param delta] negativ ist, dreht sich diese Funktion von [param to] weg, "
+"in Richtung des entgegengesetzten Winkels, und geht nicht über den "
+"entgegengesetzten Winkel hinaus."
+
+msgid ""
+"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
+"from 0.\n"
+"A type-safe version of [method round], returning a [float]."
+msgstr ""
+"Rundet [param x] auf die nächste ganze Zahl, wobei die Hälfte der Fälle von 0 "
+"abgerundet wird.\n"
+"Eine typsichere Version von [method round], die einen [float] zurückgibt."
+
+msgid ""
+"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
+"from 0.\n"
+"A type-safe version of [method round], returning an [int]."
+msgstr ""
+"Rundet [param x] auf die nächste ganze Zahl, wobei die Hälfte der Fälle von 0 "
+"abgerundet wird.\n"
+"Eine typsichere Version von [method round], die einen [int] zurückgibt."
+
+msgid ""
+"Sets the seed for the random number generator to [param base]. Setting the "
+"seed manually can ensure consistent, repeatable results for most random "
+"functions.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var my_seed = \"Godot Rocks\".hash()\n"
+"seed(my_seed)\n"
+"var a = randf() + randi()\n"
+"seed(my_seed)\n"
+"var b = randf() + randi()\n"
+"# a and b are now identical\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ulong mySeed = (ulong)GD.Hash(\"Godot Rocks\");\n"
+"GD.Seed(mySeed);\n"
+"var a = GD.Randf() + GD.Randi();\n"
+"GD.Seed(mySeed);\n"
+"var b = GD.Randf() + GD.Randi();\n"
+"// a and b are now identical\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Setzt den Seed für den Zufallszahlengenerator auf [param base]. Die manuelle "
+"Einstellung des Seeds kann konsistente, wiederholbare Ergebnisse für die "
+"meisten Zufallsfunktionen gewährleisten.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var my_seed = \"Godot Rocks\".hash()\n"
+"seed(my_seed)\n"
+"var a = randf() + randi()\n"
+"seed(my_seed)\n"
+"var b = randf() + randi()\n"
+"# a und b sind nun identisch\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ulong mySeed = (ulong)GD.Hash(\"Godot Rocks\");\n"
+"GD.Seed(mySeed);\n"
+"var a = GD.Randf() + GD.Randi();\n"
+"GD.Seed(mySeed);\n"
+"var b = GD.Randf() + GD.Randi();\n"
+"// a und b sind nun identisch\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the same type of [Variant] as [param x], with [code]-1[/code] for "
+"negative values, [code]1[/code] for positive values, and [code]0[/code] for "
+"zeros. For [code]nan[/code] values it returns 0.\n"
+"Supported types: [int], [float], [Vector2], [Vector2i], [Vector3], "
+"[Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"sign(-6.0) # Returns -1\n"
+"sign(0.0) # Returns 0\n"
+"sign(6.0) # Returns 1\n"
+"sign(NAN) # Returns 0\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method signf], [method signi], "
+"[method Vector2.sign], [method Vector2i.sign], [method Vector3.sign], [method "
+"Vector3i.sign], [method Vector4.sign], or [method Vector4i.sign]."
+msgstr ""
+"Gibt denselben Typ von [Variante] zurück wie [param x], mit [code]-1[/code] "
+"für negative Werte, [code]1[/code] für positive Werte und [code]0[/code] für "
+"Nullen. Für [code]nan[/code]-Werte wird 0 zurückgegeben.\n"
+"Unterstützte Typen: [int], [float], [Vector2], [Vector2i], [Vector3], "
+"[Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"sign(-6.0) # Gibt -1 zurück\n"
+"sign(0.0) # Gibt 0 zurück\n"
+"sign(6.0) # Gibt 1 zurück\n"
+"sign(NAN) # Gibt 0 zurück\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # Gibt (-1, 0, 1) zurück\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Für eine bessere Typsicherheit verwenden Sie [methode signf], "
+"[methode signi], [methode Vector2.sign], [methode Vector2i.sign], [methode "
+"Vector3.sign], [methode Vector3i.sign], [methode Vector4.sign], oder [methode "
+"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. For "
+"[code]nan[/code] values of [param x] it returns 0.0.\n"
+"[codeblock]\n"
+"signf(-6.5) # Returns -1.0\n"
+"signf(0.0) # Returns 0.0\n"
+"signf(6.5) # Returns 1.0\n"
+"signf(NAN) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt [code]-1.0[/code] zurück, wenn [param x] negativ ist, [code]1.0[/code], "
+"wenn [param x] positiv ist, und [code]0.0[/code], wenn [param x] Null ist. "
+"Für [code]nan[/code] Werte von [param x] wird 0.0 zurückgegeben.\n"
+"[codeblock]\n"
+"signf(-6.5) # Gibt -1.0 zurück\n"
+"signf(0.0) # Gibt 0.0 zurück\n"
+"signf(6.5) # Gibt 1.0 zurück\n"
+"signf(NAN) # Gibt 0.0 zurück\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"
+"signi(-6) # Returns -1\n"
+"signi(0) # Returns 0\n"
+"signi(6) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+"Gibt [code]-1[/code] zurück, wenn [param x] negativ ist, [code]1[/code], wenn "
+"[param x] positiv ist, und [code]0[/code], wenn [param x] Null ist.\n"
+"[codeblock]\n"
+"signi(-6) # Gibt -1 zurück\n"
+"signi(0) # Gibt 0 zurück\n"
+"signi(6) # Gibt 1 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the sine of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"sin(0.523599) # Returns 0.5\n"
+"sin(deg_to_rad(90)) # Returns 1.0\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Sinus des Winkels [param angle_rad] im Bogenmaß (Radiant) zurück.\n"
+"[codeblock]\n"
+"sin(0.523599) # gibt 0.5 zurück\n"
+"sin(deg_to_rad(90)) # gibt 1.0 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic sine of [param x].\n"
+"[codeblock]\n"
+"var a = log(2.0) # Returns 0.693147\n"
+"sinh(a) # Returns 0.75\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den hyperbolischen Sinus von [param x] zurück.\n"
+"[codeblock]\n"
+"var a = log(2.0) # Gibt 0.693147 zurück\n"
+"sinh(a) # Gibt 0.75 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the result of smoothly interpolating the value of [param x] between "
+"[code]0[/code] and [code]1[/code], based on the where [param x] lies with "
+"respect to the edges [param from] and [param to].\n"
+"The return value is [code]0[/code] if [code]x <= from[/code], and [code]1[/"
+"code] if [code]x >= to[/code]. If [param x] lies between [param from] and "
+"[param to], the returned value follows an S-shaped curve that maps [param x] "
+"between [code]0[/code] and [code]1[/code].\n"
+"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = "
+"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # Returns 0.0\n"
+"smoothstep(0, 2, 0.5) # Returns 0.15625\n"
+"smoothstep(0, 2, 1.0) # Returns 0.5\n"
+"smoothstep(0, 2, 2.0) # Returns 1.0\n"
+"[/codeblock]\n"
+"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method "
+"smoothstep] returns the smoothest possible curve with no sudden changes in "
+"the derivative. If you need to perform more advanced transitions, use [Tween] "
+"or [AnimationPlayer].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, "
+"-1.6521) return values[/url]"
+msgstr ""
+"Gibt das Ergebnis einer glatten Interpolation des Wertes von [param x] "
+"zwischen [code]0[/code] und [code]1[/code] zurück, basierend darauf, wo "
+"[param x] in Bezug auf die Kanten [param from] und [param to] liegt.\n"
+"Der Rückgabewert ist [code]0[/code], wenn [code]x <= from[/code], und "
+"[code]1[/code], wenn [code]x >= to[/code]. Wenn [param x] zwischen [param "
+"from] und [param to] liegt, folgt der zurückgegebene Wert einer S-förmigen "
+"Kurve, die [param x] zwischen [code]0[/code] und [code]1[/code] abbildet.\n"
+"Diese S-Kurve ist der kubische Hermite-Interpolator, der durch [code]f(y) = "
+"3*y^2 - 2*y^3[/code] gegeben ist, wobei [code]y = (x-aus) / (nach-aus)[/"
+"code].\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # Gibt 0.0 zurück\n"
+"smoothstep(0, 2, 0.5) # Gibt 0.15625 zurück\n"
+"smoothstep(0, 2, 1.0) # Gibt 0.5 zurück\n"
+"smoothstep(0, 2, 2.0) # Gibt 1.0 zurück\n"
+"[/codeblock]\n"
+"Im Vergleich zu [method ease] mit einem Kurvenwert von [code]-1.6521[/code] "
+"liefert [method smoothstep] die glatteste Kurve ohne plötzliche Änderungen in "
+"der Ableitung. Wenn Sie fortgeschrittenere Übergänge durchführen möchten, "
+"verwenden Sie [Tween] oder [AnimationPlayer].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"smoothstep_ease_comparison.png]Vergleich zwischen den Rückgabewerten von "
+"smoothstep() und ease(x, -1.6521)[/url]"
+
+msgid ""
+"Returns the multiple of [param step] that is the closest to [param x]. This "
+"can also be used to round a floating point number to an arbitrary number of "
+"decimals.\n"
+"The returned value is the same type of [Variant] as [param step]. Supported "
+"types: [int], [float], [Vector2], [Vector2i], [Vector3], [Vector3i], "
+"[Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"snapped(100, 32) # Returns 96\n"
+"snapped(3.14159, 0.01) # Returns 3.14\n"
+"\n"
+"snapped(Vector2(34, 70), Vector2(8, 8)) # Returns (32, 72)\n"
+"[/codeblock]\n"
+"See also [method ceil], [method floor], and [method round].\n"
+"[b]Note:[/b] For better type safety, use [method snappedf], [method "
+"snappedi], [method Vector2.snapped], [method Vector2i.snapped], [method "
+"Vector3.snapped], [method Vector3i.snapped], [method Vector4.snapped], or "
+"[method Vector4i.snapped]."
+msgstr ""
+"Gibt das Vielfache von [param step] zurück, das dem Wert von [param x] am "
+"nächsten kommt. Dies kann auch verwendet werden, um eine Fließkommazahl auf "
+"eine beliebige Anzahl von Nachkommastellen zu runden.\n"
+"Der zurückgegebene Wert ist derselbe Typ von [Variant] wie [param step]. "
+"Unterstützte Typen: [int], [float], [Vector2], [Vector2i], [Vector3], "
+"[Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"snapped(100, 32) # Returns 96\n"
+"snapped(3.14159, 0.01) # Gibt 3.14 zurück\n"
+"\n"
+"snapped(Vector2(34, 70), Vector2(8, 8)) # Gibt (32, 72) zurück\n"
+"[/codeblock]\n"
+"Siehe auch [method ceil], [method floor], und [method round].\n"
+"[b]Hinweis:[/b] Für bessere Typsicherheit verwenden Sie [method snappedf], "
+"[method snappedi], [method Vector2.snapped], [method Vector2i.snapped], "
+"[method Vector3.snapped], [method Vector3i.snapped], [method Vector4.snapped] "
+"oder [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"
+"snappedf(32.0, 2.5) # Returns 32.5\n"
+"snappedf(3.14159, 0.01) # Returns 3.14\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Vielfache von [param step] zurück, das dem Wert von [param x] am "
+"nächsten kommt. Dies kann auch verwendet werden, um eine Fließkommazahl auf "
+"eine beliebige Anzahl von Dezimalstellen zu runden.\n"
+"Eine typsichere Version von [method snapped], die einen [float] zurückgibt.\n"
+"[Codeblock]\n"
+"snappedf(32.0, 2.5) # Gibt 32.5 zurück\n"
+"snappedf(3.14159, 0.01) # Gibt 3.14 zurück\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"
+"snappedi(53, 16) # Returns 48\n"
+"snappedi(4096, 100) # Returns 4100\n"
+"[/codeblock]"
+msgstr ""
+"Gibt das Vielfache von [param step] zurück, das dem Wert von [param x] am "
+"nächsten kommt.\n"
+"Eine typsichere Version von [method snapped], die einen [int] zurückgibt.\n"
+"[Codeblock]\n"
+"snappedi(53, 16) # Gibt 48 zurück\n"
+"snappedi(4096, 100) # Gibt 4100 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the square root of [param x], where [param x] is a non-negative "
+"number.\n"
+"[codeblock]\n"
+"sqrt(9) # Returns 3\n"
+"sqrt(10.24) # Returns 3.2\n"
+"sqrt(-1) # Returns NaN\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Negative values of [param x] return NaN (\"Not a Number\"). in "
+"C#, if you need negative inputs, use [code]System.Numerics.Complex[/code]."
+msgstr ""
+"Gibt die Quadratwurzel von [param x] zurück, wobei [param x] eine "
+"nichtnegative Zahl ist.\n"
+"[codeblock]\n"
+"sqrt(9) # Gibt 3 zurück\n"
+"sqrt(10.24) # Gibt 3.2 zurück\n"
+"sqrt(-1) # Gibt NaN zurück\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Negative Werte von [param x] geben NaN (\"Not a Number\") "
+"zurück. Wenn Sie in C# negative Eingaben benötigen, verwenden Sie "
+"[code]System.Numerics.Complex[/code]."
+
+msgid ""
+"Returns the position of the first non-zero digit, after the decimal point. "
+"Note that the maximum return value is 10, which is a design decision in the "
+"implementation.\n"
+"[codeblock]\n"
+"var n = step_decimals(5) # n is 0\n"
+"n = step_decimals(1.0005) # n is 4\n"
+"n = step_decimals(0.000000005) # n is 9\n"
+"[/codeblock]"
+msgstr ""
+"Gibt die Position der ersten nicht-null Ziffer nach dem Dezimalpunkt zurück. "
+"Merke, dass der höchste Rückgabewert 10 ist, was eine Entwurfsentscheidung in "
+"der Implementation ist.\n"
+"[codeblock]\n"
+"var n = step_decimals(5) # n ist 0\n"
+"n = step_decimals(1.0005) # n ist 4\n"
+"n = step_decimals(0.000000005) # n ist 9\n"
+"[/codeblock]"
+
+msgid ""
+"Converts one or more arguments of any [Variant] type to a [String] in the "
+"best way possible.\n"
+"[codeblock]\n"
+"var a = [10, 20, 30]\n"
+"var b = str(a)\n"
+"print(len(a)) # Prints 3 (the number of elements in the array).\n"
+"print(len(b)) # Prints 12 (the length of the string \"[10, 20, 30]\").\n"
+"[/codeblock]"
+msgstr ""
+"Konvertiert ein oder mehrere Argumente eines beliebigen [Variant]-Typs "
+"bestmöglich in einen [String].\n"
+"[codeblock]\n"
+"var a = [10, 20, 30]\n"
+"var b = str(a)\n"
+"print(len(a)) # Gibt 3 (die Anzahl der Elemente im Array) zurück.\n"
+"print(len(b)) # Gibt 12 (die Länge der Zeichenkette \"[10, 20, 30]\") "
+"zurück.\n"
+"[/codeblock]"
+
+msgid ""
+"Converts a formatted [param string] that was returned by [method var_to_str] "
+"to the original [Variant].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var data = '{ \"a\": 1, \"b\": 2 }' # data is a String\n"
+"var dict = str_to_var(data) # dict is a Dictionary\n"
+"print(dict[\"a\"]) # Prints 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"string data = \"{ \\\"a\\\": 1, \\\"b\\\": 2 }\"; // data is a "
+"string\n"
+"var dict = GD.StrToVar(data).AsGodotDictionary(); // dict is a Dictionary\n"
+"GD.Print(dict[\"a\"]); // Prints 1\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Konvertiert einen formatierten [param string], der von [method var_to_str] "
+"zurückgegeben wurde, in die ursprüngliche [Variant].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var data = '{ \"a\": 1, \"b\": 2 }' # data ist eine Zeichenkette\n"
+"var dict = str_to_var(data) # dict ist ein Dictionary\n"
+"print(dict[\"a\"]) # Gibt 1 zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"string data = \"{ \\\"a\\\": 1, \\\"b\\\": 2 }\"; // data ist eine "
+"Zeichenkette\n"
+"var dict = GD.StrToVar(data).AsGodotDictionary(); // dict ist ein Dictionary\n"
+"GD.Print(dict[\"a\"]); // Gibt 1 zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the tangent of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"tan(deg_to_rad(45)) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den Tangens des Winkels [param angle_rad] im Bogenmaß zurück.\n"
+"[codeblock]\n"
+"tan(deg_to_rad(45)) # Gibt 1 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic tangent of [param x].\n"
+"[codeblock]\n"
+"var a = log(2.0) # Returns 0.693147\n"
+"tanh(a) # Returns 0.6\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den hyperbolischen Tangens von [param x] zurück.\n"
+"[codeblock]\n"
+"var a = log(2.0) # Gibt 0.693147 zurück\n"
+"tanh(a) # Gibt 0.6 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Encodes a [Variant] value to a byte array, without encoding objects. "
+"Deserialization can be done with [method bytes_to_var].\n"
+"[b]Note:[/b] If you need object serialization, see [method "
+"var_to_bytes_with_objects]."
+msgstr ""
+"Kodiert einen [Variant]-Wert in ein Byte-Array, ohne Objekte zu kodieren. Die "
+"Deserialisierung kann mit der [Methode bytes_to_var] durchgeführt werden.\n"
+"[b]Hinweis:[/b] Wenn Sie eine Objektserialisierung benötigen, siehe [Methode "
+"var_to_bytes_with_objects]."
+
+msgid ""
+"Encodes a [Variant] value to a byte array. Encoding objects is allowed (and "
+"can potentially include executable code). Deserialization can be done with "
+"[method bytes_to_var_with_objects]."
+msgstr ""
+"Kodiert einen [Variant]-Wert in ein Byte-Array. Die Kodierung von Objekten "
+"ist erlaubt (und kann potentiell ausführbaren Code enthalten). Die "
+"Deserialisierung kann mit der [Methode bytes_to_var_with_objects] "
+"durchgeführt werden."
+
+msgid ""
+"Converts a [Variant] [param variable] to a formatted [String] that can then "
+"be parsed using [method str_to_var].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = { \"a\": 1, \"b\": 2 }\n"
+"print(var_to_str(a))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Dictionary { [\"a\"] = 1, [\"b\"] = 2 };\n"
+"GD.Print(GD.VarToStr(a));\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Prints:\n"
+"[codeblock]\n"
+"{\n"
+" \"a\": 1,\n"
+" \"b\": 2\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Converting [Signal] or [Callable] is not supported and will "
+"result in an empty value for these types, regardless of their data."
+msgstr ""
+"Konvertiert eine [Variant] [param-Variable] in einen formatierten [String], "
+"der dann mit [method str_to_var] geparst werden kann.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = { \"a\": 1, \"b\": 2 }\n"
+"print(var_to_str(a))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Dictionary { [\"a\"] = 1, [\"b\"] = 2 };\n"
+"GD.Print(GD.VarToStr(a));\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Druckt:\n"
+"[codeblock]\n"
+"{\n"
+" \"a\": 1,\n"
+" \"b\": 2\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Die Konvertierung von [Signal] oder [Callable] wird nicht "
+"unterstützt und führt zu einem leeren Wert für diese Typen, unabhängig von "
+"ihren Daten."
+
+msgid ""
+"Returns a weak reference to an object, or [code]null[/code] if [param obj] is "
+"invalid.\n"
+"A weak reference to an object is not enough to keep the object alive: when "
+"the only remaining references to a referent are weak references, garbage "
+"collection is free to destroy the referent and reuse its memory for something "
+"else. However, until the object is actually destroyed the weak reference may "
+"return the object even if there are no strong references to it."
+msgstr ""
+"Gibt einen schwachen Verweis auf ein Objekt zurück, oder [code]null[/code], "
+"wenn [param obj] ungültig ist.\n"
+"Eine schwache Referenz auf ein Objekt reicht nicht aus, um das Objekt am "
+"Leben zu erhalten: Wenn die einzigen verbleibenden Referenzen auf einen "
+"Referenten schwache Referenzen sind, steht es der Garbage Collection frei, "
+"den Referenten zu zerstören und seinen Speicher für etwas anderes zu "
+"verwenden. Bis zur tatsächlichen Zerstörung des Objekts kann die schwache "
+"Referenz das Objekt jedoch zurückgeben, auch wenn es keine starken Referenzen "
+"auf das Objekt gibt."
+
+msgid ""
+"Wraps the [Variant] [param value] between [param min] and [param max]. Can be "
+"used for creating loop-alike behavior or infinite surfaces.\n"
+"Variant types [int] and [float] are supported. If any of the arguments is "
+"[float] this function returns a [float], otherwise it returns an [int].\n"
+"[codeblock]\n"
+"var a = wrap(4, 5, 10)\n"
+"# a is 9 (int)\n"
+"\n"
+"var a = wrap(7, 5, 10)\n"
+"# a is 7 (int)\n"
+"\n"
+"var a = wrap(10.5, 5, 10)\n"
+"# a is 5.5 (float)\n"
+"[/codeblock]"
+msgstr ""
+"Schließt die [Variante] [param value] zwischen [param min] und [param max] "
+"ein. Kann verwendet werden, um schleifenähnliches Verhalten oder unendliche "
+"Flächen zu erzeugen.\n"
+"Die Variantentypen [int] und [float] werden unterstützt. Wenn eines der "
+"Argumente [float] ist, gibt diese Funktion einen [float] zurück, ansonsten "
+"einen [int].\n"
+"[codeblock]\n"
+"var a = wrap(4, 5, 10)\n"
+"# a ist 9 (int)\n"
+"\n"
+"var a = wrap(7, 5, 10)\n"
+"# a ist 7 (int)\n"
+"\n"
+"var a = wrap(10.5, 5, 10)\n"
+"# a ist 5,5 (float)\n"
+"[/codeblock]"
+
+msgid ""
+"Wraps the integer [param value] between [param min] and [param max]. Can be "
+"used for creating loop-alike behavior or infinite surfaces.\n"
+"[codeblock]\n"
+"# Infinite loop between 5 and 9\n"
+"frame = wrapi(frame + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# result is -2\n"
+"var result = wrapi(-6, -5, -1)\n"
+"[/codeblock]"
+msgstr ""
+"Schließt die Ganzzahl [param value] zwischen [param min] und [param max] ein. "
+"Kann verwendet werden, um schleifenähnliches Verhalten oder unendliche "
+"Oberflächen zu erzeugen.\n"
+"[codeblock]\n"
+"# Endlosschleife zwischen 5 und 9\n"
+"Rahmen = wrapi(Rahmen + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# Ergebnis ist -2\n"
+"var ergebnis = wrapi(-6, -5, -1)\n"
+"[/codeblock]"
+
+msgid "The [AudioServer] singleton."
+msgstr "Das [AudioServer] Singleton."
+
+msgid "The [CameraServer] singleton."
+msgstr "Das [CameraServer] Singleton."
+
+msgid "The [ClassDB] singleton."
+msgstr "Das [ClassDB] Singleton."
+
+msgid "The [DisplayServer] singleton."
+msgstr "Das [DisplayServer] Singleton."
+
+msgid ""
+"The [EditorInterface] singleton.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+"Das [EditorInterface] Singleton.\n"
+"[b]Hinweis:[/b] Nur in Editor-Builds verfügbar."
+
+msgid "The [Engine] singleton."
+msgstr "Das [Engine] Singleton."
+
+msgid "The [EngineDebugger] singleton."
+msgstr "Das [EngineDebugger] Singleton."
+
+msgid "The [GDExtensionManager] singleton."
+msgstr "Das [GDExtensionManager] Singleton."
+
+msgid "The [Geometry2D] singleton."
+msgstr "Das [Geometry2D] Singleton."
+
+msgid "The [Geometry3D] singleton."
+msgstr "Das [Geometry3D] Singleton."
+
+msgid "The [GodotSharp] singleton."
+msgstr "Das [GodotSharp]-Singleton."
+
+msgid "The [IP] singleton."
+msgstr "Das [IP] Singleton."
+
+msgid "The [Input] singleton."
+msgstr "Das [Input] Singleton."
+
+msgid "The [InputMap] singleton."
+msgstr "Das [InputMap] Singleton."
+
+msgid ""
+"The [JavaClassWrapper] singleton.\n"
+"[b]Note:[/b] Only implemented on Android."
+msgstr ""
+"Das[JavaClassWrapper] Singleton.\n"
+"[b]Note:[/b] Nur in Android implementiert."
+
+msgid ""
+"The [JavaScriptBridge] singleton.\n"
+"[b]Note:[/b] Only implemented on the Web platform."
+msgstr ""
+"Das [JavaScriptBridge]-Singleton.\n"
+"[b]Hinweis:[/b] Nur auf der Web-Plattform implementiert."
+
+msgid "The [Marshalls] singleton."
+msgstr "Das [Marshalls] Singleton."
+
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr "Das [NavigationMeshGenerator]-Singleton."
+
+msgid "The [NavigationServer2D] singleton."
+msgstr "Das [NavigationServer2D]-Singleton."
+
+msgid "The [NavigationServer3D] singleton."
+msgstr "Das [NavigationServer3D]-Singleton."
+
+msgid "The [OS] singleton."
+msgstr "Das [OS] Singleton."
+
+msgid "The [Performance] singleton."
+msgstr "Das [Performance] Singleton."
+
+msgid "The [PhysicsServer2D] singleton."
+msgstr "Das [PhysicsServer2D]-Singleton."
+
+msgid "The [PhysicsServer2DManager] singleton."
+msgstr "Das [PhysicsServer2DManager]-Singleton."
+
+msgid "The [PhysicsServer3D] singleton."
+msgstr "Das [PhysicsServer3D]-Singleton."
+
+msgid "The [PhysicsServer3DManager] singleton."
+msgstr "Das [PhysicsServer3DManager]-Singleton."
+
+msgid "The [ProjectSettings] singleton."
+msgstr "Das [ProjectSettings] Singleton."
+
+msgid "The [RenderingServer] singleton."
+msgstr "Das [RenderingServer]-Singleton."
+
+msgid "The [ResourceLoader] singleton."
+msgstr "Das [ResourceLoader] Singleton."
+
+msgid "The [ResourceSaver] singleton."
+msgstr "Das [ResourceSaver] Singleton."
+
+msgid "The [ResourceUID] singleton."
+msgstr "Das [ResourceUID]-Singleton."
+
+msgid "The [TextServerManager] singleton."
+msgstr "Das [TextServerManager]-Singleton."
+
+msgid "The [ThemeDB] singleton."
+msgstr "Das [ThemeDB]-Singleton."
+
+msgid "The [Time] singleton."
+msgstr "Das [Time] Singleton."
+
+msgid "The [TranslationServer] singleton."
+msgstr "Das [TranslationServer] Singleton."
+
+msgid "The [WorkerThreadPool] singleton."
+msgstr "Das [WorkerThreadPool]-Singleton."
+
+msgid "The [XRServer] singleton."
+msgstr "Das [XRServer]-Singleton."
+
+msgid "Left side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+"Linke Seite, normalerweise für [Control]- oder [StyleBox]-abgeleitete Klassen "
+"verwendet."
+
+msgid "Top side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+"Oberseite, normalerweise für [Control]- oder [StyleBox]-abgeleitete Klassen "
+"verwendet."
+
+msgid "Right side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+"Rechte Seite, normalerweise für [Control]- oder [StyleBox]-abgeleitete "
+"Klassen verwendet."
+
+msgid "Bottom side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr ""
+"Untere Seite, normalerweise für [Control]- oder [StyleBox]-abgeleitete "
+"Klassen verwendet."
+
+msgid "Top-left corner."
+msgstr "Obere linke Ecke."
+
+msgid "Top-right corner."
+msgstr "Obere rechte Ecke."
+
+msgid "Bottom-right corner."
+msgstr "Untere rechte Ecke."
+
+msgid "Bottom-left corner."
+msgstr "Untere linke Ecke."
+
+msgid ""
+"General vertical alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr ""
+"Generelle vertikale Ausrichtung, normalerweise benutzt für [Separator], "
+"[ScrollBar], [Slider], etc."
+
+msgid ""
+"General horizontal alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr ""
+"Generelle horizontale Ausrichtung, normalerweise benutzt für [Separator], "
+"[ScrollBar], [Slider], etc."
+
+msgid ""
+"Clockwise rotation. Used by some methods (e.g. [method Image.rotate_90])."
+msgstr ""
+"Rotation im Uhrzeigersinn. Wird von einigen Methoden verwendet (z.B. [method "
+"Image.rotate_90])."
+
+msgid ""
+"Counter-clockwise rotation. Used by some methods (e.g. [method Image."
+"rotate_90])."
+msgstr ""
+"Rotation entgegen des Uhrzeigersinns. Wird von einigen Methoden verwendet (z."
+"B. [method Image.rotate_90])."
+
+msgid "Horizontal left alignment, usually for text-derived classes."
+msgstr ""
+"Linke horizontale Ausrichtung, normalerweise benutzt für von Text abgeleitete "
+"Klassen."
+
+msgid "Horizontal center alignment, usually for text-derived classes."
+msgstr ""
+"Zentrierte horizontale Ausrichtung, normalerweise benutzt für von Text "
+"abgeleitete Klassen."
+
+msgid "Horizontal right alignment, usually for text-derived classes."
+msgstr ""
+"Rechte horizontale Ausrichtung, normalerweise benutzt für von Text "
+"abgeleitete Klassen."
+
+msgid "Expand row to fit width, usually for text-derived classes."
+msgstr ""
+"Erweitern Sie die Zeile, um sie an die Breite anzupassen, in der Regel bei "
+"textbasierten Klassen."
+
+msgid "Vertical top alignment, usually for text-derived classes."
+msgstr ""
+"Obere vertikale Ausrichtung, normalerweise benutzt für von Text abgeleitete "
+"Klassen."
+
+msgid "Vertical center alignment, usually for text-derived classes."
+msgstr ""
+"Zentrierte vertikale Ausrichtung, normalerweise benutzt für von Text "
+"abgeleitete Klassen."
+
+msgid "Vertical bottom alignment, usually for text-derived classes."
+msgstr ""
+"Untere vertikale Ausrichtung, normalerweise benutzt für von Text abgeleitete "
+"Klassen."
+
+msgid "Expand rows to fit height, usually for text-derived classes."
+msgstr ""
+"Erweitern Sie die Zeilen, um sie an die Höhe anzupassen, in der Regel bei "
+"textbasierten Klassen."
+
+msgid ""
+"Aligns the top of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"Richtet den oberen Rand des Inline-Objekts (z. B. Bild, Tabelle) an der "
+"Position des durch die Konstante [code]INLINE_ALIGNMENT_TO_*[/code] "
+"angegebenen Textes aus."
+
+msgid ""
+"Aligns the center of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"Richtet die Mitte des Inline-Objekts (z.B. Bild, Tabelle) an der Position des "
+"durch die Konstante [code]INLINE_ALIGNMENT_TO_*[/code] angegebenen Textes aus."
+
+msgid ""
+"Aligns the baseline (user defined) of the inline object (e.g. image, table) "
+"to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] "
+"constant."
+msgstr ""
+"Richtet die (benutzerdefinierte) Grundlinie des Inline-Objekts (z. B. Bild, "
+"Tabelle) an der Position des durch die Konstante [code]INLINE_ALIGNMENT_TO_*[/"
+"code] angegebenen Textes aus."
+
+msgid ""
+"Aligns the bottom of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"Richtet den unteren Rand des Inline-Objekts (z. B. Bild, Tabelle) an der "
+"Position des durch die Konstante [code]INLINE_ALIGNMENT_TO_*[/code] "
+"angegebenen Textes aus."
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the top of the text."
+msgstr ""
+"Richtet die Position des durch die Konstante [code]INLINE_ALIGNMENT_*_TO[/"
+"code] angegebenen Inline-Objekts (z. B. Bild, Tabelle) am oberen Rand des "
+"Textes aus."
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the center of the text."
+msgstr ""
+"Richtet die Position des durch die Konstante [code]INLINE_ALIGNMENT_*_TO[/"
+"code] angegebenen Inline-Objekts (z. B. Bild, Tabelle) an der Mitte des "
+"Textes aus."
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the baseline of the text."
+msgstr ""
+"Richtet die Position des durch die Konstante [code]INLINE_ALIGNMENT_*_TO[/"
+"code] angegebenen Inline-Objekts (z. B. Bild, Tabelle) an der Grundlinie des "
+"Textes aus."
+
+msgid "Aligns inline object (e.g. image, table) to the bottom of the text."
+msgstr ""
+"Richtet das Inline-Objekt (z. B. Bild, Tabelle) am unteren Rand des Textes "
+"aus."
+
+msgid ""
+"Aligns top of the inline object (e.g. image, table) to the top of the text. "
+"Equivalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code]."
+msgstr ""
+"Richtet den oberen Rand des Inline-Objekts (z. B. Bild, Tabelle) am oberen "
+"Rand des Textes aus. Äquivalent zu [code]INLINE_ALIGNMENT_TOP_TO | "
+"INLINE_ALIGNMENT_TO_TOP[/code]."
+
+msgid ""
+"Aligns center of the inline object (e.g. image, table) to the center of the "
+"text. Equivalent to [code]INLINE_ALIGNMENT_CENTER_TO | "
+"INLINE_ALIGNMENT_TO_CENTER[/code]."
+msgstr ""
+"Richtet die Mitte des Inline-Objekts (z. B. Bild, Tabelle) an der Mitte des "
+"Textes aus. Äquivalent zu [code]INLINE_ALIGNMENT_CENTER_TO | "
+"INLINE_ALIGNMENT_TO_CENTER[/code]."
+
+msgid ""
+"Aligns bottom of the inline object (e.g. image, table) to the bottom of the "
+"text. Equivalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | "
+"INLINE_ALIGNMENT_TO_BOTTOM[/code]."
+msgstr ""
+"Richtet den unteren Rand des Inline-Objekts (z. B. Bild, Tabelle) am unteren "
+"Rand des Textes aus. Äquivalent zu [code]INLINE_ALIGNMENT_BOTTOM_TO | "
+"INLINE_ALIGNMENT_TO_BOTTOM[/code]."
+
+msgid "A bit mask for [code]INLINE_ALIGNMENT_*_TO[/code] alignment constants."
+msgstr ""
+"Eine Bitmaske für [code]INLINE_ALIGNMENT_*_TO[/code] Ausrichtungskonstanten."
+
+msgid "A bit mask for [code]INLINE_ALIGNMENT_TO_*[/code] alignment constants."
+msgstr ""
+"Eine Bitmaske für [code]INLINE_ALIGNMENT_TO_*[/code] Ausrichtungskonstanten."
+
+msgid ""
+"Specifies that Euler angles should be in XYZ order. When composing, the order "
+"is X, Y, Z. When decomposing, the order is reversed, first Z, then Y, and X "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge XYZ sein sollen. Beim "
+"Zusammensetzen ist die Reihenfolge X, Y, Z. Beim Zerlegen ist die Reihenfolge "
+"umgekehrt, zuerst Z, dann Y und zuletzt X."
+
+msgid ""
+"Specifies that Euler angles should be in XZY order. When composing, the order "
+"is X, Z, Y. When decomposing, the order is reversed, first Y, then Z, and X "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge XZY stehen sollen. Beim "
+"Zusammensetzen ist die Reihenfolge X, Z, Y. Beim Zerlegen ist die Reihenfolge "
+"umgekehrt, zuerst Y, dann Z und zuletzt X."
+
+msgid ""
+"Specifies that Euler angles should be in YXZ order. When composing, the order "
+"is Y, X, Z. When decomposing, the order is reversed, first Z, then X, and Y "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge YXZ sein sollen. Beim "
+"Zusammensetzen ist die Reihenfolge Y, X, Z. Beim Zerlegen ist die Reihenfolge "
+"umgekehrt, zuerst Z, dann X und zuletzt Y."
+
+msgid ""
+"Specifies that Euler angles should be in YZX order. When composing, the order "
+"is Y, Z, X. When decomposing, the order is reversed, first X, then Z, and Y "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge YZX sein sollen. Beim "
+"Zusammensetzen ist die Reihenfolge Y, Z, X. Beim Zerlegen ist die Reihenfolge "
+"umgekehrt, zuerst X, dann Z und zuletzt Y."
+
+msgid ""
+"Specifies that Euler angles should be in ZXY order. When composing, the order "
+"is Z, X, Y. When decomposing, the order is reversed, first Y, then X, and Z "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge ZXY sein sollen. Beim "
+"Zusammensetzen ist die Reihenfolge Z, X, Y. Bei der Zerlegung ist die "
+"Reihenfolge umgekehrt, zuerst Y, dann X und zuletzt Z."
+
+msgid ""
+"Specifies that Euler angles should be in ZYX order. When composing, the order "
+"is Z, Y, X. When decomposing, the order is reversed, first X, then Y, and Z "
+"last."
+msgstr ""
+"Gibt an, dass die Euler-Winkel in der Reihenfolge ZYX sein sollen. Beim "
+"Zusammensetzen ist die Reihenfolge Z, Y, X. Beim Zerlegen ist die Reihenfolge "
+"umgekehrt, zuerst X, dann Y und zuletzt Z."
+
+msgid ""
+"Enum value which doesn't correspond to any key. This is used to initialize "
+"[enum Key] properties with a generic state."
+msgstr ""
+"Enum-Wert, der keinem Schlüssel entspricht. Dies wird verwendet, um [enum "
+"Key]-Eigenschaften mit einem generischen Zustand zu initialisieren."
+
+msgid "Keycodes with this bit applied are non-printable."
+msgstr "Schlüsselcodes mit diesem Bit sind nicht druckbar."
+
+msgid "Escape key."
+msgstr "Escape Taste."
+
+msgid "Tab key."
+msgstr "Tabulator Taste."
+
+msgid "Shift + Tab key."
+msgstr "Shift + Tab Taste."
+
+msgid "Backspace key."
+msgstr "Backspace Taste."
+
+msgid "Return key (on the main keyboard)."
+msgstr "Eingabe Taste (auf dem Hauptblock)."
+
+msgid "Enter key on the numeric keypad."
+msgstr "Enter Taste (auf dem Ziffernblock)."
+
+msgid "Insert key."
+msgstr "Einfügen Taste."
+
+msgid "Delete key."
+msgstr "Löschen Taste."
+
+msgid "Pause key."
+msgstr "Pause/Unterbrechen Taste."
+
+msgid "Print Screen key."
+msgstr "Drucken Taste."
+
+msgid "System Request key."
+msgstr "Systemabfrage Taste."
+
+msgid "Clear key."
+msgstr "Entfernen Taste."
+
+msgid "Home key."
+msgstr "Pos1 Taste."
+
+msgid "End key."
+msgstr "Ende Taste."
+
+msgid "Left arrow key."
+msgstr "Linke Pfeiltaste."
+
+msgid "Up arrow key."
+msgstr "obere Pfeiltaste."
+
+msgid "Right arrow key."
+msgstr "rechte Pfeiltaste."
+
+msgid "Down arrow key."
+msgstr "untere Pfeiltaste."
+
+msgid "Page Up key."
+msgstr "Bild hoch Taste."
+
+msgid "Page Down key."
+msgstr "Bild runter Taste."
+
+msgid "Shift key."
+msgstr "Shift Taste."
+
+msgid "Control key."
+msgstr "Control Taste."
+
+msgid "Meta key."
+msgstr "Meta Taste."
+
+msgid "Alt key."
+msgstr "Alt Taste."
+
+msgid "Caps Lock key."
+msgstr "Feststelltaste."
+
+msgid "Num Lock key."
+msgstr "Num Lock Taste."
+
+msgid "Scroll Lock key."
+msgstr "Rollen Taste."
+
+msgid "F1 key."
+msgstr "F1 Taste."
+
+msgid "F2 key."
+msgstr "F2 Taste."
+
+msgid "F3 key."
+msgstr "F3 Taste."
+
+msgid "F4 key."
+msgstr "F4 Taste."
+
+msgid "F5 key."
+msgstr "F5 Taste."
+
+msgid "F6 key."
+msgstr "F6 Taste."
+
+msgid "F7 key."
+msgstr "F7 Taste."
+
+msgid "F8 key."
+msgstr "F8 Taste."
+
+msgid "F9 key."
+msgstr "F9 Taste."
+
+msgid "F10 key."
+msgstr "F10 Taste."
+
+msgid "F11 key."
+msgstr "F11 Taste."
+
+msgid "F12 key."
+msgstr "F12 Taste."
+
+msgid "F13 key."
+msgstr "F13 Taste."
+
+msgid "F14 key."
+msgstr "F14 Taste."
+
+msgid "F15 key."
+msgstr "F15 Taste."
+
+msgid "F16 key."
+msgstr "F16 Taste."
+
+msgid "F17 key."
+msgstr "F17 Taste."
+
+msgid "F18 key."
+msgstr "F18 Taste."
+
+msgid "F19 key."
+msgstr "F19 Taste."
+
+msgid "F20 key."
+msgstr "F20 Taste."
+
+msgid "F21 key."
+msgstr "F21 Taste."
+
+msgid "F22 key."
+msgstr "F22 Taste."
+
+msgid "F23 key."
+msgstr "F23 Taste."
+
+msgid "F24 key."
+msgstr "F24 Taste."
+
+msgid "F25 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F25-Taste. Aufgrund einer Windows-Beschränkung nur auf macOS und Linux "
+"unterstützt."
+
+msgid "F26 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F26-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F27 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F27-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F28 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F28-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F29 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F29-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F30 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F30-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F31 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F31-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F32 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F32-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F33 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F33-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F34 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F34-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "F35 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr ""
+"F35-Taste. Wird aufgrund einer Windows-Beschränkung nur unter macOS und Linux "
+"unterstützt."
+
+msgid "Multiply (*) key on the numeric keypad."
+msgstr "Multiplikations (*) Taste auf dem Ziffernblock."
+
+msgid "Divide (/) key on the numeric keypad."
+msgstr "Divisions (/) Taste auf dem Ziffernblock."
+
+msgid "Subtract (-) key on the numeric keypad."
+msgstr "Subtraktions (-) Taste auf dem Ziffernblock."
+
+msgid "Period (.) key on the numeric keypad."
+msgstr "Komma (,) Taste auf dem Ziffernblock."
+
+msgid "Add (+) key on the numeric keypad."
+msgstr "Additions (+) Taste auf dem Ziffernblock."
+
+msgid "Number 0 on the numeric keypad."
+msgstr "Zahl 0 auf dem Ziffernblock."
+
+msgid "Number 1 on the numeric keypad."
+msgstr "Zahl 1 auf dem Ziffernblock."
+
+msgid "Number 2 on the numeric keypad."
+msgstr "Zahl 2 auf dem Ziffernblock."
+
+msgid "Number 3 on the numeric keypad."
+msgstr "Zahl 3 auf dem Ziffernblock."
+
+msgid "Number 4 on the numeric keypad."
+msgstr "Zahl 4 auf dem Ziffernblock."
+
+msgid "Number 5 on the numeric keypad."
+msgstr "Zahl 5 auf dem Ziffernblock."
+
+msgid "Number 6 on the numeric keypad."
+msgstr "Zahl 6 auf dem Ziffernblock."
+
+msgid "Number 7 on the numeric keypad."
+msgstr "Zahl 7 auf dem Ziffernblock."
+
+msgid "Number 8 on the numeric keypad."
+msgstr "Zahl 8 auf dem Ziffernblock."
+
+msgid "Number 9 on the numeric keypad."
+msgstr "Zahl 9 auf dem Ziffernblock."
+
+msgid "Context menu key."
+msgstr "Menü Taste."
+
+msgid "Hyper key. (On Linux/X11 only)."
+msgstr "Hyper-Taste. (Nur unter Linux/X11)."
+
+msgid "Help key."
+msgstr "Hilfe Taste."
+
+msgid ""
+"Media back key. Not to be confused with the Back button on an Android device."
+msgstr ""
+"Media back Taste. Nicht zu verwechseln mit der Zurück-Taste auf einem Android-"
+"Gerät."
+
+msgid "Media forward key."
+msgstr "Medien-Vorwärts-Taste."
+
+msgid "Media stop key."
+msgstr "Medium stoppen Taste."
+
+msgid "Media refresh key."
+msgstr "Medien-Neuladen-Taste."
+
+msgid "Volume down key."
+msgstr "Lautstärke-runter Taste."
+
+msgid "Mute volume key."
+msgstr "Stummschalten Taste."
+
+msgid "Volume up key."
+msgstr "Lauter-Taste."
+
+msgid "Media play key."
+msgstr "\"Medium abspielen\"-Taste."
+
+msgid "Previous song key."
+msgstr "Vorheriger Song Taste."
+
+msgid "Next song key."
+msgstr "Nächster Song Taste."
+
+msgid "Media record key."
+msgstr "Medium aufnehmen Taste."
+
+msgid "Home page key."
+msgstr "Hauptseiten Taste."
+
+msgid "Favorites key."
+msgstr "Favoriten Taste."
+
+msgid "Search key."
+msgstr "Suchen Taste."
+
+msgid "Standby key."
+msgstr "Standby TAste."
+
+msgid "Open URL / Launch Browser key."
+msgstr "Öffne URL / Starte Browser Taste."
+
+msgid "Launch Mail key."
+msgstr "Starte E-Mail Taste."
+
+msgid "Launch Media key."
+msgstr "Starte-Medien Taste."
+
+msgid "Launch Shortcut 0 key."
+msgstr "Starte Verknüpfung 0 Taste."
+
+msgid "Launch Shortcut 1 key."
+msgstr "Starte Verknüpfung 1 Taste."
+
+msgid "Launch Shortcut 2 key."
+msgstr "Starte Verknüpfung 2 Taste."
+
+msgid "Launch Shortcut 3 key."
+msgstr "Starte Verknüpfung 3 Taste."
+
+msgid "Launch Shortcut 4 key."
+msgstr "Starte Verknüpfung 4 Taste."
+
+msgid "Launch Shortcut 5 key."
+msgstr "Starte Verknüpfung 5 Taste."
+
+msgid "Launch Shortcut 6 key."
+msgstr "Starte Verknüpfung 6 Taste."
+
+msgid "Launch Shortcut 7 key."
+msgstr "Starte Verknüpfung 7 Taste."
+
+msgid "Launch Shortcut 8 key."
+msgstr "Starte Verknüpfung 8 Taste."
+
+msgid "Launch Shortcut 9 key."
+msgstr "Starte Verknüpfung 9 Taste."
+
+msgid "Launch Shortcut A key."
+msgstr "Starte Verknüpfung A Taste."
+
+msgid "Launch Shortcut B key."
+msgstr "Starte Verknüpfung B Taste."
+
+msgid "Launch Shortcut C key."
+msgstr "Starte Verknüpfung C Taste."
+
+msgid "Launch Shortcut D key."
+msgstr "Starte Verknüpfung D Taste."
+
+msgid "Launch Shortcut E key."
+msgstr "Starte Verknüpfung E Taste."
+
+msgid "Launch Shortcut F key."
+msgstr "Starte Verknüpfung F Taste."
+
+msgid "\"Globe\" key on Mac / iPad keyboard."
+msgstr "„Globus“-Taste auf Mac-/iPad-Tastatur."
+
+msgid "\"On-screen keyboard\" key on iPad keyboard."
+msgstr "Taste \"Bildschirmtastatur\" auf der iPad-Tastatur."
+
+msgid "英数 key on Mac keyboard."
+msgstr "英数-Taste auf der Mac-Tastatur."
+
+msgid "かな key on Mac keyboard."
+msgstr "„かな“-Taste auf Mac-Tastatur."
+
+msgid "Unknown key."
+msgstr "Unbekannte Taste."
+
+msgid "Space key."
+msgstr "Leertaste."
+
+msgid "! key."
+msgstr "! Taste."
+
+msgid "\" key."
+msgstr "\" Taste."
+
+msgid "# key."
+msgstr "# Taste."
+
+msgid "$ key."
+msgstr "$ Taste."
+
+msgid "% key."
+msgstr "% Taste."
+
+msgid "& key."
+msgstr "& Taste."
+
+msgid "' key."
+msgstr "' Taste."
+
+msgid "( key."
+msgstr "( Taste."
+
+msgid ") key."
+msgstr ") Taste."
+
+msgid "* key."
+msgstr "* Taste."
+
+msgid "+ key."
+msgstr "+ Taste."
+
+msgid ", key."
+msgstr ", Taste."
+
+msgid "- key."
+msgstr "- Taste."
+
+msgid ". key."
+msgstr ". Taste."
+
+msgid "/ key."
+msgstr "/ Taste."
+
+msgid "Number 0 key."
+msgstr "Nummer-0-Taste."
+
+msgid "Number 1 key."
+msgstr "Nummer-1-Taste."
+
+msgid "Number 2 key."
+msgstr "Nummer-2-Taste."
+
+msgid "Number 3 key."
+msgstr "Nummer-3-Taste."
+
+msgid "Number 4 key."
+msgstr "Nummer-4-Taste."
+
+msgid "Number 5 key."
+msgstr "Nummer-5-Taste."
+
+msgid "Number 6 key."
+msgstr "Nummer-6-Taste."
+
+msgid "Number 7 key."
+msgstr "Nummer-7-Taste."
+
+msgid "Number 8 key."
+msgstr "Nummer-8-Taste."
+
+msgid "Number 9 key."
+msgstr "Nummer-9-Taste."
+
+msgid ": key."
+msgstr ": Taste."
+
+msgid "; key."
+msgstr "; Taste."
+
+msgid "< key."
+msgstr "< Taste."
+
+msgid "= key."
+msgstr "= Taste."
+
+msgid "> key."
+msgstr "> Taste."
+
+msgid "? key."
+msgstr "? Taste."
+
+msgid "@ key."
+msgstr "@ Taste."
+
+msgid "A key."
+msgstr "A Taste."
+
+msgid "B key."
+msgstr "B Taste."
+
+msgid "C key."
+msgstr "C Taste."
+
+msgid "D key."
+msgstr "D Taste."
+
+msgid "E key."
+msgstr "E Taste."
+
+msgid "F key."
+msgstr "F Taste."
+
+msgid "G key."
+msgstr "G Taste."
+
+msgid "H key."
+msgstr "H Taste."
+
+msgid "I key."
+msgstr "I Taste."
+
+msgid "J key."
+msgstr "J Taste."
+
+msgid "K key."
+msgstr "K Taste."
+
+msgid "L key."
+msgstr "L Taste."
+
+msgid "M key."
+msgstr "M Taste."
+
+msgid "N key."
+msgstr "N Taste."
+
+msgid "O key."
+msgstr "O Taste."
+
+msgid "P key."
+msgstr "P Taste."
+
+msgid "Q key."
+msgstr "Q Taste."
+
+msgid "R key."
+msgstr "R Taste."
+
+msgid "S key."
+msgstr "S Taste."
+
+msgid "T key."
+msgstr "T Taste."
+
+msgid "U key."
+msgstr "U Taste."
+
+msgid "V key."
+msgstr "V Taste."
+
+msgid "W key."
+msgstr "W Taste."
+
+msgid "X key."
+msgstr "X Taste."
+
+msgid "Y key."
+msgstr "Y Taste."
+
+msgid "Z key."
+msgstr "Z Taste."
+
+msgid "[ key."
+msgstr "[ Taste."
+
+msgid "\\ key."
+msgstr "\\ Taste."
+
+msgid "] key."
+msgstr "] Taste."
+
+msgid "^ key."
+msgstr "^ Taste."
+
+msgid "_ key."
+msgstr "_ Taste."
+
+msgid "` key."
+msgstr "` Taste."
+
+msgid "{ key."
+msgstr "{ Taste."
+
+msgid "| key."
+msgstr "| Taste."
+
+msgid "} key."
+msgstr "} Taste."
+
+msgid "~ key."
+msgstr "~ Taste."
+
+msgid "¥ key."
+msgstr "¥ Taste."
+
+msgid "§ key."
+msgstr "§ Taste."
+
+msgid "Key Code mask."
+msgstr "Taste Code-Maske."
+
+msgid "Modifier key mask."
+msgstr "Modifikatorschlüsselmaske."
+
+msgid ""
+"Automatically remapped to [constant KEY_META] on macOS and [constant "
+"KEY_CTRL] on other platforms, this mask is never set in the actual events, "
+"and should be used for key mapping only."
+msgstr ""
+"Diese Maske wird unter macOS automatisch auf [Konstante KEY_META] und auf "
+"anderen Plattformen auf [Konstante KEY_CTRL] abgebildet. Sie wird in den "
+"tatsächlichen Ereignissen nie gesetzt und sollte nur für die Tastenzuordnung "
+"verwendet werden."
+
+msgid "Shift key mask."
+msgstr "Shift-Tastenmaske."
+
+msgid "Alt or Option (on macOS) key mask."
+msgstr "Alt- oder Optionstaste (unter macOS)."
+
+msgid "Command (on macOS) or Meta/Windows key mask."
+msgstr "Befehl (unter macOS) oder Meta/Windows-Tastenmaske."
+
+msgid "Control key mask."
+msgstr "Strg-Taste."
+
+msgid "Keypad key mask."
+msgstr "Tastatur-Tastenmaske."
+
+msgid "Group Switch key mask."
+msgstr "Gruppenschalter-Tastenmaske."
+
+msgid ""
+"Enum value which doesn't correspond to any mouse button. This is used to "
+"initialize [enum MouseButton] properties with a generic state."
+msgstr ""
+"Enum-Wert, der keiner Maustaste entspricht. Dies wird verwendet, um [enum "
+"MouseButton]-Eigenschaften mit einem generischen Zustand zu initialisieren."
+
+msgid "Primary mouse button, usually assigned to the left button."
+msgstr "Primäre Maustaste, in der Regel der linken Taste zugewiesen."
+
+msgid "Secondary mouse button, usually assigned to the right button."
+msgstr "Sekundäre Maustaste, die in der Regel der rechten Taste zugewiesen ist."
+
+msgid "Middle mouse button."
+msgstr "Mittlere Maustaste."
+
+msgid "Mouse wheel scrolling up."
+msgstr "Mausrad nach oben scrollen."
+
+msgid "Mouse wheel scrolling down."
+msgstr "Mausrad nach unten scrollen."
+
+msgid "Mouse wheel left button (only present on some mice)."
+msgstr "Mausrad linke Taste (nur auf einigen Mäusen vorhanden)."
+
+msgid "Mouse wheel right button (only present on some mice)."
+msgstr "Mausrad rechte Taste (nur auf einigen Mäusen vorhanden)."
+
+msgid ""
+"Extra mouse button 1. This is sometimes present, usually to the sides of the "
+"mouse."
+msgstr ""
+"Maus-Zusatztaste 1. Dies ist manchmal vorhanden, für gewöhnlich an den Seiten "
+"der Maus."
+
+msgid ""
+"Extra mouse button 2. This is sometimes present, usually to the sides of the "
+"mouse."
+msgstr ""
+"Maus-Zusatztaste 2. Dies ist manchmal vorhanden, für gewöhnlich an den Seiten "
+"der Maus."
+
+msgid "Primary mouse button mask, usually for the left button."
+msgstr "Primäre Maustastenmaske, normalerweise für die linke Taste."
+
+msgid "Secondary mouse button mask, usually for the right button."
+msgstr "Sekundäre Maustastenmaske, normalerweise für die rechte Taste."
+
+msgid "Middle mouse button mask."
+msgstr "Mittlere Maustastenmaske."
+
+msgid "Extra mouse button 1 mask."
+msgstr "Extra Maustaste 1 Maske."
+
+msgid "Extra mouse button 2 mask."
+msgstr "Extra Maustaste 2 Maske."
+
+msgid "An invalid game controller button."
+msgstr "Ein ungültiger Spielcontroller-Button."
+
+msgid ""
+"Game controller SDL button A. Corresponds to the bottom action button: Sony "
+"Cross, Xbox A, Nintendo B."
+msgstr ""
+"SDL-Taste A des Gamecontrollers. Entspricht der unteren Aktionstaste: Sony "
+"Cross, Xbox A, Nintendo B."
+
+msgid ""
+"Game controller SDL button B. Corresponds to the right action button: Sony "
+"Circle, Xbox B, Nintendo A."
+msgstr ""
+"SDL-Taste B des Game Controllers. Entspricht der rechten Aktionstaste: Sony "
+"Kreis, Xbox B, Nintendo A."
+
+msgid ""
+"Game controller SDL button X. Corresponds to the left action button: Sony "
+"Square, Xbox X, Nintendo Y."
+msgstr ""
+"SDL-Taste des Gamecontrollers X. Entspricht der linken Aktionstaste: Sony "
+"Quadrat, Xbox X, Nintendo Y."
+
+msgid ""
+"Game controller SDL button Y. Corresponds to the top action button: Sony "
+"Triangle, Xbox Y, Nintendo X."
+msgstr ""
+"SDL-Taste des Game Controllers Y. Entspricht der oberen Aktionstaste: Sony "
+"Dreieck, Xbox Y, Nintendo X."
+
+msgid ""
+"Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, "
+"Nintendo - button."
+msgstr ""
+"SDL Zurück-Taste des Game Controllers. Entspricht der Sony Select, Xbox Back, "
+"Nintendo - Taste."
+
+msgid ""
+"Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home "
+"button."
+msgstr ""
+"SDL-Führungstaste des Game Controllers. Entspricht der Sony PS, Xbox Home-"
+"Taste."
+
+msgid ""
+"Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS "
+"button."
+msgstr ""
+"Taste für den linken Stick des Gamecontrollers SDL. Entspricht der Sony L3, "
+"Xbox L/LS-Taste."
+
+msgid ""
+"Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS "
+"button."
+msgstr ""
+"Taste für den rechten Stick des Gamecontrollers SDL. Entspricht der Sony R3, "
+"Xbox R/RS Taste."
+
+msgid ""
+"Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB "
+"button."
+msgstr ""
+"Linke Schultertaste des Gamecontrollers SDL. Entspricht der Sony L1, Xbox LB-"
+"Taste."
+
+msgid ""
+"Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox "
+"RB button."
+msgstr ""
+"Rechte Schultertaste des Gamecontrollers SDL. Entspricht der Sony R1, Xbox RB "
+"Taste."
+
+msgid "Game controller D-pad up button."
+msgstr "Spielcontroller-Steuerkreuz-Hoch-Taste."
+
+msgid "Game controller D-pad down button."
+msgstr "Spielcontroller-Steuerkreuz-Runter-Taste."
+
+msgid "Game controller D-pad left button."
+msgstr "Spielcontroller-Steuerkreuz-Links-Taste."
+
+msgid "Game controller D-pad right button."
+msgstr "Spielcontroller-Steuerkreuz-Rechts-Taste."
+
+msgid ""
+"Game controller SDL miscellaneous button. Corresponds to Xbox share button, "
+"PS5 microphone button, Nintendo Switch capture button."
+msgstr ""
+"SDL Taste für verschiedene Spielcontroller. Entspricht der Xbox-"
+"Freigabetaste, der PS5-Mikrofontaste und der Nintendo Switch-Aufnahmetaste."
+
+msgid "Game controller SDL paddle 1 button."
+msgstr "Spiel-Controller SDL Paddle 1-Button."
+
+msgid "Game controller SDL paddle 2 button."
+msgstr "Spiel-Controller SDL Paddle 2-Button."
+
+msgid "Game controller SDL paddle 3 button."
+msgstr "Spiel-Controller SDL Paddle 3-Button."
+
+msgid "Game controller SDL paddle 4 button."
+msgstr "Spiel-Controller SDL Paddle 4-Button."
+
+msgid "Game controller SDL touchpad button."
+msgstr "Gamecontroller-SDL-Touchpad-Button."
+
+msgid "The number of SDL game controller buttons."
+msgstr "Die Anzahl der SDL-Spielcontroller-Buttons."
+
+msgid ""
+"The maximum number of game controller buttons supported by the engine. The "
+"actual limit may be lower on specific platforms:\n"
+"- [b]Android:[/b] Up to 36 buttons.\n"
+"- [b]Linux:[/b] Up to 80 buttons.\n"
+"- [b]Windows[/b] and [b]macOS:[/b] Up to 128 buttons."
+msgstr ""
+"Die maximale Anzahl der von der Engine unterstützten Spielcontroller-Tasten. "
+"Die tatsächliche Grenze kann auf bestimmten Plattformen niedriger sein:\n"
+"- [b]Android:[/b] Bis zu 36 Tasten.\n"
+"- [b]Linux:[/b] Bis zu 80 Tasten.\n"
+"- [b]Windows[/b] und [b]macOS:[/b] Bis zu 128 Tasten."
+
+msgid "An invalid game controller axis."
+msgstr "Eine ungültige Spielcontrollerachse."
+
+msgid "Game controller left joystick x-axis."
+msgstr "Game Controller linke Joystick x-Achse."
+
+msgid "Game controller left joystick y-axis."
+msgstr "Game Controller linke Joystick y-Achse."
+
+msgid "Game controller right joystick x-axis."
+msgstr "Game Controller rechte Joystick x-Achse."
+
+msgid "Game controller right joystick y-axis."
+msgstr "Game Controller rechte Joystick y-Achse."
+
+msgid "Game controller left trigger axis."
+msgstr "Linke Triggerachse des Gamecontrollers."
+
+msgid "Game controller right trigger axis."
+msgstr "Rechte Triggerachse des Gamecontrollers."
+
+msgid "The number of SDL game controller axes."
+msgstr "Die Anzahl der Achsen des SDL Game Controllers."
+
+msgid ""
+"The maximum number of game controller axes: OpenVR supports up to 5 Joysticks "
+"making a total of 10 axes."
+msgstr ""
+"Die maximale Anzahl der Achsen des Gamecontrollers: OpenVR unterstützt bis zu "
+"5 Joysticks mit insgesamt 10 Achsen."
+
+msgid ""
+"Enum value which doesn't correspond to any MIDI message. This is used to "
+"initialize [enum MIDIMessage] properties with a generic state."
+msgstr ""
+"Enum-Wert, der keiner MIDI-Nachricht entspricht. Dies wird verwendet, um "
+"[enum MIDIMessage]-Eigenschaften mit einem generischen Zustand zu "
+"initialisieren."
+
+msgid ""
+"MIDI note OFF message. Not all MIDI devices send this event; some send "
+"[constant MIDI_MESSAGE_NOTE_ON] with zero velocity instead. See the "
+"documentation of [InputEventMIDI] for information of how to use MIDI inputs."
+msgstr ""
+"MIDI Note OFF-Message. Nicht alle MIDI-Geräte senden dieses Ereignis; einige "
+"senden stattdessen [constant MIDI_MESSAGE_NOTE_ON] mit Velocity Null. Siehe "
+"die Dokumentation von [InputEventMIDI] für Informationen, wie man MIDI-"
+"Eingänge verwendet."
+
+msgid ""
+"MIDI note ON message. Some MIDI devices send this event with velocity zero "
+"instead of [constant MIDI_MESSAGE_NOTE_OFF], but implementations vary. See "
+"the documentation of [InputEventMIDI] for information of how to use MIDI "
+"inputs."
+msgstr ""
+"MIDI Note ON-Message. Einige MIDI-Geräte senden dieses Ereignis mit Velocity "
+"Null anstelle der [Konstante MIDI_MESSAGE_NOTE_OFF], aber die "
+"Implementierungen variieren. Siehe die Dokumentation von [InputEventMIDI] für "
+"Informationen über die Verwendung von MIDI-Eingängen."
+
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr ""
+"MIDI-Aftertouch-Meldung. Diese Meldung wird meistens durch Drücken der Taste "
+"nachdem sie den Tiefpunkt erreicht hat gesendet."
+
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+"Änderungsmitteilung für eine MIDI-Steuerungseinheit. Diese Mitteilung wird "
+"gesendet, sollte sich der Wert einer Steuerungseinheit ändern. "
+"Steuerungseinheiten sind zum Beispiel Pedale und Schalter."
+
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr ""
+"MIDI-Programmwechselmeldung. Diese Meldung wird gesendet, wenn sich die "
+"Programm-Patch-Nummer ändert."
+
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+"MIDI-Kanal-Druckmeldung. Diese Meldung wird meistens durch Drücken der Taste "
+"nachdem sie den Tiefpunkt erreicht hat gesendet.Diese Meldung unterscheidet "
+"sich von der polyphonen Aftertouch-Meldung, da sie den höchsten Druck über "
+"alle Tasten hinweg anzeigt."
+
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr ""
+"MIDI-Pitch-Bend-Meldung. Diese Meldung wird gesendet, um eine Änderung des "
+"Pitch-Benders (typischerweise Rad oder Hebel) anzuzeigen."
+
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI-System-exklusive Nachricht. Dieses Verhalten gilt nur für das Gerät, von "
+"dem Sie Eingaben empfangen. Das Abrufen dieser Daten ist in Godot nicht "
+"implementiert."
+
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI-Viertel-Frame-Meldung. Enthält Zeitinformationen, die zur "
+"Synchronisierung von MIDI-Geräten verwendet werden. Das Abrufen dieser Daten "
+"ist in Godot nicht implementiert."
+
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI-Songpositionszeiger-Meldung. Gibt die Anzahl der 16tel-Noten seit Beginn "
+"des Liedes an. Das Abrufen dieser Daten ist in Godot nicht implementiert."
+
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI Mitteilung für Songauswahl. Legt fest, welche Musik-Sequenz oder welcher "
+"Song abgespielt werden soll. Das Abrufen dieser Daten ist nicht in Godot "
+"implementiert."
+
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr ""
+"MIDI Tune Request Nachricht. Beim Empfang einer Tune-Anforderung sollten alle "
+"analogen Synthesizer ihre Oszillatoren stimmen."
+
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr ""
+"MIDI Mitteilung zum Uhr-Timing. Diese Mitteilung wird 24 Mal pro Viertelnote "
+"gesendet, sollte eine Synchronisation erforderlich sein."
+
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr ""
+"MIDI Start-Mitteilung. Startet die Wiedergabe der aktuellen Sequenz. Dieser "
+"Mitteilung folgen die Uhr-Timings."
+
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr ""
+"MIDI Wiederaufnahme-Mitteilung. Die Wiedergabe der Sequenz wird an dem Punkt "
+"fortgesetzt, an dem die Wiedergabe gestoppt wurde."
+
+msgid "MIDI stop message. Stop the current sequence."
+msgstr "MIDI Stop-Mitteilung. Stoppt die Wiedergabe der aktuellen Sequenz."
+
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr ""
+"MIDI active sensing message. Diese Meldung soll wiederholt gesendet werden, "
+"um dem Empfänger mitzuteilen, dass eine Verbindung besteht."
+
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
+"MIDI System-Reset Mitteilung. Reset aller Empfänger im System in den "
+"Hochfahren-Status. Diese Mitteilung sollte nicht zum Starten der Empfänger "
+"selbst genutzt werden."
+
+msgid ""
+"Methods that return [enum Error] return [constant OK] when no error "
+"occurred.\n"
+"Since [constant OK] has value 0, and all other error constants are positive "
+"integers, it can also be used in boolean checks.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var error = method_that_returns_error()\n"
+"if error != OK:\n"
+" printerr(\"Failure!\")\n"
+"\n"
+"# Or, alternatively:\n"
+"if error:\n"
+" printerr(\"Still failing!\")\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Many functions do not return an error code, but will print error "
+"messages to standard output."
+msgstr ""
+"Methoden, die [enum Error] zurückgeben, geben [constant OK] zurück, wenn kein "
+"Fehler aufgetreten ist.\n"
+"Da die [constant OK] den Wert 0 hat und alle anderen Fehlerkonstanten "
+"positive Ganzzahlen sind, kann sie auch in booleschen Prüfungen verwendet "
+"werden.\n"
+"[b]Beispiel:[/b]\n"
+"[codeblock]\n"
+"var error = method_that_returns_error()\n"
+"if error != OK:\n"
+" printerr(\"Fehlgeschlagen!\")\n"
+"\n"
+"# Oder, alternativ:\n"
+"if error:\n"
+" printerr(\"Immer noch fehlgeschlagen!\")\n"
+"[/codeblock]\n"
+"[b]Hinweis:[/b] Viele Funktionen geben keinen Fehlercode zurück, sondern "
+"geben Fehlermeldungen auf der Standardausgabe aus."
+
+msgid "Generic error."
+msgstr "Allgemeiner Fehler."
+
+msgid "Unavailable error."
+msgstr "nicht vorhanden Fehler."
+
+msgid "Unconfigured error."
+msgstr "nicht konfigurierter Fehler."
+
+msgid "Unauthorized error."
+msgstr "nicht autorisierter Fehler."
+
+msgid "Parameter range error."
+msgstr "Parameterbereichsfehler."
+
+msgid "Out of memory (OOM) error."
+msgstr "Out of memory (OOM)-Fehler."
+
+msgid "File: Not found error."
+msgstr "Datei: Nicht gefunden - Fehler."
+
+msgid "File: Bad drive error."
+msgstr "Datei: Fehlerhaftes Laufwerk - Fehler."
+
+msgid "File: Bad path error."
+msgstr "Datei: Fehler im Pfad."
+
+msgid "File: No permission error."
+msgstr "Datei: Keine Berechtigung - Fehler."
+
+msgid "File: Already in use error."
+msgstr "Datei: Bereits in Verwendung Fehler."
+
+msgid "File: Can't open error."
+msgstr "Datei: Kann nicht geöffnet werden Fehler."
+
+msgid "File: Can't write error."
+msgstr "Datei: Kann nicht schreiben Fehler."
+
+msgid "File: Can't read error."
+msgstr "Datei: Kann nicht lesen Fehler."
+
+msgid "File: Unrecognized error."
+msgstr "Datei: Unbekannter Fehler."
+
+msgid "File: Corrupt error."
+msgstr "Datei: Beschädigt Fehler."
+
+msgid "File: Missing dependencies error."
+msgstr "Datei: Fehlende Abhängigkeiten Fehler."
+
+msgid "File: End of file (EOF) error."
+msgstr "Datei: Dateiende (EOF) Fehler."
+
+msgid "Can't open error."
+msgstr "Kann nicht geöffnet werden Fehler."
+
+msgid "Can't create error."
+msgstr "Kann nicht erstellt werden Fehler."
+
+msgid "Query failed error."
+msgstr "Abfrage fehlgeschlagen Fehler."
+
+msgid "Already in use error."
+msgstr "Bereits in Gebrauch Fehler."
+
+msgid "Locked error."
+msgstr "geblockt Fehler."
+
+msgid "Timeout error."
+msgstr "Timeout Fehler."
+
+msgid "Can't connect error."
+msgstr "Fehler: Kann keine Verbindung herstellen."
+
+msgid "Can't resolve error."
+msgstr "Kann nicht behoben werden Fehler."
+
+msgid "Connection error."
+msgstr "Verbindungs-Fehler."
+
+msgid "Can't acquire resource error."
+msgstr "Kann keine Ressource erfassen Fehler."
+
+msgid "Can't fork process error."
+msgstr "Kann nicht Prozess erben Fehler."
+
+msgid "Invalid data error."
+msgstr "Fehler aufgrund ungültiger Daten."
+
+msgid "Invalid parameter error."
+msgstr "Fehler aufgrund ungültiger Parameter."
+
+msgid "Already exists error."
+msgstr "Bereits vorhanden Fehler."
+
+msgid "Does not exist error."
+msgstr "Existiert nicht Fehler."
+
+msgid "Database: Read error."
+msgstr "Datenbank: Lesefehler."
+
+msgid "Database: Write error."
+msgstr "Datenbank: Schreibfehler."
+
+msgid "Compilation failed error."
+msgstr "Fehler bei der Kompilierung."
+
+msgid "Method not found error."
+msgstr "Methode nicht gefunden Fehler."
+
+msgid "Linking failed error."
+msgstr "Verknüpfen fehlgeschlagen Fehler."
+
+msgid "Script failed error."
+msgstr "Skript fehlgeschlagen Fehler."
+
+msgid "Cycling link (import cycle) error."
+msgstr "Cycling Link (Importzyklus) Fehler."
+
+msgid "Invalid declaration error."
+msgstr "Ungültige Deklaration Fehler."
+
+msgid "Duplicate symbol error."
+msgstr "Doppeltes Symbol Fehler."
+
+msgid "Parse error."
+msgstr "Übersetzungs-Fehler."
+
+msgid "Busy error."
+msgstr "besetzt (busy) Fehler."
+
+msgid "Skip error."
+msgstr "Fehler überspringen."
+
+msgid ""
+"Help error. Used internally when passing [code]--version[/code] or [code]--"
+"help[/code] as executable options."
+msgstr ""
+"Hilfe-Fehler. Wird intern verwendet, wenn [code]--version[/code] oder [code]--"
+"help[/code] als ausführbare Optionen übergeben werden."
+
+msgid ""
+"Bug error, caused by an implementation issue in the method.\n"
+"[b]Note:[/b] If a built-in method returns this code, please open an issue on "
+"[url=https://github.com/godotengine/godot/issues]the GitHub Issue Tracker[/"
+"url]."
+msgstr ""
+"Fehler, verursacht durch ein Implementierungsproblem in der Methode.\n"
+"[b]Hinweis:[/b] Wenn eine eingebaute Methode diesen Code zurückgibt, öffnen "
+"Sie bitte ein Problem auf [url=https://github.com/godotengine/godot/"
+"issues]dem GitHub Issue Tracker[/url]."
+
+msgid ""
+"Printer on fire error (This is an easter egg, no built-in methods return this "
+"error code)."
+msgstr ""
+"Drucker brennt Fehler. (Dies ist ein Easteregg, keine Enginemethoden geben "
+"diesen Fehlercode zurück)."
+
+msgid "The property has no hint for the editor."
+msgstr "Die Eigenschaft hat keinen Hinweis für den Editor."
+
+msgid ""
+"Hints that an [int] or [float] property should be within a range specified "
+"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
+"code]. The hint string can optionally include [code]\"or_greater\"[/code] and/"
+"or [code]\"or_less\"[/code] to allow manual input going respectively above "
+"the max or below the min values.\n"
+"[b]Example:[/b] [code]\"-360,360,1,or_greater,or_less\"[/code].\n"
+"Additionally, other keywords can be included: [code]\"exp\"[/code] for "
+"exponential range editing, [code]\"radians_as_degrees\"[/code] for editing "
+"radian angles in degrees (the range values are also in degrees), "
+"[code]\"degrees\"[/code] to hint at an angle and [code]\"hide_slider\"[/code] "
+"to hide the slider."
+msgstr ""
+"Weist darauf hin, dass eine [int]- oder [float]-Eigenschaft innerhalb eines "
+"Bereichs liegen sollte, der mit der Hinweiszeichenfolge [code]\"min,max\"[/"
+"code] oder [code]\"min,max,step\"[/code] angegeben wird. Der Hinweisstring "
+"kann optional [code]\"oder_größer\"[/code] und/oder [code]\"oder_kleiner\"[/"
+"code] enthalten, um eine manuelle Eingabe oberhalb der Maximal- bzw. "
+"unterhalb der Minimalwerte zu ermöglichen.\n"
+"[b]Example:[/b] [code]\"-360,360,1,or_greater,or_less\"[/code].\n"
+"Zusätzlich können auch andere Schlüsselwörter verwendet werden: "
+"[code]\"exp\"[/code] für die Bearbeitung von exponentiellen Bereichen, "
+"[code]\"radians_as_degrees\"[/code] für die Bearbeitung von Bogenwinkeln in "
+"Grad (die Werte des Bereichs sind ebenfalls in Grad), [code]\"degrees\"[/"
+"code] für die Angabe eines Winkels und [code]\"hide_slider\"[/code] zum "
+"Ausblenden des Schiebereglers."
+
+msgid ""
+"Hints that an [int] or [String] property is an enumerated value to pick in a "
+"list specified via a hint string.\n"
+"The hint string is a comma separated list of names such as [code]\"Hello,"
+"Something,Else\"[/code]. Whitespaces are [b]not[/b] removed from either end "
+"of a name. For integer properties, the first name in the list has value 0, "
+"the next 1, and so on. Explicit values can also be specified by appending "
+"[code]:integer[/code] to the name, e.g. [code]\"Zero,One,Three:3,Four,"
+"Six:6\"[/code]."
+msgstr ""
+"Weist darauf hin, dass eine [int]- oder [String]-Eigenschaft ein "
+"Aufzählungswert ist, der in einer über eine Hinweiszeichenfolge angegebenen "
+"Liste auszuwählen ist.\n"
+"Die Hinweiszeichenfolge ist eine durch Kommata getrennte Liste von Namen wie "
+"[code]\"Hallo,Irgendwas,Sonst\"[/code]. Leerzeichen werden [b]nicht[/b] von "
+"beiden Enden eines Namens entfernt. Bei ganzzahligen Eigenschaften hat der "
+"erste Name in der Liste den Wert 0, der nächste 1 und so weiter. Explizite "
+"Werte können auch durch Anhängen von [code]:integer[/code] an den Namen "
+"angegeben werden, z. B. [code]\"Null,Eins,Drei:3,Vier,Sechs:6\"[/code]."
+
+msgid ""
+"Hints that a [String] property can be an enumerated value to pick in a list "
+"specified via a hint string such as [code]\"Hello,Something,Else\"[/code].\n"
+"Unlike [constant PROPERTY_HINT_ENUM], a property with this hint still accepts "
+"arbitrary values and can be empty. The list of values serves to suggest "
+"possible values."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft ein enumerierter Wert sein "
+"kann, der in einer über einen Hinweis-String wie [code]\"Hallo,Irgendetwas,"
+"Anderes\"[/code] angegebenen Liste ausgewählt werden kann.\n"
+"Im Gegensatz zu [constant PROPERTY_HINT_ENUM] wird eine Eigenschaft mit "
+"diesem Hinweis immer noch beliebige Werte akzeptieren oder kann leer sein. "
+"Die Liste der Werte dient dazu, mögliche Werte vorzuschlagen."
+
+msgid ""
+"Hints that a [float] property should be edited via an exponential easing "
+"function. The hint string can include [code]\"attenuation\"[/code] to flip "
+"the curve horizontally and/or [code]\"positive_only\"[/code] to exclude in/"
+"out easing and limit values to be greater than or equal to zero."
+msgstr ""
+"Weist darauf hin, dass eine [float]-Eigenschaft über eine exponentielle "
+"Easing-Funktion bearbeitet werden soll. Der Hinweisstring kann "
+"[code]\"attenuation\"[/code] enthalten, um die Kurve horizontal zu spiegeln, "
+"und/oder [code]\"positive_only\"[/code], um ein In/Out-Easing auszuschließen "
+"und die Werte auf einen Wert größer oder gleich Null zu begrenzen."
+
+msgid ""
+"Hints that a vector property should allow its components to be linked. For "
+"example, this allows [member Vector2.x] and [member Vector2.y] to be edited "
+"together."
+msgstr ""
+"Weist darauf hin, dass eine Vektoreigenschaft die Verknüpfung ihrer "
+"Komponenten erlauben sollte. So können zum Beispiel [member Vector2.x] und "
+"[member Vector2.y] gemeinsam bearbeitet werden."
+
+msgid ""
+"Hints that an [int] property is a bitmask with named bit flags.\n"
+"The hint string is a comma separated list of names such as [code]\"Bit0,Bit1,"
+"Bit2,Bit3\"[/code]. Whitespaces are [b]not[/b] removed from either end of a "
+"name. The first name in the list has value 1, the next 2, then 4, 8, 16 and "
+"so on. Explicit values can also be specified by appending [code]:integer[/"
+"code] to the name, e.g. [code]\"A:4,B:8,C:16\"[/code]. You can also combine "
+"several flags ([code]\"A:4,B:8,AB:12,C:16\"[/code]).\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [constant PROPERTY_HINT_ENUM], the previous explicit "
+"value is not taken into account. For the hint [code]\"A:16,B,C\"[/code], A is "
+"16, B is 2, C is 4."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske mit benannten Bit-"
+"Flags ist.\n"
+"Die Hinweiszeichenfolge ist eine durch Kommata getrennte Liste von Namen wie "
+"[code]\"Bit0,Bit1,Bit2,Bit3\"[/code]. Leerzeichen werden [b]nicht[/b] von "
+"beiden Enden eines Namens entfernt. Der erste Name in der Liste hat den Wert "
+"1, der nächste 2, dann 4, 8, 16 und so weiter. Explizite Werte können auch "
+"durch Anhängen von [code]:integer[/code] an den Namen angegeben werden, z. B. "
+"[code]\"A:4,B:8,C:16\"[/code]. Sie können auch mehrere Flaggen kombinieren "
+"([code]\"A:4,B:8,AB:12,C:16\"[/code]).\n"
+"[b]Hinweis:[/b] Ein Merkerwert muss mindestens [code]1[/code] und darf "
+"höchstens [code]2 ** 32 - 1[/code] sein.\n"
+"[b]Hinweis:[/b] Im Gegensatz zur [Konstante PROPERTY_HINT_ENUM] wird der "
+"vorherige explizite Wert nicht berücksichtigt. Für den Hinweis [code]\"A:16,B,"
+"C\"[/code] ist A gleich 16, B gleich 2, C gleich 4."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"render layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, welche die "
+"optional benannten 2D-Renderebenen verwendet."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"physics layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, welche die "
+"optional benannten 2D-Physikebenen verwendet."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"navigation layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, welche die "
+"optional benannten 2D-Navigationsebenen verwendet."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"render layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, bei der die "
+"optional benannten 3D-Renderebenen verwendet werden."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"physics layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, bei der die "
+"optional benannten 3D-Physikebenen verwendet werden."
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"navigation layers."
+msgstr ""
+"Weist darauf hin, dass eine [int]-Eigenschaft eine Bitmaske ist, bei der die "
+"optional benannten 3D-Navigationsebenen verwendet werden."
+
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named "
+"avoidance layers."
+msgstr ""
+"Weist darauf hin, dass eine Integer-Eigenschaft eine Bitmaske ist, bei der "
+"die optional benannten Vermeidungsebenen verwendet werden."
+
+msgid ""
+"Hints that a [String] property is a path to a file. Editing it will show a "
+"file dialog for picking the path. The hint string can be a set of filters "
+"with wildcards like [code]\"*.png,*.jpg\"[/code]."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft ein Pfad zu einer Datei ist. "
+"Bei der Bearbeitung wird ein Dateidialog angezeigt, in dem der Pfad "
+"ausgewählt werden kann. Die Hinweiszeichenfolge kann eine Reihe von Filtern "
+"mit Platzhaltern wie [code]\"*.png,*.jpg\"[/code] sein."
+
+msgid ""
+"Hints that a [String] property is a path to a directory. Editing it will show "
+"a file dialog for picking the path."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft ein Pfad zu einem "
+"Verzeichnis ist. Bei der Bearbeitung wird ein Dateidialog angezeigt, in dem "
+"der Pfad ausgewählt werden kann."
+
+msgid ""
+"Hints that a [String] property is an absolute path to a file outside the "
+"project folder. Editing it will show a file dialog for picking the path. The "
+"hint string can be a set of filters with wildcards, like [code]\"*.png,*."
+"jpg\"[/code]."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft ein absoluter Pfad zu einer "
+"Datei außerhalb des Projektordners ist. Bei der Bearbeitung wird ein "
+"Dateidialog angezeigt, in dem der Pfad ausgewählt werden kann. Der "
+"Hinweisstring kann ein Satz von Filtern mit Platzhaltern sein, wie [code]\"*."
+"png,*.jpg\"[/code]."
+
+msgid ""
+"Hints that a [String] property is an absolute path to a directory outside the "
+"project folder. Editing it will show a file dialog for picking the path."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft ein absoluter Pfad zu einem "
+"Verzeichnis außerhalb des Projektordners ist. Bei der Bearbeitung wird ein "
+"Dateidialog angezeigt, in dem der Pfad ausgewählt werden kann."
+
+msgid ""
+"Hints that a property is an instance of a [Resource]-derived type, optionally "
+"specified via the hint string (e.g. [code]\"Texture2D\"[/code]). Editing it "
+"will show a popup menu of valid resource types to instantiate."
+msgstr ""
+"Weist darauf hin, dass es sich bei einer Eigenschaft um eine Instanz eines "
+"von [Ressource] abgeleiteten Typs handelt, der optional über die "
+"Hinweiszeichenfolge angegeben werden kann (z. B. [code]\"Textur2D\"[/code]). "
+"Bei der Bearbeitung wird ein Popup-Menü mit gültigen Ressourcentypen zum "
+"Instanziieren angezeigt."
+
+msgid ""
+"Hints that a [String] property is text with line breaks. Editing it will show "
+"a text input field where line breaks can be typed."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft Text mit Zeilenumbrüchen "
+"ist. Bei der Bearbeitung wird ein Texteingabefeld angezeigt, in das "
+"Zeilenumbrüche eingegeben werden können."
+
+msgid "Hints that a [String] property is an [Expression]."
+msgstr "Weist darauf hin, dass eine [String]-Eigenschaft ein [Expression] ist."
+
+msgid ""
+"Hints that a [String] property should show a placeholder text on its input "
+"field, if empty. The hint string is the placeholder text to use."
+msgstr ""
+"Weist darauf hin, dass eine [String]-Eigenschaft einen Platzhaltertext in "
+"ihrem Eingabefeld anzeigen soll, wenn sie leer ist. Der Hinweisstring ist der "
+"zu verwendende Platzhaltertext."
+
+msgid ""
+"Hints that a [Color] property should be edited without affecting its "
+"transparency ([member Color.a] is not editable)."
+msgstr ""
+"Weist darauf hin, dass eine [Color]-Eigenschaft bearbeitet werden sollte, "
+"ohne ihre Transparenz zu beeinträchtigen ([member Color.a] ist nicht "
+"bearbeitbar)."
+
+msgid ""
+"If a property is [String], hints that the property represents a particular "
+"type (class). This allows to select a type from the create dialog. The "
+"property will store the selected type as a string.\n"
+"If a property is [Array], hints the editor how to show elements. The "
+"[code]hint_string[/code] must encode nested types using [code]\":\"[/code] "
+"and [code]\"/\"[/code].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Array of elem_type.\n"
+"hint_string = \"%d:\" % [elem_type]\n"
+"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n"
+"# Two-dimensional array of elem_type (array of arrays of elem_type).\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, "
+"elem_hint_string]\n"
+"# Three-dimensional array of elem_type (array of arrays of arrays of "
+"elem_type).\n"
+"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, "
+"elem_hint, elem_hint_string]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Array of elemType.\n"
+"hintString = $\"{elemType:D}:\";\n"
+"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n"
+"// Two-dimensional array of elemType (array of arrays of elemType).\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:"
+"{elemHintString}\";\n"
+"// Three-dimensional array of elemType (array of arrays of arrays of "
+"elemType).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:"
+"\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/"
+"{elemHint:D}:{elemHintString}\";\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Examples:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"hint_string = \"%d:\" % [TYPE_INT] # Array of integers.\n"
+"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array of "
+"integers (in range from 1 to 10).\n"
+"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array "
+"of integers (an enum).\n"
+"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, "
+"PROPERTY_HINT_ENUM] # Array of integers (an enum).\n"
+"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of "
+"strings (file paths).\n"
+"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.\n"
+"\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array "
+"of floats.\n"
+"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, "
+"PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.\n"
+"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, "
+"PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to "
+"1).\n"
+"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Two-dimensional array of textures.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // "
+"Array of integers (in range from 1 to 10).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // "
+"Array of integers (an enum).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,"
+"Six:6\"; // Array of integers (an enum).\n"
+"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // "
+"Array of strings (file paths).\n"
+"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:"
+"Texture2D\"; // Array of textures.\n"
+"\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // Two-"
+"dimensional array of floats.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint."
+"MultilineText:D}:\"; // Two-dimensional array of multiline strings.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint."
+"Range:D}:-1,1,0.1\"; // Two-dimensional array of floats (in range from -1 to "
+"1).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint."
+"ResourceType:D}:Texture2D\"; // Two-dimensional array of textures.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] The trailing colon is required for properly detecting built-in "
+"types."
+msgstr ""
+"Wenn eine Eigenschaft [String] ist, weist dies darauf hin, dass die "
+"Eigenschaft einen bestimmten Typ (Klasse) darstellt. Dies ermöglicht die "
+"Auswahl eines Typs im Erstellungsdialog. Die Eigenschaft speichert den "
+"ausgewählten Typ als String.\n"
+"Wenn eine Eigenschaft [Array] ist, weist sie den Editor darauf hin, wie "
+"Elemente angezeigt werden sollen. Der [code]hint_string[/code] muss "
+"verschachtelte Typen mit [code]\":\"[/code] und [code]\"/\"[/code] kodieren.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Array von elemType.\n"
+"hint_string = \"%d:\" % [elem_type]\n"
+"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n"
+"# Zweidimensionales Array von elem_type (Array von Arrays von elem_type).\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, "
+"elem_hint_string]\n"
+"# Dreidimensionales Array von elem_type (Array von Arrays von Arrays von "
+"elem_type).\n"
+"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, "
+"elem_hint, elem_hint_string]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Array von elemType.\n"
+"hintString = $\"{elemType:D}:\";\n"
+"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n"
+"// Zweidimensionales Array von elem_type (Array von Arrays von elem_type).\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:"
+"{elemHintString}\";\n"
+"// Dreidimensionales Array von elem_type (Array von Arrays von Arrays von "
+"elem_type).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:"
+"\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/"
+"{elemHint:D}:{elemHintString}\";\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Examples:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"hint_string = \"%d:\" % [TYPE_INT] # Array mit ganzen Zahlen.\n"
+"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array von "
+"Ganzzahlen (im Bereich von 1 bis 10).\n"
+"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array "
+"von Ganzzahlen (eine Aufzählung (Enum)).\n"
+"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, "
+"PROPERTY_HINT_ENUM] # Array von Ganzzahlen (eine Aufzählung (Enum)).\n"
+"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array von "
+"Zeichenketten (Dateipfade).\n"
+"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Array von Texturen.\n"
+"\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Zweidimensionales Array "
+"von Floats.\n"
+"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, "
+"PROPERTY_HINT_MULTILINE_TEXT] # Zweidimensionales Array von mehrzeiligen "
+"Zeichenketten.\n"
+"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, "
+"PROPERTY_HINT_RANGE] # Zweidimensionales Array von Floats (im Bereich von -1 "
+"bis 1).\n"
+"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Zweidimensionale Array von Texturen.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // "
+"Array von Ganzzahlen (im Bereich von 1 bis 10).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // "
+"Array von Ganzzahlen (eine Aufzählung (Enum)).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,"
+"Six:6\"; // Array von Ganzzahlen (eine Aufzählung (Enum)).\n"
+"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // "
+"Array von Zeichenketten (Dateipfade).\n"
+"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:"
+"Texture2D\"; // Array von Texturen.\n"
+"\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // "
+"Zweidimensionales Array von Floats.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint."
+"MultilineText:D}:\"; // Zweidimensionales Array von mehrzeiligen "
+"Zeichenketten.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint."
+"Range:D}:-1,1,0.1\"; // Zweidimensionales Array von Floats (im Bereich von -1 "
+"bis 1).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint."
+"ResourceType:D}:Texture2D\"; // Zweidimensionale Array von Texturen.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Der abschließende Doppelpunkt ist erforderlich, um eingebaute "
+"Typen korrekt zu erkennen."
+
+msgid ""
+"Hints that a string property is a locale code. Editing it will show a locale "
+"dialog for picking language and country."
+msgstr ""
+"Weist darauf hin, dass eine String-Eigenschaft ein Gebietsschema-Code ist. "
+"Bei der Bearbeitung wird ein Gebietsschema-Dialog zur Auswahl von Sprache und "
+"Land angezeigt."
+
+msgid ""
+"Hints that a dictionary property is string translation map. Dictionary keys "
+"are locale codes and, values are translated strings."
+msgstr ""
+"Weist darauf hin, dass eine Wörterbuch-Eigenschaft eine Zeichenketten-"
+"Übersetzungskarte ist. Die Wörterbuchschlüssel sind Gebietsschema-Codes und "
+"die Werte sind übersetzte Zeichenketten."
+
+msgid ""
+"Hints that a quaternion property should disable the temporary euler editor."
+msgstr ""
+"Weist darauf hin, dass eine Quaternion-Eigenschaft den temporären Euler-"
+"Editor deaktivieren sollte."
+
+msgid ""
+"Hints that a string property is a password, and every character is replaced "
+"with the secret character."
+msgstr ""
+"Weist darauf hin, dass eine Zeichenketteneigenschaft ein Kennwort ist, und "
+"jedes Zeichen wird durch das geheime Zeichen ersetzt."
+
+msgid "Represents the size of the [enum PropertyHint] enum."
+msgstr "Stellt die Größe der Aufzählung [enum PropertyHint] dar."
+
+msgid ""
+"The property is not stored, and does not display in the editor. This is the "
+"default for non-exported properties."
+msgstr ""
+"Die Eigenschaft wird nicht gespeichert und wird im Editor nicht angezeigt. "
+"Dies ist die Standardeinstellung für nicht exportierte Eigenschaften."
+
+msgid "The property is serialized and saved in the scene file (default)."
+msgstr ""
+"Die Eigenschaft wird serialisiert und in der Szenendatei gespeichert "
+"(Standard)."
+
+msgid "The property is shown in the [EditorInspector] (default)."
+msgstr "Die Eigenschaft wird im [EditorInspector] angezeigt (Standard)."
+
+msgid "The property is excluded from the class reference."
+msgstr "Die Eigenschaft ist von der Klassenreferenz ausgeschlossen."
+
+msgid "The property can be checked in the [EditorInspector]."
+msgstr "Die Eigenschaft kann mit dem [EditorInspector] überprüft werden."
+
+msgid "The property is checked in the [EditorInspector]."
+msgstr "Die Eigenschaft wird im [EditorInspector] überprüft."
+
+msgid "Used to group properties together in the editor. See [EditorInspector]."
+msgstr ""
+"Dient zur Gruppierung von Eigenschaften im Editor. Siehe [EditorInspector]."
+
+msgid "Used to categorize properties together in the editor."
+msgstr "Dient dazu, Eigenschaften im Editor gemeinsam zu kategorisieren."
+
+msgid ""
+"Used to group properties together in the editor in a subgroup (under a "
+"group). See [EditorInspector]."
+msgstr ""
+"Dient dazu, Eigenschaften im Editor in einer Untergruppe (unter einer Gruppe) "
+"zusammenzufassen. Siehe [EditorInspector]."
+
+msgid "The property does not save its state in [PackedScene]."
+msgstr "Die Eigenschaft speichert ihren Zustand nicht in [PackedScene]."
+
+msgid "Editing the property prompts the user for restarting the editor."
+msgstr ""
+"Durch Bearbeiten der Eigenschaft wird der Benutzer aufgefordert, den Editor "
+"neu zu starten."
+
+msgid ""
+"The property is a script variable which should be serialized and saved in the "
+"scene file."
+msgstr ""
+"Die Eigenschaft ist eine Skriptvariable, die serialisiert und in der "
+"Szenendatei gespeichert werden soll."
+
+msgid "The property is an array."
+msgstr "Die Eigenschaft ist ein Array."
+
+msgid ""
+"When duplicating a resource with [method Resource.duplicate], and this flag "
+"is set on a property of that resource, the property should always be "
+"duplicated, regardless of the [code]subresources[/code] bool parameter."
+msgstr ""
+"Wenn eine Ressource mit der [Methode Resource.duplicate] dupliziert wird und "
+"dieses Flag für eine Eigenschaft dieser Ressource gesetzt ist, sollte die "
+"Eigenschaft immer dupliziert werden, unabhängig vom [code]subresources[/code] "
+"bool-Parameter."
+
+msgid ""
+"When duplicating a resource with [method Resource.duplicate], and this flag "
+"is set on a property of that resource, the property should never be "
+"duplicated, regardless of the [code]subresources[/code] bool parameter."
+msgstr ""
+"Wenn eine Ressource mit der [Methode Resource.duplicate] dupliziert wird und "
+"dieses Flag für eine Eigenschaft dieser Ressource gesetzt ist, sollte die "
+"Eigenschaft niemals dupliziert werden, unabhängig vom [code]subresources[/"
+"code] bool-Parameter."
+
+msgid ""
+"The property is only shown in the editor if modern renderers are supported "
+"(the Compatibility rendering method is excluded)."
+msgstr ""
+"Die Eigenschaft wird im Editor nur angezeigt, wenn moderne Renderer "
+"unterstützt werden (die Rendering-Methode Kompatibilität ist ausgeschlossen)."
+
+msgid "The property is read-only in the [EditorInspector]."
+msgstr "Die Eigenschaft ist im [EditorInspector] schreibgeschützt."
+
+msgid ""
+"An export preset property with this flag contains confidential information "
+"and is stored separately from the rest of the export preset configuration."
+msgstr ""
+"Eine Exportvorgabeeigenschaft mit diesem Kennzeichen enthält vertrauliche "
+"Informationen und wird getrennt vom Rest der Exportvorgabekonfiguration "
+"gespeichert."
+
+msgid "Default usage (storage and editor)."
+msgstr "Standardverwendung (Speicher und Editor)."
+
+msgid "Default usage but without showing the property in the editor (storage)."
+msgstr ""
+"Standardverwendung, aber ohne Anzeige der Eigenschaft im Editor (Speicherung)."
+
+msgid "Flag for a normal method."
+msgstr "Flag für eine normale Methode."
+
+msgid "Flag for an editor method."
+msgstr "Flag für eine Editor-Methode."
+
+msgid "Flag for a constant method."
+msgstr "Flag für eine konstante Methode."
+
+msgid "Flag for a virtual method."
+msgstr "Flag für eine virtuelle Methode."
+
+msgid "Flag for a method with a variable number of arguments."
+msgstr "Kennzeichen für eine Methode mit einer variablen Anzahl von Argumenten."
+
+msgid "Flag for a static method."
+msgstr "Kennzeichen für eine statische Methode."
+
+msgid ""
+"Used internally. Allows to not dump core virtual methods (such as [method "
+"Object._notification]) to the JSON API."
+msgstr ""
+"Interne Verwendung. Ermöglicht es, virtuelle Kernmethoden (wie [Methode "
+"Object._notification]) nicht an die JSON-API zu übergeben."
+
+msgid "Default method flags (normal)."
+msgstr "Standard-Methodenkennzeichen (normal)."
+
+msgid "Variable is [code]null[/code]."
+msgstr "Variable ist [code]null[/code]."
+
+msgid "Variable is of type [bool]."
+msgstr "Variable ist vom Typ [bool]."
+
+msgid "Variable is of type [int]."
+msgstr "Variable ist vom Typ [int]."
+
+msgid "Variable is of type [float]."
+msgstr "Die Variable ist vom Typ [float]."
+
+msgid "Variable is of type [String]."
+msgstr "Variable ist vom Typ [String]."
+
+msgid "Variable is of type [Vector2]."
+msgstr "Variable ist vom Typ [Vector2]."
+
+msgid "Variable is of type [Vector2i]."
+msgstr "Die Variable ist vom Typ [Vector2i]."
+
+msgid "Variable is of type [Rect2]."
+msgstr "Variable ist vom Typ [Rect2]."
+
+msgid "Variable is of type [Rect2i]."
+msgstr "Die Variable ist vom Typ [Rect2i]."
+
+msgid "Variable is of type [Vector3]."
+msgstr "Variable ist vom Typ [Vector3]."
+
+msgid "Variable is of type [Vector3i]."
+msgstr "Die Variable ist vom Typ [Vector3i]."
+
+msgid "Variable is of type [Transform2D]."
+msgstr "Variable ist vom Typ [Transform2D]."
+
+msgid "Variable is of type [Vector4]."
+msgstr "Die Variable ist vom Typ [Vector4]."
+
+msgid "Variable is of type [Vector4i]."
+msgstr "Die Variable ist vom Typ [Vector4i]."
+
+msgid "Variable is of type [Plane]."
+msgstr "Variable ist vom Typ [Plane]."
+
+msgid "Variable is of type [Quaternion]."
+msgstr "Die Variable ist vom Typ [Quaternion]."
+
+msgid "Variable is of type [AABB]."
+msgstr "Variable ist vom Typ [AABB]."
+
+msgid "Variable is of type [Basis]."
+msgstr "Variable ist vom Typ [Basis]."
+
+msgid "Variable is of type [Transform3D]."
+msgstr "Variable ist vom Typ [Transform3D]."
+
+msgid "Variable is of type [Projection]."
+msgstr "Variable ist vom Typ [Projection]."
+
+msgid "Variable is of type [Color]."
+msgstr "Variable ist vom Typ [Color]."
+
+msgid "Variable is of type [StringName]."
+msgstr "Variable ist vom Typ [StringName]."
+
+msgid "Variable is of type [NodePath]."
+msgstr "Variable ist vom Typ [NodePath]."
+
+msgid "Variable is of type [RID]."
+msgstr "Variable ist vom Typ [RID]."
+
+msgid "Variable is of type [Object]."
+msgstr "Variable ist vom Typ [Object]."
+
+msgid "Variable is of type [Callable]."
+msgstr "Variable ist vom Typ [Callable]."
+
+msgid "Variable is of type [Signal]."
+msgstr "Variable ist vom Typ [Signal]."
+
+msgid "Variable is of type [Dictionary]."
+msgstr "Variable ist vom Typ [Dictionary]."
+
+msgid "Variable is of type [Array]."
+msgstr "Variable ist vom Typ [Array]."
+
+msgid "Variable is of type [PackedByteArray]."
+msgstr "Variable ist vom Typ [PackedByteArray]."
+
+msgid "Variable is of type [PackedInt32Array]."
+msgstr "Variable ist vom Typ [PackedInt32Array]."
+
+msgid "Variable is of type [PackedInt64Array]."
+msgstr "Variable ist vom Typ [PackedInt64Array]."
+
+msgid "Variable is of type [PackedFloat32Array]."
+msgstr "Variable ist vom Typ [PackedFloat32Array]."
+
+msgid "Variable is of type [PackedFloat64Array]."
+msgstr "Variable ist vom Typ [PackedFloat64Array]."
+
+msgid "Variable is of type [PackedStringArray]."
+msgstr "Variable ist vom Typ [PackedStringArray]."
+
+msgid "Variable is of type [PackedVector2Array]."
+msgstr "Variable ist vom Typ [PackedVector2Array]."
+
+msgid "Variable is of type [PackedVector3Array]."
+msgstr "Variable ist vom Typ [PackedVector3Array]."
+
+msgid "Variable is of type [PackedColorArray]."
+msgstr "Variable ist vom Typ [PackedColorArray]."
+
+msgid "Represents the size of the [enum Variant.Type] enum."
+msgstr "Stellt die Größe dar des [enum Variant.Type] enum."
+
+msgid "Equality operator ([code]==[/code])."
+msgstr "Gleichheitsoperator ([code]==[/code])."
+
+msgid "Inequality operator ([code]!=[/code])."
+msgstr "Ungleichheitsoperator ([code]!=[/code])."
+
+msgid "Less than operator ([code]<[/code])."
+msgstr "Kleiner als Operator ([code]<[/code])."
+
+msgid "Less than or equal operator ([code]<=[/code])."
+msgstr "Kleiner-als-oder-gleich-Operator ([code]<=[/code])."
+
+msgid "Greater than operator ([code]>[/code])."
+msgstr "Größer-als-Operator ([code]>[/code])."
+
+msgid "Greater than or equal operator ([code]>=[/code])."
+msgstr "Größer als oder Gleich-Operator ([code]>=[/code])."
+
+msgid "Addition operator ([code]+[/code])."
+msgstr "Additionsoperator ([code]+[/code])."
+
+msgid "Subtraction operator ([code]-[/code])."
+msgstr "Subtraktionsoperator ([code]-[/code])."
+
+msgid "Multiplication operator ([code]*[/code])."
+msgstr "Multiplikationsoperator ([code]*[/code])."
+
+msgid "Division operator ([code]/[/code])."
+msgstr "Divisionsoperator ([code]/[/code])."
+
+msgid "Unary negation operator ([code]-[/code])."
+msgstr "Unärer Negationsoperator ([code]-[/code])."
+
+msgid "Unary plus operator ([code]+[/code])."
+msgstr "Unärer Plus-Operator ([code]+[/code])."
+
+msgid "Remainder/modulo operator ([code]%[/code])."
+msgstr "Rest/Modulo-Operator ([code]%[/code])."
+
+msgid "Left shift operator ([code]<<[/code])."
+msgstr "Linksschiebe-Operator ([code]<<[/code])."
+
+msgid "Right shift operator ([code]>>[/code])."
+msgstr "Rechtsschiebe-Operator ([code]>>[/code])."
+
+msgid "Bitwise AND operator ([code]&[/code])."
+msgstr "Bitweiser UND Operator ([code]&[/code])."
+
+msgid "Bitwise OR operator ([code]|[/code])."
+msgstr "Bitweiser ODER-Operator ([code]|[/code])."
+
+msgid "Bitwise XOR operator ([code]^[/code])."
+msgstr "Bitweiser XOR-Operator ([code]^[/code])."
+
+msgid "Bitwise NOT operator ([code]~[/code])."
+msgstr "Bitweiser NICHT-Operator ([code]~[/code])."
+
+msgid "Logical AND operator ([code]and[/code] or [code]&&[/code])."
+msgstr "Logischer UND-Operator ([code]und[/code] oder [code]&&[/code])."
+
+msgid "Logical OR operator ([code]or[/code] or [code]||[/code])."
+msgstr "Logischer ODER-Operator ([code]oder[/code] oder [code]||[/code])."
+
+msgid "Logical XOR operator (not implemented in GDScript)."
+msgstr "Logischer XOR-Operator (nicht in GDScript implementiert)."
+
+msgid "Logical NOT operator ([code]not[/code] or [code]![/code])."
+msgstr "Logischer NOT-Operator ([code]not[/code] oder [code]![/code])."
+
+msgid "Logical IN operator ([code]in[/code])."
+msgstr "Logischer IN-Operator ([code]in[/code])."
+
+msgid "Represents the size of the [enum Variant.Operator] enum."
+msgstr "Stellt die Größe dar des [enum Variant.Operator] enum."
+
+msgid "A 3D axis-aligned bounding box."
+msgstr "Ein an den 3D-Achsen ausgerichtetes Begrenzungsrechteck."
+
+msgid ""
+"[AABB] consists of a position, a size, and several utility functions. It is "
+"typically used for fast overlap tests.\n"
+"It uses floating-point coordinates. The 2D counterpart to [AABB] is [Rect2].\n"
+"Negative values for [member size] are not supported and will not work for "
+"most methods. Use [method abs] to get an AABB with a positive size.\n"
+"[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer "
+"coordinates."
+msgstr ""
+"[AABB] besteht aus einer Position, einer Größe und mehreren Hilfsfunktionen. "
+"Es wird normalerweise für schnelle Überlappungstests verwendet.\n"
+"Es verwendet Fließkomma-Koordinaten. Das 2D-Gegenstück zu [AABB] ist "
+"[Rect2].\n"
+"Negative Werte für [member size] werden nicht unterstützt und funktionieren "
+"bei den meisten Methoden nicht. Verwenden Sie [method abs], um ein AABB mit "
+"einer positiven Größe zu erhalten.\n"
+"[b]Hinweis:[/b] Anders als [Rect2] hat [AABB] keine Variante, die ganzzahlige "
+"Koordinaten verwendet."
+
+msgid "Vector math"
+msgstr "Vektor-Mathematik"
+
+msgid "Advanced vector math"
+msgstr "Fortgeschrittene Vektor-Mathematik"
+
+msgid ""
+"Constructs a default-initialized [AABB] with default (zero) values of [member "
+"position] and [member size]."
+msgstr ""
+"Konstruiert eine standardmäßig initialisierte [AABB] mit den Standardwerten "
+"(Null) von [member position] und [member size]."
+
+msgid "Constructs an [AABB] as a copy of the given [AABB]."
+msgstr "Konstruiert einen [AABB] als Kopie des gegebenen [AABB]."
+
+msgid "Constructs an [AABB] from a position and size."
+msgstr "Konstruiert einen [AABB] aus einer Position und einer Größe."
+
+msgid ""
+"Returns an AABB with equivalent position and size, modified so that the most-"
+"negative corner is the origin and the size is positive."
+msgstr ""
+"Gibt ein AABB mit entsprechender Position und Größe zurück, das so "
+"modifiziert wurde, dass die negativste Ecke der Ursprung ist und die Größe "
+"positiv ist."
+
+msgid ""
+"Returns [code]true[/code] if this [AABB] completely encloses another one."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn dieses [AABB] ein anderes vollständig "
+"umschließt."
+
+msgid ""
+"Returns a copy of this [AABB] expanded to include a given point.\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# position (-3, 2, 0), size (1, 1, 1)\n"
+"var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))\n"
+"# position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and "
+"Vector3(0, -1, 2)\n"
+"var box2 = box.expand(Vector3(0, -1, 2))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// position (-3, 2, 0), size (1, 1, 1)\n"
+"var box = new Aabb(new Vector3(-3, 2, 0), new Vector3(1, 1, 1));\n"
+"// position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and "
+"Vector3(0, -1, 2)\n"
+"var box2 = box.Expand(new Vector3(0, -1, 2));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine Kopie dieses [AABB] zurück, erweitert um einen bestimmten Punkt.\n"
+"[b]Beispiel:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Position (-3, 2, 0), Größe (1, 1, 1)\n"
+"var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))\n"
+"# Position (-3, -1, 0), Größe (3, 4, 2), so dass sowohl das ursprüngliche "
+"AABB als auch Vector3(0, -1, 2) passen\n"
+"var box2 = box.expand(Vector3(0, -1, 2))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Position (-3, 2, 0), Größe (1, 1, 1)\n"
+"var box = new Aabb(new Vector3(-3, 2, 0), new Vector3(1, 1, 1));\n"
+"// Position (-3, -1, 0), Größe (3, 4, 2), so dass sowohl das ursprüngliche "
+"AABB als auch Vector3(0, -1, 2) passen\n"
+"var box2 = box.Expand(new Vector3(0, -1, 2));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the center of the [AABB], which is equal to [member position] + "
+"([member size] / 2)."
+msgstr ""
+"Gibt den Mittelwert von [AABB] zurück, welcher gleich ist wie [member "
+"position] + ([member size] / 2)."
+
+msgid "Gets the position of the 8 endpoints of the [AABB] in space."
+msgstr "Liefert die Position der 8 Endpunkte des [AABB] im Raum."
+
+msgid "Returns the normalized longest axis of the [AABB]."
+msgstr "Liefert die normierte längste Achse des [AABB]."
+
+msgid ""
+"Returns the index of the longest axis of the [AABB] (according to [Vector3]'s "
+"[code]AXIS_*[/code] constants)."
+msgstr ""
+"Liefert den Index der längsten Achse des [AABB] (gemäß den [code]AXIS_*[/"
+"code]-Konstanten von [Vector3])."
+
+msgid "Returns the scalar length of the longest axis of the [AABB]."
+msgstr "Liefert die skalare Länge der längsten Achse des [AABB]."
+
+msgid "Returns the normalized shortest axis of the [AABB]."
+msgstr "Liefert die normierte kürzeste Achse des [AABB]."
+
+msgid ""
+"Returns the index of the shortest axis of the [AABB] (according to [Vector3]::"
+"AXIS* enum)."
+msgstr ""
+"Liefert den Index der kürzesten Achse des [AABB] (gemäß [Vector3]::AXIS* "
+"enum)."
+
+msgid "Returns the scalar length of the shortest axis of the [AABB]."
+msgstr "Liefert die skalare Länge der kürzesten Achse des [AABB]."
+
+msgid "Returns the volume of the [AABB]."
+msgstr "Gibt die Lautstärke des [AABB] zurück."
+
+msgid ""
+"Returns [code]true[/code] if the [AABB] contains a point. Points on the faces "
+"of the AABB are considered included, though float-point precision errors may "
+"impact the accuracy of such checks.\n"
+"[b]Note:[/b] This method is not reliable for [AABB] with a [i]negative size[/"
+"i]. Use [method abs] to get a positive sized equivalent [AABB] to check for "
+"contained points."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die [AABB] einen Punkt enthält. Punkte "
+"auf den Flächen des [AABB] werden als enthalten angesehen, obwohl Fließkomma-"
+"Präzisionsfehler die Genauigkeit solcher Überprüfungen beeinträchtigen "
+"können.\n"
+"[b]Hinweis:[/b] Diese Methode ist nicht zuverlässig für [AABB] mit einer "
+"[i]negativen Größe[/i]. Verwenden Sie [method abs], um ein [AABB]-Äquivalent "
+"mit positiver Größe zu erhalten, um auf enthaltene Punkte zu prüfen."
+
+msgid ""
+"Returns [code]true[/code] if the [AABB] has a surface or a length, and "
+"[code]false[/code] if the [AABB] is empty (all components of [member size] "
+"are zero or negative)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [AABB] eine Fläche oder eine Länge "
+"hat, und [code]false[/code], wenn der [AABB] leer ist (alle Komponenten von "
+"[member size] sind null oder negativ)."
+
+msgid ""
+"Returns the intersection between two [AABB]. An empty AABB (size [code](0, 0, "
+"0)[/code]) is returned on failure."
+msgstr ""
+"Gibt die Schnittmenge zwischen zwei [AABB] zurück. Im Fehlerfall wird ein "
+"leerer AABB (Größe [code](0, 0, 0)[/code]) zurückgegeben."
+
+msgid "Returns [code]true[/code] if the [AABB] overlaps with another."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sich das [AABB] mit einem anderen "
+"überschneidet."
+
+msgid "Returns [code]true[/code] if the [AABB] is on both sides of a plane."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [AABB] auf beiden Seiten einer Ebene "
+"liegt."
+
+msgid ""
+"Returns [code]true[/code] if this [AABB] and [param aabb] are approximately "
+"equal, by calling [method @GlobalScope.is_equal_approx] on each component."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn dieses [AABB] und [param aabb] annähernd "
+"gleich sind, indem [method @GlobalScope.is_equal_approx] für jede Komponente "
+"aufgerufen wird."
+
+msgid ""
+"Returns [code]true[/code] if this [AABB] is finite, by calling [method "
+"@GlobalScope.is_finite] on each component."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn dieser [AABB] endlich ist, indem er "
+"[Methode @GlobalScope.is_finite] für jede Komponente aufruft."
+
+msgid ""
+"Ending corner. This is calculated as [code]position + size[/code]. Setting "
+"this value will change the size."
+msgstr ""
+"Endende Ecke. Dies wird berechnet als [code]Position + Größe[/code]. Wenn Sie "
+"diesen Wert einstellen, wird die Größe geändert."
+
+msgid "Beginning corner. Typically has values lower than [member end]."
+msgstr "Beginnende Ecke. Hat typischerweise niedrigere Werte als [member end]."
+
+msgid ""
+"Returns [code]true[/code] if the AABBs 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 ""
+"Gibt [code]true[/code] zurück, wenn die AABBs nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid ""
+"Returns [code]true[/code] if the AABBs are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die AABBs genau gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid ""
+"The default use of [AcceptDialog] is to allow it to only be accepted or "
+"closed, with the same result. However, the [signal confirmed] and [signal "
+"canceled] signals allow to make the two actions different, and the [method "
+"add_button] method allows to add custom buttons and actions."
+msgstr ""
+"Standardmäßig wird [AcceptDialog] so verwendet, dass er nur akzeptiert oder "
+"geschlossen werden kann, mit demselben Ergebnis. Die Signale [signal "
+"confirmed] und [signal canceled] ermöglichen es jedoch, die beiden Aktionen "
+"unterschiedlich zu gestalten, und die Methode [method add_button] erlaubt es, "
+"benutzerdefinierte Schaltflächen und Aktionen hinzuzufügen."
+
+msgid ""
+"Adds a button with label [param text] and a custom [param action] to the "
+"dialog and returns the created button. [param action] will be passed to the "
+"[signal custom_action] signal when pressed.\n"
+"If [code]true[/code], [param right] will place the button to the right of any "
+"sibling buttons.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+"Fügt dem Dialog eine Schaltfläche mit der Bezeichnung [param text] und einer "
+"benutzerdefinierten [param action] hinzu und gibt die erstellte Schaltfläche "
+"zurück. [param action] wird bei Betätigung an das Signal [signal "
+"custom_action] übergeben.\n"
+"Wenn [code]true[/code], platziert [param right] die Schaltfläche rechts von "
+"allen Geschwisterschaltflächen.\n"
+"Sie können die Methode [method remove_button] verwenden, um eine mit dieser "
+"Methode erstellte Schaltfläche aus dem Dialog zu entfernen."
+
+msgid ""
+"Adds a button with label [param name] and a cancel action to the dialog and "
+"returns the created button.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+"Fügt dem Dialog eine Schaltfläche mit der Bezeichnung [param name] und einer "
+"Abbruchaktion hinzu und gibt die erstellte Schaltfläche zurück.\n"
+"Sie können die Methode [method remove_button] verwenden, um eine mit dieser "
+"Methode erstellte Schaltfläche aus dem Dialog zu entfernen."
+
+msgid ""
+"Returns the label used for built-in text.\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 CanvasItem.visible] property."
+msgstr ""
+"Gibt die für den eingebauten Text verwendete Bezeichnung zurück.\n"
+"[b]Warnung:[/b] Dies ist ein erforderlicher interner Knoten; das Entfernen "
+"und Freigeben dieses Knotens kann zu einem Absturz führen. Wenn Sie ihn oder "
+"eines seiner Kinder ausblenden möchten, verwenden Sie deren Eigenschaft "
+"[member CanvasItem.visible]."
+
+msgid ""
+"Returns the OK [Button] instance.\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 CanvasItem.visible] property."
+msgstr ""
+"Gibt die OK [Button]-Instanz zurück.\n"
+"[b]Warnung:[/b] Dies ist ein erforderlicher interner Knoten; das Entfernen "
+"und Freigeben dieses Knotens kann zu einem Absturz führen. Wenn Sie ihn oder "
+"eines seiner Kinder ausblenden möchten, verwenden Sie deren Eigenschaft "
+"[member CanvasItem.visible]."
+
+msgid ""
+"Registers a [LineEdit] in the dialog. When the enter key is pressed, the "
+"dialog will be accepted."
+msgstr ""
+"Registriert ein [LineEdit] im Dialog. Wenn die Eingabetaste gedrückt ist, "
+"wird der Dialog übernommen."
+
+msgid "Sets autowrapping for the text in the dialog."
+msgstr "Legt den automatischen Umbruch für den Text im Dialog fest."
+
+msgid ""
+"If [code]true[/code], the dialog is hidden when the OK button is pressed. You "
+"can set it to [code]false[/code] if you want to do e.g. input validation when "
+"receiving the [signal confirmed] signal, and handle hiding the dialog in your "
+"own logic.\n"
+"[b]Note:[/b] Some nodes derived from this class can have a different default "
+"value, and potentially their own built-in logic overriding this setting. For "
+"example [FileDialog] defaults to [code]false[/code], and has its own input "
+"validation code that is called when you press OK, which eventually hides the "
+"dialog if the input is valid. As such, this property can't be used in "
+"[FileDialog] to disable hiding the dialog when pressing OK."
+msgstr ""
+"Wenn [code]true[/code], wird das Dialogfeld ausgeblendet, wenn die "
+"Schaltfläche OK gedrückt wird. Sie können ihn auf [code]false[/code] setzen, "
+"wenn Sie z. B. eine Eingabevalidierung beim Empfang des Signals [signal "
+"confirmed] durchführen und das Ausblenden des Dialogs in Ihrer eigenen Logik "
+"behandeln wollen.\n"
+"[b]Hinweis:[/b] Einige von dieser Klasse abgeleitete Knoten können einen "
+"anderen Standardwert haben und möglicherweise ihre eigene eingebaute Logik, "
+"die diese Einstellung überschreibt. Zum Beispiel hat [FileDialog] den "
+"Standardwert [code]false[/code] und verfügt über einen eigenen "
+"Eingabeüberprüfungscode, der aufgerufen wird, wenn Sie auf OK drücken, und "
+"der schließlich das Dialogfeld ausblendet, wenn die Eingabe gültig ist. Daher "
+"kann diese Eigenschaft in [FileDialog] nicht verwendet werden, um das "
+"Ausblenden des Dialogs beim Drücken von OK zu deaktivieren."
+
+msgid "The text displayed by the dialog."
+msgstr "Der vom Dialog angezeigte Text."
+
+msgid "The text displayed by the OK button (see [method get_ok_button])."
+msgstr ""
+"Der Text, der auf der Schaltfläche OK angezeigt wird (siehe [method "
+"get_ok_button])."
+
+msgid "Emitted when the dialog is accepted, i.e. the OK button is pressed."
+msgstr ""
+"Wird ausgegeben, wenn der Dialog akzeptiert wird, d. h. die Schaltfläche OK "
+"gedrückt wird."
+
+msgid "Emitted when a custom button is pressed. See [method add_button]."
+msgstr ""
+"Wird ausgegeben, wenn eine benutzerdefinierte Taste gedrückt wird. Siehe "
+"[method add_button]."
+
+msgid ""
+"The size of the vertical space between the dialog's content and the button "
+"row."
+msgstr ""
+"Die Größe des vertikalen Raums zwischen dem Inhalt des Dialogs und der "
+"Schaltflächenzeile."
+
+msgid "The panel that fills the background of the window."
+msgstr "Das Panel, das den Hintergrund des Fensters füllt."
+
+msgid "Provides access to AES encryption/decryption of raw data."
+msgstr "Bietet Zugang zur AES-Verschlüsselung/Entschlüsselung von Rohdaten."
+
+msgid ""
+"This class holds the context information required for encryption and "
+"decryption operations with AES (Advanced Encryption Standard). Both AES-ECB "
+"and AES-CBC modes are supported.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"extends Node\n"
+"\n"
+"var aes = AESContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"My secret key!!!\" # Key must be either 16 or 32 bytes.\n"
+" var data = \"My secret text!!\" # Data size must be multiple of 16 bytes, "
+"apply padding if needed.\n"
+" # Encrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())\n"
+" var encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # Decrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())\n"
+" var decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check ECB\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"\n"
+" var iv = \"My secret iv!!!!\" # IV must be of exactly 16 bytes.\n"
+" # Encrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # Decrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check CBC\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"using Godot;\n"
+"using System.Diagnostics;\n"
+"\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" private AesContext _aes = new AesContext();\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" string key = \"My secret key!!!\"; // Key must be either 16 or 32 "
+"bytes.\n"
+" string data = \"My secret text!!\"; // Data size must be multiple of "
+"16 bytes, apply padding if needed.\n"
+" // Encrypt ECB\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());\n"
+" byte[] encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // Decrypt ECB\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());\n"
+" byte[] decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // Check ECB\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+"\n"
+" string iv = \"My secret iv!!!!\"; // IV must be of exactly 16 bytes.\n"
+" // Encrypt CBC\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // Decrypt CBC\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // Check CBC\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Diese Klasse enthält die für Ver- und Entschlüsselungsvorgänge mit AES "
+"(Advanced Encryption Standard) erforderlichen Kontextinformationen. Es werden "
+"die Modi AES-ECB und AES-CBC unterstützt.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"extends Node\n"
+"\n"
+"var aes = AESContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"My secret key!!!\" # Der Schlüssel muss entweder 16 oder 32 "
+"Bytes lang sein.\n"
+" var data = \"My secret text!!\" # Die Datengröße muss ein Vielfaches von "
+"16 Bytes sein, ggf. ist eine Auffüllung erforderlich.\n"
+" # ECB verschlüsseln\n"
+" aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())\n"
+" var encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # ECB entschlüsseln\n"
+" aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())\n"
+" var decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # ECB prüfen\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"\n"
+" var iv = \"My secret iv!!!!\" # IV muss genau 16 Bytes lang sein.\n"
+" # CBC verschlüsseln\n"
+" aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # CBC entschlüsseln\n"
+" aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # CBC prüfen\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"using Godot;\n"
+"using System.Diagnostics;\n"
+"\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" private AesContext _aes = new AesContext();\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" string key = \"My secret key!!!\"; // Der Schlüssel muss entweder 16 "
+"oder 32 Bytes lang sein.\n"
+" string data = \"My secret text!!\"; // Die Datengröße muss ein "
+"Vielfaches von 16 Bytes sein, ggf. ist eine Auffüllung erforderlich.\n"
+" // ECB verschlüsseln\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());\n"
+" byte[] encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // ECB entschlüsseln\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());\n"
+" byte[] decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // ECB prüfen\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+"\n"
+" string iv = \"My secret iv!!!!\"; // IV muss genau 16 Bytes lang "
+"sein.\n"
+" // CBC verschlüsseln\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // CBC entschlüsseln\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // CBC prüfen\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Close this AES context so it can be started again. See [method start]."
+msgstr ""
+"Schließen Sie diesen AES-Kontext, damit er erneut gestartet werden kann. "
+"Siehe [method start]."
+
+msgid ""
+"Get the current IV state for this context (IV gets updated when calling "
+"[method update]). You normally don't need this function.\n"
+"[b]Note:[/b] This function only makes sense when the context is started with "
+"[constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
+msgstr ""
+"Ermittelt den aktuellen IV-Status für diesen Kontext (IV wird beim Aufruf von "
+"[method update] aktualisiert). Normalerweise brauchen Sie diese Funktion "
+"nicht.\n"
+"[b]Hinweis:[/b] Diese Funktion ist nur sinnvoll, wenn der Kontext mit "
+"[Konstante MODE_CBC_ENCRYPT] oder [Konstante MODE_CBC_DECRYPT] gestartet "
+"wurde."
+
+msgid ""
+"Run the desired operation for this AES context. Will return a "
+"[PackedByteArray] containing the result of encrypting (or decrypting) the "
+"given [param src]. See [method start] for mode of operation.\n"
+"[b]Note:[/b] The size of [param src] must be a multiple of 16. Apply some "
+"padding if needed."
+msgstr ""
+"Führt die gewünschte Operation für diesen AES-Kontext aus. Gibt ein "
+"[PackedByteArray] zurück, dass das Ergebnis der Verschlüsselung (oder "
+"Entschlüsselung) des angegebenen [param src] enthält. Siehe [method start] "
+"für die Funktionsweise.\n"
+"[b]Hinweis:[/b] Die Größe von [param src] muss ein Vielfaches von 16 sein. "
+"Wenden Sie bei Bedarf etwas Füllung an."
+
+msgid "AES electronic codebook encryption mode."
+msgstr "AES-Verschlüsselungsmodus für elektronisches Codebuch."
+
+msgid "AES electronic codebook decryption mode."
+msgstr "Entschlüsselungsmodus für elektronisches AES-Codebuch."
+
+msgid "AES cipher blocker chaining encryption mode."
+msgstr "AES Chiffre-Blockerverkettung Verschlüsselungsmodus."
+
+msgid "AES cipher blocker chaining decryption mode."
+msgstr "AES-Chiffre-Blocker Verkettung Entschlüsselungsmodus."
+
+msgid "Maximum value for the mode enum."
+msgstr "Maximaler Wert für das Modus-Enum."
+
+msgid ""
+"A 2D physics body that can't be moved by external forces. When moved "
+"manually, it affects other bodies in its path."
+msgstr ""
+"Ein 2D-Physikkörper, der nicht durch externe Kräfte bewegt werden kann. Wenn "
+"er manuell bewegt wird, wirkt er sich auf andere Körper in seinem Pfad aus."
+
+msgid ""
+"If [code]true[/code], the body's movement will be synchronized to the physics "
+"frame. This is useful when animating movement via [AnimationPlayer], for "
+"example on moving platforms. Do [b]not[/b] use together with [method "
+"PhysicsBody2D.move_and_collide]."
+msgstr ""
+"Wenn [code]true[/code], wird die Bewegung des Körpers mit dem Physikrahmen "
+"synchronisiert. Dies ist nützlich, wenn die Bewegung über den "
+"[AnimationPlayer] animiert wird, zum Beispiel auf sich bewegenden "
+"Plattformen. [b]Nicht[/b] zusammen mit der [Methode PhysicsBody2D."
+"move_and_collide] verwenden."
+
+msgid ""
+"A 3D physics body that can't be moved by external forces. When moved "
+"manually, it affects other bodies in its path."
+msgstr ""
+"Ein 3D-Physikkörper, der nicht durch externe Kräfte bewegt werden kann. Wenn "
+"er manuell bewegt wird, wirkt er sich auf andere Körper in seinem Pfad aus."
+
+msgid "3D Physics Tests Demo"
+msgstr "3D-Physik Tests Demo"
+
+msgid "Third Person Shooter Demo"
+msgstr "Third Person Shooter Demo"
+
+msgid "3D Voxel Demo"
+msgstr "3D Voxel Demo"
+
+msgid ""
+"If [code]true[/code], the body's movement will be synchronized to the physics "
+"frame. This is useful when animating movement via [AnimationPlayer], for "
+"example on moving platforms. Do [b]not[/b] use together with [method "
+"PhysicsBody3D.move_and_collide]."
+msgstr ""
+"Wenn [code]true[/code], wird die Bewegung des Körpers mit dem Physikrahmen "
+"synchronisiert. Dies ist nützlich, wenn die Bewegung über den "
+"[AnimationPlayer] animiert wird, zum Beispiel auf sich bewegenden "
+"Plattformen. [b]nicht[/b] zusammen mit [Methode PhysicsBody3D."
+"move_and_collide] verwenden."
+
+msgid ""
+"[AnimatedSprite2D] is similar to the [Sprite2D] node, except it carries "
+"multiple textures as animation frames. Animations are created using a "
+"[SpriteFrames] resource, which allows you to import image files (or a folder "
+"containing said files) to provide the animation frames for the sprite. The "
+"[SpriteFrames] resource can be configured in the editor via the SpriteFrames "
+"bottom panel."
+msgstr ""
+"[AnimatedSprite2D] ähnelt dem [Sprite2D]-Knoten (Node), außer dass er mehrere "
+"Texturen als Animationsrahmen enthält. Animationen werden mit einer "
+"[SpriteFrames]-Ressource erstellt, die es Ihnen ermöglicht, Bilddateien (oder "
+"einen Ordner mit diesen Dateien) zu importieren, um die Animationsrahmen für "
+"das Sprite bereitzustellen. Die [SpriteFrames]-Ressource kann im Editor über "
+"die untere Leiste SpriteFrames konfiguriert werden."
+
+msgid "2D Sprite animation"
+msgstr "2D Sprite Animation"
+
+msgid "2D Dodge The Creeps Demo"
+msgstr "2D „Dodge The Creeps“ Demo"
+
+msgid ""
+"Returns the actual playing speed of current animation or [code]0[/code] if "
+"not playing. This speed is the [member speed_scale] property multiplied by "
+"[code]custom_speed[/code] argument specified when calling the [method play] "
+"method.\n"
+"Returns a negative value if the current animation is playing backwards."
+msgstr ""
+"Gibt die aktuelle Abspielgeschwindigkeit der aktuellen Animation zurück oder "
+"[code]0[/code], wenn sie nicht abgespielt wird. Diese Geschwindigkeit "
+"entspricht der Eigenschaft [member speed_scale] multipliziert mit dem "
+"Argument [code]custom_speed[/code], das beim Aufruf der Methode [method play] "
+"angegeben wurde.\n"
+"Gibt einen negativen Wert zurück, wenn die aktuelle Animation rückwärts "
+"abgespielt wird."
+
+msgid ""
+"Plays the animation with key [param name]. If [param custom_speed] is "
+"negative and [param from_end] is [code]true[/code], the animation will play "
+"backwards (which is equivalent to calling [method play_backwards]).\n"
+"If this method is called with that same animation [param name], or with no "
+"[param name] parameter, the assigned animation will resume playing if it was "
+"paused."
+msgstr ""
+"Spielt die Animation mit der Taste [param name] ab. Wenn [param custom_speed] "
+"negativ ist und [param from_end] [code]true[/code] ist, wird die Animation "
+"rückwärts abgespielt (was dem Aufruf der [method play_backwards] "
+"entspricht).\n"
+"Wird diese Methode mit der gleichen Animation [param name] oder ohne den "
+"Parameter [param name] aufgerufen, wird die zugewiesene Animation wieder "
+"abgespielt, wenn sie angehalten wurde."
+
+msgid ""
+"Plays the animation with key [param name] in reverse.\n"
+"This method is a shorthand for [method play] with [code]custom_speed = -1.0[/"
+"code] and [code]from_end = true[/code], so see its description for more "
+"information."
+msgstr ""
+"Spielt die Animation mit der Taste [param name] in umgekehrter Reihenfolge "
+"ab.\n"
+"Diese Methode ist eine Abkürzung für [method play] mit [code]custom_speed = "
+"-1.0[/code] und [code]from_end = true[/code], also siehe ihre Beschreibung "
+"für weitere Informationen."
+
+msgid ""
+"The setter of [member frame] resets the [member frame_progress] to [code]0.0[/"
+"code] implicitly, but this method avoids that.\n"
+"This is useful when you want to carry over the current [member "
+"frame_progress] to another [member frame].\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Change the animation with keeping the frame index and progress.\n"
+"var current_frame = animated_sprite.get_frame()\n"
+"var current_progress = animated_sprite.get_frame_progress()\n"
+"animated_sprite.play(\"walk_another_skin\")\n"
+"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Der Setter von [member frame] setzt den [member frame_progress] implizit auf "
+"[code]0.0[/code] zurück, aber diese Methode vermeidet dies.\n"
+"Dies ist nützlich, wenn Sie den aktuellen [member frame_progress] auf einen "
+"anderen [member frame] übertragen wollen.\n"
+"[b]Beispiel:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Ändern Sie die Animation unter Beibehaltung des Frame-Index und des "
+"Fortschritts.\n"
+"var current_frame = animated_sprite.get_frame()\n"
+"var aktuell_fortschritt = animated_sprite.get_frame_fortschritt()\n"
+"animated_sprite.play(\"walk_another_skin\")\n"
+"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Stops the currently playing animation. The animation position is reset to "
+"[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/"
+"code]. See also [method pause]."
+msgstr ""
+"Stoppt die aktuell laufende Animation. Die Animationsposition wird auf "
+"[code]0[/code] zurückgesetzt und die [code]custom_speed[/code] wird auf "
+"[code]1.0[/code] zurückgesetzt. Siehe auch [Methode pause]."
+
+msgid "If [code]true[/code], texture will be centered."
+msgstr "Wenn [code]true[/code], wird die Textur zentriert."
+
+msgid "If [code]true[/code], texture is flipped horizontally."
+msgstr "Wenn [code]true[/code], wird die Textur horizontal gespiegelt."
+
+msgid "If [code]true[/code], texture is flipped vertically."
+msgstr "Wenn [code]true[/code], wird die Textur vertikal gespiegelt."
+
+msgid ""
+"The displayed animation frame's index. Setting this property also resets "
+"[member frame_progress]. If this is not desired, use [method "
+"set_frame_and_progress]."
+msgstr ""
+"Der Index des angezeigten Animationsrahmens. Das Setzen dieser Eigenschaft "
+"setzt auch [member frame_progress] zurück. Wenn dies nicht erwünscht ist, "
+"verwenden Sie [method set_frame_and_progress]."
+
+msgid ""
+"The progress value between [code]0.0[/code] and [code]1.0[/code] until the "
+"current frame transitions to the next frame. If the animation is playing "
+"backwards, the value transitions from [code]1.0[/code] to [code]0.0[/code]."
+msgstr ""
+"Der Fortschrittswert zwischen [code]0.0[/code] und [code]1.0[/code], bis das "
+"aktuelle Bild zum nächsten Bild übergeht. Wenn die Animation rückwärts "
+"abgespielt wird, geht der Wert von [code]1.0[/code] auf [code]0.0[/code] über."
+
+msgid "The texture's drawing offset."
+msgstr "Der Zeichen-Offset der Textur."
+
+msgid ""
+"The speed scaling ratio. For example, if this value is [code]1[/code], then "
+"the animation plays at normal speed. If it's [code]0.5[/code], then it plays "
+"at half speed. If it's [code]2[/code], then it plays at double speed.\n"
+"If set to a negative value, the animation is played in reverse. If set to "
+"[code]0[/code], the animation will not advance."
+msgstr ""
+"Das Skalierungsverhältnis der Geschwindigkeit. Wenn dieser Wert zum Beispiel "
+"[code]1[/code] ist, wird die Animation mit normaler Geschwindigkeit "
+"abgespielt. Bei [code]0,5[/code] wird sie mit halber Geschwindigkeit "
+"abgespielt. Bei [code]2[/code] wird sie mit doppelter Geschwindigkeit "
+"abgespielt.\n"
+"Bei einem negativen Wert wird die Animation rückwärts abgespielt. Bei einem "
+"Wert von [code]0[/code] wird die Animation nicht vorwärts abgespielt."
+
+msgid ""
+"The [SpriteFrames] resource containing the animation(s). Allows you the "
+"option to load, edit, clear, make unique and save the states of the "
+"[SpriteFrames] resource."
+msgstr ""
+"Die [SpriteFrames]-Ressource, ignore-duplicate:die die Animation(en) enthält. "
+"Ermöglicht es Ihnen, die Zustände der [SpriteFrames]-Ressource zu laden, zu "
+"bearbeiten, zu löschen, eindeutig zu machen und zu speichern."
+
+msgid ""
+"2D sprite node in 3D world, that can use multiple 2D textures for animation."
+msgstr ""
+"2D-Sprite-Knoten in der 3D-Welt, der mehrere 2D-Texturen für die Animation "
+"verwenden kann."
+
+msgid ""
+"[AnimatedSprite3D] is similar to the [Sprite3D] node, except it carries "
+"multiple textures as animation [member sprite_frames]. Animations are created "
+"using a [SpriteFrames] resource, which allows you to import image files (or a "
+"folder containing said files) to provide the animation frames for the sprite. "
+"The [SpriteFrames] resource can be configured in the editor via the "
+"SpriteFrames bottom panel."
+msgstr ""
+"[AnimatedSprite3D] ähnelt dem [Sprite3D]-Knoten (Node), außer dass er mehrere "
+"Texturen als Animations-[member sprite_frames] enthält. Animationen werden "
+"mit einer [SpriteFrames]-Ressource erstellt, die es Ihnen ermöglicht, "
+"Bilddateien (oder einen Ordner mit diesen Dateien) zu importieren, um die "
+"Animationsrahmen für das Sprite bereitzustellen. Die [SpriteFrames]-Ressource "
+"kann im Editor über das untere Panel SpriteFrames konfiguriert werden."
+
+msgid "2D Sprite animation (also applies to 3D)"
+msgstr "2D Sprite Animation (gilt ebenfalls für 3D)"
+
+msgid "Proxy texture for simple frame-based animations."
+msgstr "Proxy-Textur für einfache framebasierte Animationen."
+
+msgid ""
+"[AnimatedTexture] is a resource format for frame-based animations, where "
+"multiple textures can be chained automatically with a predefined delay for "
+"each frame. Unlike [AnimationPlayer] or [AnimatedSprite2D], it isn't a "
+"[Node], but has the advantage of being usable anywhere a [Texture2D] resource "
+"can be used, e.g. in a [TileSet].\n"
+"The playback of the animation is controlled by the [member speed_scale] "
+"property, as well as each frame's duration (see [method set_frame_duration]). "
+"The animation loops, i.e. it will restart at frame 0 automatically after "
+"playing the last frame.\n"
+"[AnimatedTexture] currently requires all frame textures to have the same "
+"size, otherwise the bigger ones will be cropped to match the smallest one.\n"
+"[b]Note:[/b] AnimatedTexture doesn't support using [AtlasTexture]s. Each "
+"frame needs to be a separate [Texture2D].\n"
+"[b]Warning:[/b] The current implementation is not efficient for the modern "
+"renderers.\n"
+"[i]Deprecated.[/i] This class is deprecated, and might be removed in a future "
+"release."
+msgstr ""
+"[AnimatedTexture] ist ein Ressourcenformat für Frame-basierte Animationen, "
+"bei denen mehrere Texturen automatisch mit einer vordefinierten Verzögerung "
+"für jedes Frame verkettet werden können. Im Gegensatz zu [AnimationPlayer] "
+"oder [AnimatedSprite2D] ist es kein [Node], hat aber den Vorteil, dass es "
+"überall verwendet werden kann, wo eine [Texture2D]-Ressource verwendet werden "
+"kann, z.B. in einem [TileSet].\n"
+"Die Wiedergabe der Animation wird durch die [member speed_scale]-Eigenschaft "
+"gesteuert, ebenso wie die Dauer der einzelnen Frames (siehe [method "
+"set_frame_duration]). Die Animation wird in einer Schleife abgespielt, d.h. "
+"sie beginnt automatisch wieder bei Bild 0, nachdem das letzte Bild abgespielt "
+"wurde.\n"
+"[AnimatedTexture] erfordert derzeit, dass alle Frame-Texturen die gleiche "
+"Größe haben, ansonsten werden die größeren Texturen auf die kleinste "
+"zugeschnitten.\n"
+"[b]Hinweis:[/b] AnimatedTexture unterstützt nicht die Verwendung von "
+"[AtlasTexture]s. Jedes Bild muss eine eigene [Texture2D] sein.\n"
+"[b]Warnung:[/b] Die aktuelle Implementierung ist für moderne Renderer nicht "
+"effizient.\n"
+"[i]Veraltet:[/i] Diese Klasse ist veraltet und wird möglicherweise in einer "
+"zukünftigen Version entfernt werden."
+
+msgid ""
+"Sets the duration of any given [param frame]. The final duration is affected "
+"by the [member speed_scale]. If set to [code]0[/code], the frame is skipped "
+"during playback."
+msgstr ""
+"Legt die Dauer eines bestimmten [param frame] fest. Die endgültige Dauer wird "
+"durch die [member speed_scale] beeinflusst. Bei [code]0[/code] wird das Bild "
+"bei der Wiedergabe übersprungen."
+
+msgid ""
+"Sets the currently visible frame of the texture. Setting this frame while "
+"playing resets the current frame time, so the newly selected frame plays for "
+"its whole configured frame duration."
+msgstr ""
+"Setzt den aktuell sichtbaren Frame der Textur. Das Setzen dieses Rahmens "
+"während der Wiedergabe setzt die aktuelle Rahmenzeit zurück, so dass der neu "
+"gewählte Rahmen für die gesamte konfigurierte Rahmendauer abgespielt wird."
+
+msgid ""
+"Number of frames to use in the animation. While you can create the frames "
+"independently with [method set_frame_texture], you need to set this value for "
+"the animation to take new frames into account. The maximum number of frames "
+"is [constant MAX_FRAMES]."
+msgstr ""
+"Anzahl der Frames, die in der Animation verwendet werden sollen. Während Sie "
+"die Frames mit der [method set_frame_texture] selbständig erstellen können, "
+"müssen Sie diesen Wert setzen, damit die Animation neue Frames "
+"berücksichtigt. Die maximale Anzahl der Frames ist [constant MAX_FRAMES]."
+
+msgid ""
+"If [code]true[/code], the animation will only play once and will not loop "
+"back to the first frame after reaching the end. Note that reaching the end "
+"will not set [member pause] to [code]true[/code]."
+msgstr ""
+"Wenn [code]true[/code], wird die Animation nur einmal abgespielt und kehrt "
+"nach Erreichen des Endes nicht zum ersten Bild zurück. Beachten Sie, dass das "
+"Erreichen des Endes nicht dazu führt, dass [member pause] auf [code]true[/"
+"code] gesetzt wird."
+
+msgid ""
+"If [code]true[/code], the animation will pause where it currently is (i.e. at "
+"[member current_frame]). The animation will continue from where it was paused "
+"when changing this property to [code]false[/code]."
+msgstr ""
+"Wenn [code]true[/code], wird die Animation an der Stelle angehalten, an der "
+"sie sich gerade befindet (d. h. bei [member current_frame]). Die Animation "
+"wird an der Stelle fortgesetzt, an der sie angehalten wurde, wenn Sie diese "
+"Eigenschaft auf [code]false[/code] ändern."
+
+msgid ""
+"This resource holds data that can be used to animate anything in the engine. "
+"Animations are divided into tracks and each track must be linked to a node. "
+"The state of that node can be changed through time, by adding timed keys "
+"(events) to the track.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# This creates an animation that makes the node \"Enemy\" move to the right "
+"by\n"
+"# 100 pixels in 0.5 seconds.\n"
+"var animation = Animation.new()\n"
+"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
+"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
+"animation.track_insert_key(track_index, 0.0, 0)\n"
+"animation.track_insert_key(track_index, 0.5, 100)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// This creates an animation that makes the node \"Enemy\" move to the right "
+"by\n"
+"// 100 pixels in 0.5 seconds.\n"
+"var animation = new Animation();\n"
+"int trackIndex = animation.AddTrack(Animation.TrackType.Value);\n"
+"animation.TrackSetPath(trackIndex, \"Enemy:position:x\");\n"
+"animation.TrackInsertKey(trackIndex, 0.0f, 0);\n"
+"animation.TrackInsertKey(trackIndex, 0.5f, 100);\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Animations are just data containers, and must be added to nodes such as an "
+"[AnimationPlayer] to be played back. Animation tracks have different types, "
+"each with its own set of dedicated methods. Check [enum TrackType] to see "
+"available types.\n"
+"[b]Note:[/b] For 3D position/rotation/scale, using the dedicated [constant "
+"TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] "
+"track types instead of [constant TYPE_VALUE] is recommended for performance "
+"reasons."
+msgstr ""
+"Diese Ressource enthält Daten, die verwendet werden können, um irgendetwas in "
+"der Engine zu animieren. Animationen sind in Spuren unterteilt und jede Spur "
+"muss mit einem Knoten verbunden sein. Der Zustand dieses Knotens kann im "
+"Laufe der Zeit geändert werden, indem zeitlich festgelegte Schlüssel "
+"(Ereignisse) zur Spur hinzugefügt werden.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Dies erzeugt eine Animation, die den Knoten (Node) \"Feind\" nach rechts "
+"um\n"
+"# 100 Pixel in 0,5 Sekunden.\n"
+"var animation = Animation.new()\n"
+"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
+"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
+"animation.track_insert_key(track_index, 0.0, 0)\n"
+"animation.track_insert_key(track_index, 0.5, 100)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Dies erzeugt eine Animation, die den Knoten (Node) \"Feind\" nach rechts "
+"um\n"
+"// 100 Pixel in 0,5 Sekunden.\n"
+"var animation = new Animation();\n"
+"int trackIndex = animation.AddTrack(Animation.TrackType.Value);\n"
+"animation.TrackSetPath(trackIndex, \"Enemy:position:x\");\n"
+"animation.TrackInsertKey(trackIndex, 0.0f, 0);\n"
+"animation.TrackInsertKey(trackIndex, 0.5f, 100);\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Animationen sind lediglich Datencontainer und müssen zu Knoten (Node) wie "
+"einem [AnimationPlayer] hinzugefügt werden, um abgespielt werden zu können. "
+"Animationsspuren haben verschiedene Typen, jeder mit seinem eigenen Satz von "
+"speziellen Methoden. Prüfen Sie [enum TrackType], um die verfügbaren Typen zu "
+"sehen.\n"
+"[b]Hinweis:[/b] Für 3D-Position/Drehung/Skalierung wird die Verwendung der "
+"dedizierten [constant TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] und "
+"[constant TYPE_SCALE_3D] Spurtypen anstelle von [constant TYPE_VALUE] aus "
+"Leistungsgründen empfohlen."
+
+msgid "Animation documentation index"
+msgstr "Index der Animationsdokumentation"
+
+msgid "Adds a track to the Animation."
+msgstr "Fügt der Animation eine Spur hinzu."
+
+msgid ""
+"Returns [code]true[/code] if the track at [param track_idx] will be blended "
+"with other animations."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Track an [param track_idx] mit "
+"anderen Animationen überblendet wird."
+
+msgid ""
+"Sets whether the track will be blended with other animations. If [code]true[/"
+"code], the audio playback volume changes depending on the blend value."
+msgstr ""
+"Legt fest, ob die Spur mit anderen Animationen überblendet werden soll. Wenn "
+"[code]true[/code], ändert sich die Lautstärke der Audiowiedergabe je nach "
+"Überblendungswert."
+
+msgid "Clear the animation (clear all tracks and reset all)."
+msgstr ""
+"Löschen Sie die Animation (löschen Sie alle Spuren und setzen Sie alle "
+"zurück)."
+
+msgid ""
+"Compress the animation and all its tracks in-place. This will make [method "
+"track_is_compressed] return [code]true[/code] once called on this "
+"[Animation]. Compressed tracks require less memory to be played, and are "
+"designed to be used for complex 3D animations (such as cutscenes) imported "
+"from external 3D software. Compression is lossy, but the difference is "
+"usually not noticeable in real world conditions.\n"
+"[b]Note:[/b] Compressed tracks have various limitations (such as not being "
+"editable from the editor), so only use compressed animations if you actually "
+"need them."
+msgstr ""
+"Komprimiert die Animation und alle ihre Spuren an Ort und Stelle. Dies führt "
+"dazu, dass [method track_is_compressed] [code]true[/code] zurückgibt, sobald "
+"es für diese [Animation] aufgerufen wird. Komprimierte Spuren benötigen beim "
+"Abspielen weniger Speicherplatz und sind für komplexe 3D-Animationen (z. B. "
+"Zwischensequenzen) gedacht, die aus externer 3D-Software importiert werden. "
+"Die Komprimierung ist verlustbehaftet, aber der Unterschied ist unter realen "
+"Bedingungen normalerweise nicht spürbar.\n"
+"[b]Hinweis:[/b] Komprimierte Spuren haben verschiedene Einschränkungen (z. B. "
+"können sie nicht mit dem Editor bearbeitet werden), daher sollten Sie "
+"komprimierte Animationen nur verwenden, wenn Sie sie tatsächlich benötigen."
+
+msgid ""
+"Returns the index of the specified track. If the track is not found, return "
+"-1."
+msgstr ""
+"Gibt den Index der angegebenen Spur zurück. Wenn die Spur nicht gefunden ist, "
+"wird -1 zurückgegeben."
+
+msgid "Returns the amount of tracks in the animation."
+msgstr "Gibt die Anzahl der Spuren in der Animation zurück."
+
+msgid "Returns the method name of a method track."
+msgstr "Gibt den Methodennamen einer Methodenspur zurück."
+
+msgid ""
+"Returns the arguments values to be called on a method track for a given key "
+"in a given track."
+msgstr ""
+"Gibt die Werte der Argumente zurück, die auf einer Methodenspur für einen "
+"gegebenen Schlüssel in einer gegebenen Spur aufgerufen werden sollen."
+
+msgid "Inserts a key in a given 3D position track. Returns the key index."
+msgstr ""
+"Fügt einen Schlüssel in eine angegebene 3D-Positionsspur ein. Gibt den "
+"Schlüsselindex zurück."
+
+msgid "Removes a track by specifying the track index."
+msgstr "Entfernt eine Spur durch Angabe des Spurindexes."
+
+msgid "Inserts a key in a given 3D rotation track. Returns the key index."
+msgstr ""
+"Fügt einen Schlüssel in eine gegebene 3D-Drehspur ein. Gibt den "
+"Schlüsselindex zurück."
+
+msgid "Inserts a key in a given 3D scale track. Returns the key index."
+msgstr ""
+"Fügt einen Schlüssel in eine angegebene 3D-Skalenspur ein. Gibt den "
+"Schlüsselindex zurück."
+
+msgid ""
+"Returns [code]true[/code] if the track at [param track_idx] wraps the "
+"interpolation loop. New tracks wrap the interpolation loop by default."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Spur an [param track_idx] die "
+"Interpolationsschleife umschließt. Neue Spuren umschließen die "
+"Interpolationsschleife standardmäßig."
+
+msgid "Returns the interpolation type of a given track."
+msgstr "Gibt den Interpolationstyp einer gegebenen Spur zurück."
+
+msgid "Returns the time at which the key is located."
+msgstr "Gibt die Uhrzeit zurück, zu der sich der Schlüssel befindet."
+
+msgid "Returns the value of a given key in a given track."
+msgstr ""
+"Gibt den Wert eines gegebenen Schlüssels in einer gegebenen Spur zurück."
+
+msgid ""
+"Gets the path of a track. For more information on the path format, see "
+"[method track_set_path]."
+msgstr ""
+"Ruft den Pfad eines Tracks ab. Weitere Informationen zum Pfadformat finden "
+"Sie in [method track_set_path]."
+
+msgid "Gets the type of a track."
+msgstr "Ruft den Typ einer Spur ab."
+
+msgid ""
+"Returns [code]true[/code] if the track is compressed, [code]false[/code] "
+"otherwise. See also [method compress]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Track komprimiert ist, sonst "
+"[code]false[/code]. Siehe auch [method compress]."
+
+msgid ""
+"Returns [code]true[/code] if the track at index [param track_idx] is enabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Spur am Index [param track_idx] "
+"aktiviert ist."
+
+msgid ""
+"Returns [code]true[/code] if the given track is imported. Else, return "
+"[code]false[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der angegebene Track importiert ist. "
+"Andernfalls wird [code]false[/code] zurückgegeben."
+
+msgid "Moves a track down."
+msgstr "Verschiebt eine Spur nach unten."
+
+msgid "Moves a track up."
+msgstr "Verschiebt eine Spur nach oben."
+
+msgid "Removes a key by index in a given track."
+msgstr "Entfernt einen Schlüssel nach Index in einer bestimmten Spur."
+
+msgid "Enables/disables the given track. Tracks are enabled by default."
+msgstr ""
+"Aktiviert/deaktiviert die angegebene Spur. Tracks sind standardmäßig "
+"aktiviert."
+
+msgid "Sets the given track as imported or not."
+msgstr "Legt die angegebene Spur als importiert oder nicht importiert fest."
+
+msgid ""
+"If [code]true[/code], the track at [param track_idx] wraps the interpolation "
+"loop."
+msgstr ""
+"Wenn [code]true[/code], umschließt die Spur an [param track_idx] die "
+"Interpolationsschleife."
+
+msgid "Sets the interpolation type of a given track."
+msgstr "Legt den Interpolationstyp einer bestimmten Spur fest."
+
+msgid "Sets the time of an existing key."
+msgstr "Setzt die Zeit eines vorhandenen Schlüssels."
+
+msgid "Sets the value of an existing key."
+msgstr "Setzt den Wert eines vorhandenen Schlüssels."
+
+msgid "Returns the update mode of a value track."
+msgstr "Gibt den Aktualisierungsmodus einer Wertespur zurück."
+
+msgid "Sets the update mode (see [enum UpdateMode]) of a value track."
+msgstr ""
+"Legt den Aktualisierungsmodus (siehe [enum UpdateMode]) einer Wertespur fest."
+
+msgid ""
+"The total length of the animation (in seconds).\n"
+"[b]Note:[/b] Length is not delimited by the last key, as this one may be "
+"before or after the end to ensure correct interpolation and looping."
+msgstr ""
+"Die Gesamtlänge der Animation (in Sekunden).\n"
+"[b]Hinweis:[/b] Die Länge wird nicht durch die letzte Taste begrenzt, da "
+"diese vor oder nach dem Ende liegen kann, um eine korrekte Interpolation und "
+"Schleifenbildung zu gewährleisten."
+
+msgid "The animation step value."
+msgstr "Der Animationsschrittwert."
+
+msgid ""
+"Value tracks set values in node properties, but only those which can be "
+"interpolated. For 3D position/rotation/scale, using the dedicated [constant "
+"TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] "
+"track types instead of [constant TYPE_VALUE] is recommended for performance "
+"reasons."
+msgstr ""
+"Wertespuren setzen Werte in Knoteneigenschaften, aber nur solche, die "
+"interpoliert werden können. Für 3D-Position/Drehung/Skalierung wird aus "
+"Leistungsgründen die Verwendung der speziellen [constant TYPE_POSITION_3D], "
+"[constant TYPE_ROTATION_3D] und [constant TYPE_SCALE_3D] Tracktypen anstelle "
+"von [constant TYPE_VALUE] empfohlen."
+
+msgid "3D position track (values are stored in [Vector3]s)."
+msgstr "3D-Positionsspur (Werte werden in [Vector3]s gespeichert)."
+
+msgid "3D rotation track (values are stored in [Quaternion]s)."
+msgstr "3D-Drehspur (Werte werden in [Quaternion]s gespeichert)."
+
+msgid "3D scale track (values are stored in [Vector3]s)."
+msgstr "3D-Skalenspur (Werte werden in [Vector3]s gespeichert)."
+
+msgid "Blend shape track."
+msgstr "Blend-Form-Spur."
+
+msgid "Method tracks call functions with given arguments per key."
+msgstr ""
+"Methode verfolgt den Aufruf von Funktionen mit gegebenen Argumenten pro Taste."
+
+msgid ""
+"Bezier tracks are used to interpolate a value using custom curves. They can "
+"also be used to animate sub-properties of vectors and colors (e.g. alpha "
+"value of a [Color])."
+msgstr ""
+"Bezier-Spuren werden verwendet, um einen Wert mithilfe von "
+"benutzerdefinierten Kurven zu interpolieren. Sie können auch verwendet "
+"werden, um Untereigenschaften von Vektoren und Farben zu animieren (z. B. den "
+"Alphawert einer [Color])."
+
+msgid ""
+"Audio tracks are used to play an audio stream with either type of "
+"[AudioStreamPlayer]. The stream can be trimmed and previewed in the animation."
+msgstr ""
+"Audiospuren werden verwendet, um einen Audiostream mit einem der beiden Typen "
+"von [AudioStreamPlayer] abzuspielen. Der Stream kann in der Animation "
+"getrimmt und als Vorschau angezeigt werden."
+
+msgid "Animation tracks play animations in other [AnimationPlayer] nodes."
+msgstr ""
+"Animationsspuren spielen Animationen in anderen [AnimationPlayer]-Knoten ab."
+
+msgid "No interpolation (nearest value)."
+msgstr "Keine Interpolation (nächstgelegener Wert)."
+
+msgid "Linear interpolation."
+msgstr "lineare Interpolation."
+
+msgid ""
+"Cubic interpolation. This looks smoother than linear interpolation, but is "
+"more expensive to interpolate. Stick to [constant INTERPOLATION_LINEAR] for "
+"complex 3D animations imported from external software, even if it requires "
+"using a higher animation framerate in return."
+msgstr ""
+"Kubische Interpolation. Diese sieht glatter aus als lineare Interpolation, "
+"ist aber teurer in der Interpolation. Bleiben Sie bei [constant "
+"INTERPOLATION_LINEAR] für komplexe 3D-Animationen, die aus externer Software "
+"importiert werden, auch wenn dafür eine höhere Animationsframerate "
+"erforderlich ist."
+
+msgid ""
+"Linear interpolation with shortest path rotation.\n"
+"[b]Note:[/b] The result value is always normalized and may not match the key "
+"value."
+msgstr ""
+"Lineare Interpolation mit Rotation auf dem kürzesten Weg.\n"
+"[b]Hinweis:[/b] Der Ergebniswert ist immer normalisiert und stimmt "
+"möglicherweise nicht mit dem Schlüsselwert überein."
+
+msgid ""
+"Cubic interpolation with shortest path rotation.\n"
+"[b]Note:[/b] The result value is always normalized and may not match the key "
+"value."
+msgstr ""
+"Kubische Interpolation mit Rotation auf dem kürzesten Weg.\n"
+"[b]Hinweis:[/b] Der Ergebniswert ist immer normalisiert und stimmt "
+"möglicherweise nicht mit dem Schlüsselwert überein."
+
+msgid "Update at the keyframes."
+msgstr "Aktualisierung an den Keyframes."
+
+msgid ""
+"Same as linear interpolation, but also interpolates from the current value (i."
+"e. dynamically at runtime) if the first key isn't at 0 seconds."
+msgstr ""
+"Wie lineare Interpolation, interpoliert aber zusätzlich vom aktuellen Wert "
+"aus (d.h. dynamisch zur Laufzeit), wenn der erste Schlüssel nicht auf 0 "
+"Sekunden steht."
+
+msgid ""
+"At both ends of the animation, the animation will be repeated without "
+"changing the playback direction."
+msgstr ""
+"An beiden Enden der Animation wird die Animation ohne Änderung der "
+"Abspielrichtung wiederholt."
+
+msgid "Repeats playback and reverse playback at both ends of the animation."
+msgstr ""
+"Wiederholung der Wiedergabe und Rückwärtswiedergabe an beiden Enden der "
+"Animation."
+
+msgid "This flag indicates that the animation proceeds without any looping."
+msgstr "Dieses Flag zeigt an, dass die Animation ohne Schleifen abläuft."
+
+msgid ""
+"This flag indicates that the animation has reached the end of the animation "
+"and just after loop processed."
+msgstr ""
+"Dieses Flag zeigt an, dass die Animation das Ende der Animation erreicht hat "
+"und kurz nach der Schleife verarbeitet wurde."
+
+msgid ""
+"This flag indicates that the animation has reached the start of the animation "
+"and just after loop processed."
+msgstr ""
+"Dieses Flag zeigt an, dass die Animation den Anfang der Animation erreicht "
+"hat und kurz nach der Schleife verarbeitet wurde."
+
+msgid "Finds only the key with approximating the time."
+msgstr "Findet nur den Schlüssel mit annähernder Zeitangabe."
+
+msgid "Finds only the key with matching the time."
+msgstr "Findet nur den Schlüssel, der mit der Zeit übereinstimmt."
+
+msgid "Animation tutorial index"
+msgstr "Animations-Tutorial-Index"
+
+msgid ""
+"Returns the [Animation] with the key [param name]. If the animation does not "
+"exist, [code]null[/code] is returned and an error is logged."
+msgstr ""
+"Gibt die [Animation] mit dem Schlüssel [param name] zurück. Wenn die "
+"Animation nicht existiert, wird [code]null[/code] zurückgegeben und ein "
+"Fehler protokolliert."
+
+msgid ""
+"Returns [code]true[/code] if the library stores an [Animation] with [param "
+"name] as the key."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Bibliothek eine [Animation] mit "
+"[param name] als Schlüssel speichert."
+
+msgid ""
+"Changes the key of the [Animation] associated with the key [param name] to "
+"[param newname]."
+msgstr ""
+"Ändert den Schlüssel der [Animation], die mit dem Schlüssel [param name] "
+"verbunden ist, in [param newname]."
+
+msgid "Emitted when an [Animation] is added, under the key [param name]."
+msgstr ""
+"Wird ausgegeben, wenn eine [Animation] unter dem Schlüssel [param name] "
+"hinzugefügt wird."
+
+msgid ""
+"Emitted when there's a change in one of the animations, e.g. tracks are "
+"added, moved or have changed paths. [param name] is the key of the animation "
+"that was changed.\n"
+"See also [signal Resource.changed], which this acts as a relay for."
+msgstr ""
+"Wird ausgegeben, wenn eine der Animationen geändert wurde, z. B. wenn Spuren "
+"hinzugefügt oder verschoben wurden oder wenn sich die Pfade geändert haben. "
+"[param name] ist der Schlüssel der Animation, die geändert wurde.\n"
+"Siehe auch [signal Resource.changed], für das dies als Relais fungiert."
+
+msgid ""
+"Emitted when the key for an [Animation] is changed, from [param name] to "
+"[param to_name]."
+msgstr ""
+"Wird ausgegeben, wenn der Schlüssel für eine [Animation] von [param name] auf "
+"[param to_name] geändert wird."
+
+msgid ""
+"Base class for [AnimationPlayer] and [AnimationTree] to manage animation "
+"lists. It also has general properties and methods for playback and blending.\n"
+"After instantiating the playback information data within the extended class, "
+"the blending is processed by the [AnimationMixer]."
+msgstr ""
+"Basisklasse für [AnimationPlayer] und [AnimationTree] zur Verwaltung von "
+"Animationslisten. Sie verfügt auch über allgemeine Eigenschaften und Methoden "
+"für die Wiedergabe und Überblendung.\n"
+"Nach der Instanziierung der Wiedergabeinformationsdaten innerhalb der "
+"erweiterten Klasse wird die Überblendung durch den [AnimationMixer] "
+"verarbeitet."
+
+msgid "A virtual function for processing after key getting during playback."
+msgstr ""
+"Eine virtuelle Funktion für die Verarbeitung nach dem Tastendruck während der "
+"Wiedergabe."
+
+msgid ""
+"Adds [param library] to the animation player, under the key [param name]."
+msgstr ""
+"Fügt [Parameterbibliothek] dem Animationsplayer unter dem Schlüssel "
+"[Parametername] hinzu."
+
+msgid "Manually advance the animations by the specified time (in seconds)."
+msgstr ""
+"Bewegt die Animationen manuell um die angegebene Zeit (in Sekunden) weiter."
+
+msgid ""
+"Returns the first [AnimationLibrary] with key [param name] or [code]null[/"
+"code] if not found.\n"
+"To get the [AnimationPlayer]'s global animation library, use "
+"[code]get_animation_library(\"\")[/code]."
+msgstr ""
+"Gibt die erste [AnimationLibrary] mit dem Schlüssel [param name] zurück oder "
+"[code]null[/code], falls nicht gefunden.\n"
+"Um die globale Animationsbibliothek des [AnimationPlayer] zu erhalten, "
+"verwende [code]get_animation_library(\"\")[/code]."
+
+msgid ""
+"Retrieve the motion delta of position with the [member root_motion_track] as "
+"a [Vector3] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_POSITION_3D], returns [code]Vector3(0, 0, 0)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying position to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_rotation: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_rotation = get_quaternion()\n"
+" state_machine.travel(\"Animate\")\n"
+" var velocity: Vector3 = current_rotation * animation_tree."
+"get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"By using this in combination with [method "
+"get_root_motion_position_accumulator], you can apply the root motion position "
+"more correctly to account for the rotation of the node.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+" var velocity: Vector3 = (animation_tree."
+"get_root_motion_rotation_accumulator().inverse() * get_quaternion()) * "
+"animation_tree.get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Liefert das Bewegungsdelta der Position mit dem [member root_motion_track] "
+"als [Vector3], der anderweitig verwendet werden kann.\n"
+"Wenn [member root_motion_track] kein Pfad zu einer Spur vom Typ [constant "
+"Animation.TYPE_POSITION_3D] ist, wird [code]Vector3(0, 0, 0)[/code] "
+"zurückgegeben.\n"
+"Siehe auch [member root_motion_track] und [RootMotionView].\n"
+"Das einfachste Beispiel ist die Anwendung der Position auf "
+"[CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_rotation: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_rotation = get_quaternion()\n"
+" state_machine.travel(\"Animate\")\n"
+" var velocity: Vector3 = current_rotation * animation_tree."
+"get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"Wenn Sie dies in Kombination mit [method "
+"get_root_motion_position_accumulator] verwenden, können Sie die "
+"Wurzelbewegungsposition korrekter anwenden, um die Drehung des Knotens (Node) "
+"zu berücksichtigen.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+" var velocity: Vector3 = (animation_tree."
+"get_root_motion_rotation_accumulator().inverse() * get_quaternion()) * "
+"animation_tree.get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the position tracks with the [member "
+"root_motion_track] as a [Vector3] that can be used elsewhere.\n"
+"This is useful in cases where you want to respect the initial key values of "
+"the animation.\n"
+"For example, if an animation with only one key [code]Vector3(0, 0, 0)[/code] "
+"is played in the previous frame and then an animation with only one key "
+"[code]Vector3(1, 0, 1)[/code] is played in the next frame, the difference can "
+"be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_position_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_position_accumulator: Vector3 = animation_tree."
+"get_root_motion_position_accumulator()\n"
+" var difference: Vector3 = current_root_motion_position_accumulator - "
+"prev_root_motion_position_accumulator\n"
+" prev_root_motion_position_accumulator = "
+"current_root_motion_position_accumulator\n"
+" transform.origin += difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"Ruft den gemischten Wert der Positionsspuren mit dem [member "
+"root_motion_track] als [Vector3] ab, der an anderer Stelle verwendet werden "
+"kann.\n"
+"Dies ist in Fällen nützlich, in denen Sie die anfänglichen Schlüsselwerte der "
+"Animation respektieren wollen.\n"
+"Wenn z.B. eine Animation mit nur einer Taste [code]Vector3(0, 0, 0)[/code] im "
+"vorherigen Frame abgespielt wird und dann eine Animation mit nur einer Taste "
+"[code]Vector3(1, 0, 1)[/code] im nächsten Frame abgespielt wird, kann die "
+"Differenz wie folgt berechnet werden:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_position_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_position_accumulator: Vector3 = animation_tree."
+"get_root_motion_position_accumulator()\n"
+" var difference: Vector3 = current_root_motion_position_accumulator - "
+"prev_root_motion_position_accumulator\n"
+" prev_root_motion_position_accumulator = "
+"current_root_motion_position_accumulator\n"
+" transform.origin += difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"Wenn die Animation jedoch in einer Schleife läuft, kann es zu einer "
+"unbeabsichtigten diskreten Änderung kommen, so dass dies nur für einige "
+"einfache Anwendungsfälle sinnvoll ist."
+
+msgid ""
+"Retrieve the motion delta of rotation with the [member root_motion_track] as "
+"a [Quaternion] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_ROTATION_3D], returns [code]Quaternion(0, 0, 0, 1)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying rotation to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Liefert das Bewegungsdelta der Rotation mit dem [member root_motion_track] "
+"als [Quaternion], das an anderer Stelle verwendet werden kann.\n"
+"Wenn [member root_motion_track] kein Pfad zu einer Spur vom Typ [constant "
+"Animation.TYPE_ROTATION_3D] ist, wird [code]Quaternion(0, 0, 0, 1)[/code] "
+"zurückgegeben.\n"
+"Siehe auch [member root_motion_track] und [RootMotionView].\n"
+"Das einfachste Beispiel ist die Anwendung der Rotation auf "
+"[CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the rotation tracks with the [member "
+"root_motion_track] as a [Quaternion] that can be used elsewhere.\n"
+"This is necessary to apply the root motion position correctly, taking "
+"rotation into account. See also [method get_root_motion_position].\n"
+"Also, this is useful in cases where you want to respect the initial key "
+"values of the animation.\n"
+"For example, if an animation with only one key [code]Quaternion(0, 0, 0, 1)[/"
+"code] is played in the previous frame and then an animation with only one key "
+"[code]Quaternion(0, 0.707, 0, 0.707)[/code] is played in the next frame, the "
+"difference can be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_rotation_accumulator: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_rotation_accumulator: Quaternion = animation_tree."
+"get_root_motion_Quaternion_accumulator()\n"
+" var difference: Quaternion = prev_root_motion_rotation_accumulator."
+"inverse() * current_root_motion_rotation_accumulator\n"
+" prev_root_motion_rotation_accumulator = "
+"current_root_motion_rotation_accumulator\n"
+" transform.basis *= difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"Holen Sie sich den gemischten Wert der Rotationsspuren mit dem [member "
+"root_motion_track] als [Quaternion], der an anderer Stelle verwendet werden "
+"kann.\n"
+"Dies ist notwendig, um die Wurzelbewegungsposition unter Berücksichtigung der "
+"Rotation korrekt anzuwenden. Siehe auch [method get_root_motion_position].\n"
+"Dies ist auch in Fällen nützlich, in denen Sie die anfänglichen "
+"Schlüsselwerte der Animation berücksichtigen wollen.\n"
+"Wenn z.B. eine Animation mit nur einem Schlüssel [code]Quaternion(0, 0, 0, 1)"
+"[/code] im vorherigen Frame abgespielt wird und dann eine Animation mit nur "
+"einem Schlüssel [code]Quaternion(0, 0.707, 0, 0.707)[/code] im nächsten Frame "
+"abgespielt wird, kann die Differenz wie folgt berechnet werden:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_rotation_accumulator: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_rotation_accumulator: Quaternion = animation_tree."
+"get_root_motion_Quaternion_accumulator()\n"
+" var difference: Quaternion = prev_root_motion_rotation_accumulator."
+"inverse() * current_root_motion_rotation_accumulator\n"
+" prev_root_motion_rotation_accumulator = "
+"current_root_motion_rotation_accumulator\n"
+" transform.basis *= difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"Wenn die Animation jedoch in einer Schleife läuft, kann es zu einer "
+"unbeabsichtigten diskreten Änderung kommen, so dass dies nur für einige "
+"einfache Anwendungsfälle sinnvoll ist."
+
+msgid ""
+"Retrieve the motion delta of scale with the [member root_motion_track] as a "
+"[Vector3] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_SCALE_3D], returns [code]Vector3(0, 0, 0)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying scale to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_scale: Vector3 = Vector3(1, 1, 1)\n"
+"var scale_accum: Vector3 = Vector3(1, 1, 1)\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_scale = get_scale()\n"
+" scale_accum = Vector3(1, 1, 1)\n"
+" state_machine.travel(\"Animate\")\n"
+" scale_accum += animation_tree.get_root_motion_scale()\n"
+" set_scale(current_scale * scale_accum)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Liefert das Bewegungsdelta von scale mit dem [member root_motion_track] als "
+"[Vector3], der anderweitig verwendet werden kann.\n"
+"Wenn [member root_motion_track] kein Pfad zu einer Spur vom Typ [constant "
+"Animation.TYPE_SCALE_3D] ist, wird [code]Vector3(0, 0, 0)[/code] "
+"zurückgegeben.\n"
+"Siehe auch [member root_motion_track] und [RootMotionView].\n"
+"Das einfachste Beispiel ist die Anwendung der Skalierung auf "
+"[CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_scale: Vector3 = Vector3(1, 1, 1)\n"
+"var scale_accum: Vector3 = Vector3(1, 1, 1)\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_scale = get_scale()\n"
+" scale_accum = Vector3(1, 1, 1)\n"
+" state_machine.travel(\"Animate\")\n"
+" scale_accum += animation_tree.get_root_motion_scale()\n"
+" set_scale(current_scale * scale_accum)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the scale tracks with the [member "
+"root_motion_track] as a [Vector3] that can be used elsewhere.\n"
+"For example, if an animation with only one key [code]Vector3(1, 1, 1)[/code] "
+"is played in the previous frame and then an animation with only one key "
+"[code]Vector3(2, 2, 2)[/code] is played in the next frame, the difference can "
+"be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_scale_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_scale_accumulator: Vector3 = animation_tree."
+"get_root_motion_scale_accumulator()\n"
+" var difference: Vector3 = current_root_motion_scale_accumulator - "
+"prev_root_motion_scale_accumulator\n"
+" prev_root_motion_scale_accumulator = "
+"current_root_motion_scale_accumulator\n"
+" transform.basis = transform.basis.scaled(difference)\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"Holen Sie sich den gemischten Wert der Skalenspuren mit dem [member "
+"root_motion_track] als [Vector3], der an anderer Stelle verwendet werden "
+"kann.\n"
+"Wenn zum Beispiel eine Animation mit nur einer Taste [code]Vector3(1, 1, 1)[/"
+"code] im vorherigen Frame und dann eine Animation mit nur einer Taste "
+"[code]Vector3(2, 2, 2)[/code] im nächsten Frame abgespielt wird, kann die "
+"Differenz wie folgt berechnet werden:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_scale_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_scale_accumulator: Vector3 = animation_tree."
+"get_root_motion_scale_accumulator()\n"
+" var difference: Vector3 = current_root_motion_scale_accumulator - "
+"prev_root_motion_scale_accumulator\n"
+" prev_root_motion_scale_accumulator = "
+"current_root_motion_scale_accumulator\n"
+" transform.basis = transform.basis.scaled(difference)\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"Wenn die Animation jedoch in einer Schleife läuft, kann es zu einer "
+"unbeabsichtigten diskreten Änderung kommen, so dass dies nur für einige "
+"einfache Anwendungsfälle sinnvoll ist."
+
+msgid ""
+"Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] with "
+"key [param name]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [AnimationPlayer] eine [Animation] "
+"mit dem Schlüssel [param name] speichert."
+
+msgid ""
+"Returns [code]true[/code] if the [AnimationPlayer] stores an "
+"[AnimationLibrary] with key [param name]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [AnimationPlayer] eine "
+"[AnimationLibrary] mit dem Schlüssel [param name] speichert."
+
+msgid "Removes the [AnimationLibrary] associated with the key [param name]."
+msgstr "Entfernt die [AnimationLibrary] mit der Taste [param name]."
+
+msgid ""
+"Moves the [AnimationLibrary] associated with the key [param name] to the key "
+"[param newname]."
+msgstr ""
+"Verschiebt die [AnimationLibrary], die mit der Taste [param name] verbunden "
+"ist, zu der Taste [param newname]."
+
+msgid ""
+"The number of possible simultaneous sounds for each of the assigned "
+"AudioStreamPlayers.\n"
+"For example, if this value is [code]32[/code] and the animation has two audio "
+"tracks, the two [AudioStreamPlayer]s assigned can play simultaneously up to "
+"[code]32[/code] voices each."
+msgstr ""
+"Die Anzahl der möglichen gleichzeitigen Töne für jeden der zugewiesenen "
+"AudioStreamPlayer.\n"
+"Wenn dieser Wert beispielsweise [code]32[/code] ist und die Animation zwei "
+"Audiospuren hat, können die beiden zugewiesenen [AudioStreamPlayer]s "
+"gleichzeitig jeweils bis zu [code]32[/code] Stimmen abspielen."
+
+msgid "The call mode to use for Call Method tracks."
+msgstr "Der Anrufmodus, der für Spuren der Anrufmethode verwendet werden soll."
+
+msgid "The process notification in which to update animations."
+msgstr "Die Prozessmeldung, in der die Animationen aktualisiert werden sollen."
+
+msgid ""
+"If [code]true[/code], the blending uses the deterministic algorithm. The "
+"total weight is not normalized and the result is accumulated with an initial "
+"value ([code]0[/code] or a [code]\"RESET\"[/code] animation if present).\n"
+"This means that if the total amount of blending is [code]0.0[/code], the "
+"result is equal to the [code]\"RESET\"[/code] animation.\n"
+"If the number of tracks between the blended animations is different, the "
+"animation with the missing track is treated as if it had the initial value.\n"
+"If [code]false[/code], The blend does not use the deterministic algorithm. "
+"The total weight is normalized and always [code]1.0[/code]. If the number of "
+"tracks between the blended animations is different, nothing is done about the "
+"animation that is missing a track.\n"
+"[b]Note:[/b] In [AnimationTree], the blending with [AnimationNodeAdd2], "
+"[AnimationNodeAdd3], [AnimationNodeSub2] or the weight greater than "
+"[code]1.0[/code] may produce unexpected results.\n"
+"For example, if [AnimationNodeAdd2] blends two nodes with the amount "
+"[code]1.0[/code], then total weight is [code]2.0[/code] but it will be "
+"normalized to make the total amount [code]1.0[/code] and the result will be "
+"equal to [AnimationNodeBlend2] with the amount [code]0.5[/code]."
+msgstr ""
+"Wenn [code]true[/code], verwendet die Mischung den deterministischen "
+"Algorithmus. Das Gesamtgewicht wird nicht normalisiert und das Ergebnis wird "
+"mit einem Anfangswert ([code]0[/code] oder einer [code]\"RESET\"[/code]-"
+"Animation, falls vorhanden) akkumuliert.\n"
+"Das heißt, wenn die Gesamtmenge der Überblendung [code]0,0[/code] beträgt, "
+"ist das Ergebnis gleich der [code]\"RESET\"[/code]-Animation.\n"
+"Wenn die Anzahl der Spuren zwischen den überblendeten Animationen "
+"unterschiedlich ist, wird die Animation mit der fehlenden Spur so behandelt, "
+"als hätte sie den Ausgangswert.\n"
+"Wenn [code]false[/code], verwendet die Überblendung nicht den "
+"deterministischen Algorithmus. Das Gesamtgewicht ist normalisiert und beträgt "
+"immer [code]1.0[/code]. Wenn die Anzahl der Spuren zwischen den überblendeten "
+"Animationen unterschiedlich ist, wird für die Animation, der eine Spur fehlt, "
+"nichts unternommen.\n"
+"[b]Hinweis:[/b] In [AnimationTree] kann das Überblenden mit "
+"[AnimationNodeAdd2], [AnimationNodeAdd3], [AnimationNodeSub2] oder einem "
+"Gewicht größer als [code]1.0[/code] zu unerwarteten Ergebnissen führen.\n"
+"Wenn zum Beispiel [AnimationNodeAdd2] zwei Knoten mit dem Wert [code]1.0[/"
+"code] überblendet, dann ist das Gesamtgewicht [code]2.0[/code], aber es wird "
+"normalisiert, um den Gesamtwert [code]1.0[/code] zu erhalten, und das "
+"Ergebnis ist gleich [AnimationNodeBlend2] mit dem Wert [code]0.5[/code]."
+
+msgid ""
+"This is used by the editor. If set to [code]true[/code], the scene will be "
+"saved with the effects of the reset animation (the animation with the key "
+"[code]\"RESET\"[/code]) applied as if it had been seeked to time 0, with the "
+"editor keeping the values that the scene had before saving.\n"
+"This makes it more convenient to preview and edit animations in the editor, "
+"as changes to the scene will not be saved as long as they are set in the "
+"reset animation."
+msgstr ""
+"Dies wird vom Editor verwendet. Wenn sie auf [code]true[/code] gesetzt ist, "
+"wird die Szene mit den Effekten der Rücksetzanimation (die Animation mit der "
+"Taste [code]\"RESET\"[/code]) so gespeichert, als ob sie zum Zeitpunkt 0 "
+"gesucht worden wäre, wobei der Editor die Werte behält, ignore-duplicate:die "
+"die Szene vor dem Speichern hatte.\n"
+"Das macht es bequemer, Animationen im Editor vorzuschauen und zu bearbeiten, "
+"da Änderungen an der Szene nicht gespeichert werden, solange sie in der "
+"Rücksetzanimation gesetzt sind."
+
+msgid "The node from which node path references will travel."
+msgstr "Das Node, von dem aus Nodepfadreferenzen erfolgen."
+
+msgid ""
+"Notifies when an animation finished playing.\n"
+"[b]Note:[/b] This signal is not emitted if an animation is looping."
+msgstr ""
+"Meldet, wenn eine Animation zu Ende gespielt wurde.\n"
+"[b]Hinweis:[/b] Dieses Signal wird nicht ausgegeben, wenn eine Animation in "
+"einer Schleife läuft."
+
+msgid "Notifies when an animation starts playing."
+msgstr "Benachrichtigt, wenn eine Animation abgespielt wird."
+
+msgid ""
+"Notifies when the caches have been cleared, either automatically, or manually "
+"via [method clear_caches]."
+msgstr ""
+"Benachrichtigt, wenn die Caches geleert wurden, entweder automatisch oder "
+"manuell über [method clear_caches]."
+
+msgid ""
+"Editor only. Notifies when the property have been updated to update dummy "
+"[AnimationPlayer] in animation player editor."
+msgstr ""
+"Nur Editor. Benachrichtigt, wenn die Eigenschaft aktualisiert wurde, um den "
+"Dummy [AnimationPlayer] im Animationsplayer-Editor zu aktualisieren."
+
+msgid ""
+"Do not process animation. Use [method advance] to process the animation "
+"manually."
+msgstr ""
+"Animation nicht bearbeiten. Verwenden Sie [method advance], um die Animation "
+"manuell zu bearbeiten."
+
+msgid ""
+"Batch method calls during the animation process, then do the calls after "
+"events are processed. This avoids bugs involving deleting nodes or modifying "
+"the AnimationPlayer while playing."
+msgstr ""
+"Stapeln Sie Methodenaufrufe während des Animationsprozesses und führen Sie "
+"die Aufrufe dann nach der Verarbeitung der Ereignisse aus. Dadurch werden "
+"Fehler beim Löschen von Nodes oder beim Ändern des AnimationPlayers während "
+"der Wiedergabe vermieden."
+
+msgid "Make method calls immediately when reached in the animation."
+msgstr "Methodenaufrufe sofort bei Erreichen in der Animation durchführen."
+
+msgid "Using AnimationTree"
+msgstr "Verwendung des AnimationTree"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"run some code when this animation node is processed. The [param time] "
+"parameter is a relative delta, unless [param seek] is [code]true[/code], in "
+"which case it is absolute.\n"
+"Here, call the [method blend_input], [method blend_node] or [method "
+"blend_animation] functions. You can also use [method get_parameter] and "
+"[method set_parameter] to modify local memory.\n"
+"This function should return the time left for the current animation to finish "
+"(if unsure, pass the value from the main blend being called)."
+msgstr ""
+"Wenn Sie von [AnimationRootNode] erben, implementieren Sie diese virtuelle "
+"Methode, um einen Code auszuführen, wenn dieser Animationsknoten (Node) "
+"verarbeitet wird. Der Parameter [param time] ist ein relatives Delta, es sei "
+"denn, [param seek] ist [code]true[/code], in diesem Fall ist es absolut.\n"
+"Rufen Sie hier die Funktionen [method blend_input], [method blend_node] oder "
+"[method blend_animation] auf. Sie können auch [method get_parameter] und "
+"[method set_parameter] verwenden, um den lokalen Speicher zu verändern.\n"
+"Diese Funktion sollte die verbleibende Zeit bis zur Beendigung der aktuellen "
+"Animation zurückgeben (wenn Sie unsicher sind, übergeben Sie den Wert aus der "
+"aufgerufenen Hauptmischung)."
+
+msgid ""
+"Adds an input to the animation node. This is only useful for animation nodes "
+"created for use in an [AnimationNodeBlendTree]. If the addition fails, "
+"returns [code]false[/code]."
+msgstr ""
+"Fügt dem Animationsknoten (Node) eine Eingabe hinzu. Dies ist nur für "
+"Animationsknoten (Node) nützlich, die zur Verwendung in einem "
+"[AnimationNodeBlendTree] erstellt wurden. Wenn das Hinzufügen fehlschlägt, "
+"wird [code]false[/code] zurückgegeben."
+
+msgid ""
+"Blend an animation by [param blend] amount (name must be valid in the linked "
+"[AnimationPlayer]). A [param time] and [param delta] may be passed, as well "
+"as whether [param seeked] happened.\n"
+"A [param looped_flag] is used by internal processing immediately after the "
+"loop. See also [enum Animation.LoopedFlag]."
+msgstr ""
+"Überblendet eine Animation um [param blend] Betrag (Name muss im verknüpften "
+"[AnimationPlayer] gültig sein). Ein [param time] und [param delta] können "
+"übergeben werden, ebenso wie die Angabe, ob [param seeked] passiert ist.\n"
+"Ein [param looped_flag] wird von der internen Verarbeitung unmittelbar nach "
+"der Schleife verwendet. Siehe auch [enum Animation.LoopedFlag]."
+
+msgid ""
+"Blend an input. This is only useful for animation nodes created for an "
+"[AnimationNodeBlendTree]. The [param time] parameter is a relative delta, "
+"unless [param seek] is [code]true[/code], in which case it is absolute. A "
+"filter mode may be optionally passed (see [enum FilterAction] for options)."
+msgstr ""
+"Eine Eingabe überblenden. Dies ist nur für Animationsknoten (Node) nützlich, "
+"die für einen [AnimationNodeBlendTree] erstellt wurden. Der Parameter [param "
+"time] ist ein relatives Delta, es sei denn, [param seek] ist [code]true[/"
+"code], in diesem Fall ist es absolut. Ein Filtermodus kann optional übergeben "
+"werden (siehe [enum FilterAction] für Optionen)."
+
+msgid ""
+"Returns the input index which corresponds to [param name]. If not found, "
+"returns [code]-1[/code]."
+msgstr ""
+"Gibt den Eingangsindex zurück, der [param name] entspricht. Wird er nicht "
+"gefunden, wird [code]-1[/code] zurückgegeben."
+
+msgid ""
+"Amount of inputs in this animation node, only useful for animation nodes that "
+"go into [AnimationNodeBlendTree]."
+msgstr ""
+"Anzahl der Eingaben in diesem Animationsknoten, nur nützlich für "
+"Animationsknoten, die in [AnimationNodeBlendTree] gehen."
+
+msgid "Gets the name of an input by index."
+msgstr "Ruft den Namen eines Eingangs nach Index ab."
+
+msgid "Returns whether the given path is filtered."
+msgstr "Gibt an, ob der angegebene Pfad gefiltert ist."
+
+msgid "Removes an input, call this only when inactive."
+msgstr "Entfernt einen Eingang, rufen Sie dies nur bei Inaktivität auf."
+
+msgid "Adds or removes a path for the filter."
+msgstr "Fügt einen Pfad für den Filter hinzu oder entfernt ihn."
+
+msgid ""
+"Sets the name of the input at the given [param input] index. If the setting "
+"fails, returns [code]false[/code]."
+msgstr ""
+"Setzt den Namen der Eingabe am angegebenen [param input]-Index. Schlägt die "
+"Einstellung fehl, wird [code]false[/code] zurückgegeben."
+
+msgid "If [code]true[/code], filtering is enabled."
+msgstr "Wenn [code]true[/code], ist die Filterung aktiviert."
+
+msgid "Do not use filtering."
+msgstr "Verwenden Sie keine Filterung."
+
+msgid "Paths matching the filter will be allowed to pass."
+msgstr "Pfade, die dem Filter entsprechen, werden durchgelassen."
+
+msgid "Paths matching the filter will be discarded."
+msgstr "Pfade, die dem Filter entsprechen, werden verworfen."
+
+msgid "Paths matching the filter will be blended (by the blend value)."
+msgstr ""
+"Pfade, die dem Filter entsprechen, werden überblendet (um den "
+"Überblendungswert)."
+
+msgid "Blends two animations additively inside of an [AnimationNodeBlendTree]."
+msgstr ""
+"Blendet zwei Animationen additiv innerhalb eines [AnimationNodeBlendTree] ein."
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"additively based on the amount value.\n"
+"If the amount is greater than [code]1.0[/code], the animation connected to "
+"\"in\" port is blended with the amplified animation connected to \"add\" "
+"port.\n"
+"If the amount is less than [code]0.0[/code], the animation connected to "
+"\"in\" port is blended with the inverted animation connected to \"add\" port."
+msgstr ""
+"Eine Ressource zum Hinzufügen zu einem [AnimationNodeBlendTree]. Mischt zwei "
+"Animationen additiv basierend auf dem Betragswert.\n"
+"Wenn der Betrag größer als [code]1.0[/code] ist, wird die Animation, die mit "
+"dem \"in\"-Port verbunden ist, mit der verstärkten Animation, die mit dem "
+"\"add\"-Port verbunden ist, gemischt.\n"
+"Wenn der Betrag kleiner als [code]0.0[/code] ist, wird die an den \"in\"-"
+"Anschluss angeschlossene Animation mit der an den \"add\"-Anschluss "
+"angeschlossenen invertierten Animation überlagert."
+
+msgid ""
+"Blends two of three animations additively inside of an "
+"[AnimationNodeBlendTree]."
+msgstr ""
+"Blendet zwei von drei Animationen additiv innerhalb eines "
+"[AnimationNodeBlendTree] ein."
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out "
+"of three additively out of three based on the amount value.\n"
+"This animation node has three inputs:\n"
+"- The base animation to add to\n"
+"- A \"-add\" animation to blend with when the blend amount is negative\n"
+"- A \"+add\" animation to blend with when the blend amount is positive\n"
+"If the absolute value of the amount is greater than [code]1.0[/code], the "
+"animation connected to \"in\" port is blended with the amplified animation "
+"connected to \"-add\"/\"+add\" port."
+msgstr ""
+"Eine Ressource zum Hinzufügen zu einem [AnimationNodeBlendTree]. Mischt zwei "
+"von drei Animationen additiv aus drei, basierend auf dem Betragswert.\n"
+"Dieser Animationsknoten hat drei Eingänge:\n"
+"- Die Basisanimation, zu der hinzugefügt werden soll\n"
+"- Eine \"-add\"-Animation, mit der gemischt werden soll, wenn der Mischwert "
+"negativ ist\n"
+"- Eine \"+Add\"-Animation, mit der überblendet wird, wenn der "
+"Überblendungswert positiv ist\n"
+"Wenn der absolute Wert des Betrags größer als [code]1.0[/code] ist, wird die "
+"Animation, die mit dem \"in\"-Port verbunden ist, mit der verstärkten "
+"Animation, die mit dem \"-add\"/\"+add\"-Port verbunden ist, überblendet."
+
+msgid "An input animation for an [AnimationNodeBlendTree]."
+msgstr "Eine Eingabeanimation für einen [AnimationNodeBlendTree]."
+
+msgid "3D Platformer Demo"
+msgstr "3D-Plattformer-Demo"
+
+msgid ""
+"Animation to use as an output. It is one of the animations provided by "
+"[member AnimationTree.anim_player]."
+msgstr ""
+"Animation, die als Ausgabe verwendet werden soll. Es ist eine der "
+"Animationen, die von [member AnimationTree.anim_player] bereitgestellt werden."
+
+msgid "Determines the playback direction of the animation."
+msgstr "Bestimmt die Abspielrichtung der Animation."
+
+msgid "Plays animation in forward direction."
+msgstr "Spielt die Animation in Vorwärtsrichtung ab."
+
+msgid "Plays animation in backward direction."
+msgstr "Spielt die Animation in Rückwärtsrichtung ab."
+
+msgid "Blends two animations linearly inside of an [AnimationNodeBlendTree]."
+msgstr ""
+"Blendet zwei Animationen linear innerhalb eines [AnimationNodeBlendTree] ein."
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"linearly based on the amount value.\n"
+"In general, the blend value should be in the [code][0.0, 1.0][/code] range. "
+"Values outside of this range can blend amplified or inverted animations, "
+"however, [AnimationNodeAdd2] works better for this purpose."
+msgstr ""
+"Eine Ressource zum Hinzufügen zu einem [AnimationNodeBlendTree]. Überblendet "
+"zwei Animationen linear basierend auf dem Betragswert.\n"
+"Im Allgemeinen sollte der Überblendungswert im Bereich [code][0.0, 1.0][/"
+"code] liegen. Werte außerhalb dieses Bereichs können verstärkte oder "
+"invertierte Animationen mischen, aber [AnimationNodeAdd2] funktioniert für "
+"diesen Zweck besser."
+
+msgid ""
+"Blends two of three animations linearly inside of an [AnimationNodeBlendTree]."
+msgstr ""
+"Blendet zwei von drei Animationen linear innerhalb eines "
+"[AnimationNodeBlendTree] ein."
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out "
+"of three linearly out of three based on the amount value.\n"
+"This animation node has three inputs:\n"
+"- The base animation to blend with\n"
+"- A \"-blend\" animation to blend with when the blend amount is negative "
+"value\n"
+"- A \"+blend\" animation to blend with when the blend amount is positive "
+"value\n"
+"In general, the blend value should be in the [code][-1.0, 1.0][/code] range. "
+"Values outside of this range can blend amplified animations, however, "
+"[AnimationNodeAdd3] works better for this purpose."
+msgstr ""
+"Eine Ressource zum Hinzufügen zu einem [AnimationNodeBlendTree]. Mischt zwei "
+"von drei Animationen linear aus drei, basierend auf dem Betragswert.\n"
+"Dieser Animationsknoten hat drei Eingänge:\n"
+"- Die Basisanimation, mit der gemischt werden soll\n"
+"- Eine \"-blend\"-Animation, mit der überblendet wird, wenn der "
+"Überblendungsbetrag einen negativen Wert hat\n"
+"- Eine \"+Blend\"-Animation, mit der überblendet werden soll, wenn der "
+"Überblendungswert positiv ist.\n"
+"Im Allgemeinen sollte der Überblendungswert im Bereich [code][-1.0, 1.0][/"
+"code] liegen. Werte, die außerhalb dieses Bereichs liegen, können verstärkte "
+"Animationen überblenden, allerdings funktioniert [AnimationNodeAdd3] für "
+"diesen Zweck besser."
+
+msgid ""
+"A set of [AnimationRootNode]s placed on a virtual axis, crossfading between "
+"the two adjacent ones. Used by [AnimationTree]."
+msgstr ""
+"Eine Gruppe von [AnimationRootNode]s, die auf einer virtuellen Achse "
+"platziert sind und zwischen zwei benachbarten Knoten (Node) überblenden. Wird "
+"von [AnimationTree] verwendet."
+
+msgid ""
+"A resource used by [AnimationNodeBlendTree].\n"
+"[AnimationNodeBlendSpace1D] represents a virtual axis on which any type of "
+"[AnimationRootNode]s can be added using [method add_blend_point]. Outputs the "
+"linear blend of the two [AnimationRootNode]s adjacent to the current value.\n"
+"You can set the extents of the axis with [member min_space] and [member "
+"max_space]."
+msgstr ""
+"Eine von [AnimationNodeBlendTree] verwendete Ressource.\n"
+"[AnimationNodeBlendSpace1D] stellt eine virtuelle Achse dar, auf der jede Art "
+"von [AnimationRootNode]s mit [method add_blend_point] hinzugefügt werden "
+"kann. Gibt die lineare Überblendung der beiden an den aktuellen Wert "
+"angrenzenden [AnimationRootNode]s aus.\n"
+"Sie können die Ausdehnung der Achse mit [member min_space] und [member "
+"max_space] festlegen."
+
+msgid "Returns the number of points on the blend axis."
+msgstr "Gibt die Anzahl der Punkte auf der Blend-Achse zurück."
+
+msgid "Returns the position of the point at index [param point]."
+msgstr "Gibt die Position des Punktes bei Index [param point] zurück."
+
+msgid ""
+"Controls the interpolation between animations. See [enum BlendMode] constants."
+msgstr ""
+"Steuert die Interpolation zwischen den Animationen. Siehe Konstanten [enum "
+"BlendMode]."
+
+msgid ""
+"The blend space's axis's upper limit for the points' position. See [method "
+"add_blend_point]."
+msgstr ""
+"Die obere Grenze der Achse des Blend Space für die Position der Punkte. Siehe "
+"[method add_blend_point]."
+
+msgid ""
+"The blend space's axis's lower limit for the points' position. See [method "
+"add_blend_point]."
+msgstr ""
+"Die untere Grenze der Achse des Blend Space für die Position der Punkte. "
+"Siehe [method add_blend_point]."
+
+msgid "Position increment to snap to when moving a point on the axis."
+msgstr ""
+"Positionsinkrement, auf das gefangen werden soll, wenn ein Punkt auf der "
+"Achse bewegt wird."
+
+msgid ""
+"If [code]false[/code], the blended animations' frame are stopped when the "
+"blend value is [code]0[/code].\n"
+"If [code]true[/code], forcing the blended animations to advance frame."
+msgstr ""
+"Wenn [code]false[/code], werden die überblendeten Animationen angehalten, "
+"wenn der Überblendungswert [code]0[/code] ist.\n"
+"Wenn [code]true[/code], werden die überblendeten Animationen gezwungen, sich "
+"zu bewegen."
+
+msgid "Label of the virtual axis of the blend space."
+msgstr "Beschriftung der virtuellen Achse des Mischraums."
+
+msgid "The interpolation between animations is linear."
+msgstr "Die Interpolation zwischen den Animationen ist linear."
+
+msgid ""
+"Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at "
+"the last animation's playback position."
+msgstr ""
+"Ähnlich wie [constant BLEND_MODE_DISCRETE], startet aber die neue Animation "
+"an der Abspielposition der letzten Animation."
+
+msgid ""
+"A set of [AnimationRootNode]s placed on 2D coordinates, crossfading between "
+"the three adjacent ones. Used by [AnimationTree]."
+msgstr ""
+"Eine Reihe von [AnimationRootNode]s, die auf 2D-Koordinaten platziert werden, "
+"wobei zwischen den drei benachbarten Knoten überblendet wird. Wird von "
+"[AnimationTree] verwendet."
+
+msgid "Returns the number of points in the blend space."
+msgstr "Gibt die Anzahl der Punkte im Überblendungsbereich zurück."
+
+msgid "Returns the number of triangles in the blend space."
+msgstr "Gibt die Anzahl der Dreiecke im Überblendungsbereich zurück."
+
+msgid ""
+"If [code]true[/code], the blend space is triangulated automatically. The mesh "
+"updates every time you add or remove points with [method add_blend_point] and "
+"[method remove_blend_point]."
+msgstr ""
+"Wenn [code]true[/code], wird der Überblendungsbereich automatisch "
+"trianguliert. Das Mesh wird jedes Mal aktualisiert, wenn Sie mit [method "
+"add_blend_point] und [method remove_blend_point] Punkte hinzufügen oder "
+"entfernen."
+
+msgid ""
+"The blend space's X and Y axes' upper limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+"Die obere Grenze der X- und Y-Achse des Blend Space für die Position der "
+"Punkte. Siehe [method add_blend_point]."
+
+msgid ""
+"The blend space's X and Y axes' lower limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+"Die untere Grenze der X- und Y-Achse des Blend Space für die Position der "
+"Punkte. Siehe [method add_blend_point]."
+
+msgid "Position increment to snap to when moving a point."
+msgstr ""
+"Positionsinkrement, auf das beim Verschieben eines Punktes zurückgesprungen "
+"wird."
+
+msgid "Name of the blend space's X axis."
+msgstr "Name der X-Achse des Überblendungsbereichs."
+
+msgid "Name of the blend space's Y axis."
+msgstr "Name der Y-Achse des Überblendungsbereichs."
+
+msgid ""
+"Emitted every time the blend space's triangles are created, removed, or when "
+"one of their vertices changes position."
+msgstr ""
+"Wird jedes Mal ausgegeben, wenn die Dreiecke des Überblendungsbereichs "
+"erstellt oder entfernt werden oder wenn einer ihrer Scheitelpunkte seine "
+"Position ändert."
+
+msgid ""
+"A sub-tree of many type [AnimationNode]s used for complex animations. Used by "
+"[AnimationTree]."
+msgstr ""
+"Ein Unterbaum von vielen [AnimationNode]s, der für komplexe Animationen "
+"verwendet wird. Wird von [AnimationTree] verwendet."
+
+msgid ""
+"This animation node may contain a sub-tree of any other type animation nodes, "
+"such as [AnimationNodeTransition], [AnimationNodeBlend2], "
+"[AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most "
+"commonly used animation node roots.\n"
+"An [AnimationNodeOutput] node named [code]output[/code] is created by default."
+msgstr ""
+"Dieser Animationsknoten (Node) kann einen Unterbaum beliebiger anderer "
+"Animationsknoten (Node) enthalten, z. B. [AnimationNodeTransition], "
+"[AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], usw. "
+"Dies ist eine der am häufigsten verwendeten Animationsknotenwurzeln.\n"
+"Ein [AnimationNodeOutput]-Knoten (Node) mit dem Namen [code]output[/code] "
+"wird standardmäßig erstellt."
+
+msgid ""
+"Returns [code]true[/code] if a sub animation node with specified [param name] "
+"exists."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Unteranimationsknoten (Node) mit dem "
+"angegebenen [param name] existiert."
+
+msgid "The connection was successful."
+msgstr "Die Verbindung war erfolgreich."
+
+msgid "The input node is [code]null[/code]."
+msgstr "Das Eingangsnode ist [code]null[/code]."
+
+msgid "The specified input port is out of range."
+msgstr "Der angegebene Eingangsschnittstelle liegt außerhalb des Bereichs."
+
+msgid "The output node is [code]null[/code]."
+msgstr "Die Ausgangsnode ist [code]null[/code]."
+
+msgid "Input and output nodes are the same."
+msgstr "Eingangs- und Ausgangsnodes sind identisch."
+
+msgid "The specified connection already exists."
+msgstr "Die angegebene Verbindung existiert bereits."
+
+msgid ""
+"If [code]true[/code], the sub-animation will restart automatically after "
+"finishing.\n"
+"In other words, to start auto restarting, the animation must be played once "
+"with the [constant ONE_SHOT_REQUEST_FIRE] request. The [constant "
+"ONE_SHOT_REQUEST_ABORT] request stops the auto restarting, but it does not "
+"disable the [member autorestart] itself. So, the [constant "
+"ONE_SHOT_REQUEST_FIRE] request will start auto restarting again."
+msgstr ""
+"Wenn [code]true[/code], wird die Sub-Animation nach Beendigung automatisch "
+"neu gestartet.\n"
+"Mit anderen Worten: Um den automatischen Neustart zu starten, muss die "
+"Animation einmal mit der [Konstante ONE_SHOT_REQUEST_FIRE]-Aufforderung "
+"abgespielt werden. Die [constant ONE_SHOT_REQUEST_ABORT]-Aufforderung stoppt "
+"den automatischen Neustart, deaktiviert aber nicht den [member autorestart] "
+"selbst. Die [Konstante ONE_SHOT_REQUEST_FIRE]-Aufforderung startet also den "
+"automatischen Neustart erneut."
+
+msgid "The delay after which the automatic restart is triggered, in seconds."
+msgstr ""
+"Die Verzögerung, nach welcher der automatische Neustart ausgelöst wird, in "
+"Sekunden."
+
+msgid ""
+"If [member autorestart] is [code]true[/code], a random additional delay (in "
+"seconds) between 0 and this value will be added to [member autorestart_delay]."
+msgstr ""
+"Wenn [member autorestart] [code]true[/code] ist, wird eine zufällige "
+"zusätzliche Verzögerung (in Sekunden) zwischen 0 und diesem Wert zu [member "
+"autorestart_delay] hinzugefügt."
+
+msgid ""
+"Determines how cross-fading between animations is eased. If empty, the "
+"transition will be linear."
+msgstr ""
+"Legt fest, wie die Überblendung zwischen Animationen abgeschwächt wird. Wenn "
+"leer, wird der Übergang linear sein."
+
+msgid ""
+"The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 "
+"second length animation will produce a cross-fade that starts at 0 second and "
+"ends at 1 second during the animation."
+msgstr ""
+"Die Einblendungsdauer. Wenn Sie diesen Wert beispielsweise auf [code]1.0[/"
+"code] für eine 5 Sekunden lange Animation setzen, wird eine Überblendung "
+"erzeugt, die bei 0 Sekunden beginnt und bei 1 Sekunde während der Animation "
+"endet."
+
+msgid ""
+"The fade-out duration. For example, setting this to [code]1.0[/code] for a 5 "
+"second length animation will produce a cross-fade that starts at 4 second and "
+"ends at 5 second during the animation."
+msgstr ""
+"Die Dauer der Ausblendung. Wenn Sie diesen Wert beispielsweise auf [code]1.0[/"
+"code] für eine 5 Sekunden lange Animation setzen, beginnt die Überblendung "
+"bei 4 Sekunden und endet bei 5 Sekunden während der Animation."
+
+msgid "The request to play the animation connected to \"shot\" port."
+msgstr ""
+"Die Anforderung, die Animation abzuspielen, ist mit dem Anschluss \"shot\" "
+"verbunden."
+
+msgid "The request to stop the animation connected to \"shot\" port."
+msgstr ""
+"Die Anforderung, die Animation zu stoppen, ist mit dem Anschluss \"shot\" "
+"verbunden."
+
+msgid "The request to fade out the animation connected to \"shot\" port."
+msgstr ""
+"Die Anforderung, die Animation auszublenden, ist mit dem Anschluss \"shot\" "
+"verbunden."
+
+msgid ""
+"A node created automatically in an [AnimationNodeBlendTree] that outputs the "
+"final animation."
+msgstr ""
+"Ein automatisch erstellter Knoten (Node) in einem [AnimationNodeBlendTree], "
+"der die endgültige Animation ausgibt."
+
+msgid ""
+"Contains multiple [AnimationRootNode]s representing animation states, "
+"connected in a graph. State transitions can be configured to happen "
+"automatically or via code, using a shortest-path algorithm. Retrieve the "
+"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to "
+"control it programmatically.\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\") as AnimationNodeStateMachinePlayback;\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Enthält mehrere [AnimationRootNode]s, die Animationszustände darstellen und "
+"in einem Graphen verbunden sind. Die Zustandsübergänge können so konfiguriert "
+"werden, dass sie automatisch oder über Code unter Verwendung eines "
+"Algorithmus mit dem kürzesten Weg erfolgen. Rufen Sie das Objekt "
+"[AnimationNodeStateMachinePlayback] vom [AnimationTree]-Knoten ab, um es "
+"programmatisch zu steuern.\n"
+"[b]Beispiel:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\") as AnimationNodeStateMachinePlayback;\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Returns the draw offset of the graph. Used for display in the editor."
+msgstr ""
+"Gibt den Versatz des Graphen zurück. Wird zur Darstellung im Editor genutzt."
+
+msgid "Returns the animation node with the given name."
+msgstr "Gibt das AnimationNode mit dem gegebenen Namen zurück."
+
+msgid "Returns the given animation node's name."
+msgstr "Gibt den Namen des übergebenen AnimationNode zurück."
+
+msgid "Returns the given transition."
+msgstr "Gibt den gegebenen Übergang zurück."
+
+msgid "Returns the number of connections in the graph."
+msgstr "Gibt die Anzahl der Verbindungen im Graphen zurück."
+
+msgid "Deletes the given transition by index."
+msgstr "Löscht den Übergang mit dem übergebenen Index."
+
+msgid "Sets the draw offset of the graph. Used for display in the editor."
+msgstr ""
+"Legt den Versatz des Graphen fest. Wird zur Darstellung im Editor genutzt."
+
+msgid ""
+"If [code]true[/code], allows teleport to the self state with [method "
+"AnimationNodeStateMachinePlayback.travel]. When the reset option is enabled "
+"in [method AnimationNodeStateMachinePlayback.travel], the animation is "
+"restarted. If [code]false[/code], nothing happens on the teleportation to the "
+"self state."
+msgstr ""
+"Wenn [code]true[/code], kann mit [method AnimationNodeStateMachinePlayback."
+"travel] in den Eigenzustand teleportiert werden. Wenn die Reset-Option in "
+"[method AnimationNodeStateMachinePlayback.travel] aktiviert ist, wird die "
+"Animation neu gestartet. Wenn [code]false[/code], passiert bei der "
+"Teleportation in den Eigenzustand nichts."
+
+msgid ""
+"If [code]true[/code], treat the cross-fade to the start and end nodes as a "
+"blend with the RESET animation.\n"
+"In most cases, when additional cross-fades are performed in the parent "
+"[AnimationNode] of the state machine, setting this property to [code]false[/"
+"code] and matching the cross-fade time of the parent [AnimationNode] and the "
+"state machine's start node and end node gives good results."
+msgstr ""
+"Wenn [code]true[/code], wird die Überblendung zum Start- und Endknoten als "
+"Überblendung mit der RESET-Animation behandelt.\n"
+"In den meisten Fällen, wenn zusätzliche Überblendungen im übergeordneten "
+"[AnimationNode] des Zustandsautomaten durchgeführt werden, führt die "
+"Einstellung dieser Eigenschaft auf [code]false[/code] und die Anpassung der "
+"Überblendungszeit des übergeordneten [AnimationNode] und des Start- und "
+"Endknotens des Zustandsautomaten zu guten Ergebnissen."
+
+msgid ""
+"This property can define the process of transitions for different use cases. "
+"See also [enum AnimationNodeStateMachine.StateMachineType]."
+msgstr ""
+"Diese Eigenschaft kann den Ablauf von Übergängen für verschiedene "
+"Anwendungsfälle definieren. Siehe auch [enum AnimationNodeStateMachine."
+"StateMachineType]."
+
+msgid ""
+"Seeking to the beginning is treated as playing from the start state. "
+"Transition to the end state is treated as exiting the state machine."
+msgstr ""
+"Die Suche nach dem Anfang wird als Abspielen vom Startzustand aus behandelt. "
+"Der Übergang zum Endzustand wird als Verlassen des Zustandsautomaten "
+"behandelt."
+
+msgid ""
+"Seeking to the beginning is treated as seeking to the beginning of the "
+"animation in the current state. Transition to the end state, or the absence "
+"of transitions in each state, is treated as exiting the state machine."
+msgstr ""
+"Die Suche nach dem Anfang wird als Suche nach dem Anfang der Animation im "
+"aktuellen Zustand behandelt. Der Übergang zum Endzustand bzw. das Fehlen von "
+"Übergängen in jedem Zustand wird als Verlassen des Zustandsautomaten "
+"behandelt."
+
+msgid ""
+"This is a grouped state machine that can be controlled from a parent state "
+"machine. It does not work on standalone. There must be a state machine with "
+"[member state_machine_type] of [constant STATE_MACHINE_TYPE_ROOT] or "
+"[constant STATE_MACHINE_TYPE_NESTED] in the parent or ancestor."
+msgstr ""
+"Dies ist ein gruppierter Zustandsautomat, der von einem übergeordneten "
+"Zustandsautomaten gesteuert werden kann. Er funktioniert nicht im Standalone-"
+"Betrieb. Es muss ein Zustandsautomat mit [member state_machine_type] der "
+"[Konstante STATE_MACHINE_TYPE_ROOT] oder [Konstante "
+"STATE_MACHINE_TYPE_NESTED] im Eltern- oder Vorgängerprozess vorhanden sein."
+
+msgid ""
+"Allows control of [AnimationTree] state machines created with "
+"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree."
+"get(\"parameters/playback\")[/code].\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\").As();\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Ermöglicht die Kontrolle von [AnimationTree]-Zustandsmaschinen, die mit "
+"[AnimationNodeStateMachine] erstellt wurden. Abrufbar mit "
+"[code]$AnimationTree.get(\"parameters/playback\")[/code].\n"
+"[b]Beispiel:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\").As();\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the current state length.\n"
+"[b]Note:[/b] It is possible that any [AnimationRootNode] can be nodes as well "
+"as animations. This means that there can be multiple animations within a "
+"single state. Which animation length has priority depends on the nodes "
+"connected inside it. Also, if a transition does not reset, the remaining "
+"length at that point will be returned."
+msgstr ""
+"Gibt die aktuelle Zustandslänge zurück.\n"
+"[b]Hinweis:[/b] Es ist möglich, dass jeder [AnimationRootNode] sowohl Knoten "
+"(Node) als auch Animationen sein kann. Das bedeutet, dass es mehrere "
+"Animationen innerhalb eines einzigen Zustands geben kann. Welche "
+"Animationslänge Priorität hat, hängt von den darin verbundenen Knoten (Node) "
+"ab. Außerdem wird, wenn ein Übergang nicht zurückgesetzt wird, die "
+"verbleibende Länge an diesem Punkt zurückgegeben."
+
+msgid ""
+"Returns the currently playing animation state.\n"
+"[b]Note:[/b] When using a cross-fade, the current state changes to the next "
+"state immediately after the cross-fade begins."
+msgstr ""
+"Gibt den aktuellen Zustand der Animation zurück.\n"
+"[b]Hinweis:[/b] Bei einer Überblendung wechselt der aktuelle Zustand "
+"unmittelbar nach Beginn der Überblendung in den nächsten Zustand."
+
+msgid ""
+"Returns the current travel path as computed internally by the A* algorithm."
+msgstr ""
+"Gibt den aktuellen Reisepfad zurück, der intern vom A*-Algorithmus berechnet "
+"wurde."
+
+msgid "Returns [code]true[/code] if an animation is playing."
+msgstr "Gibt [code]true[/code] zurück, wenn eine Animation abgespielt wird."
+
+msgid ""
+"Starts playing the given animation.\n"
+"If [param reset] is [code]true[/code], the animation is played from the "
+"beginning."
+msgstr ""
+"Startet die Wiedergabe der angegebenen Animation.\n"
+"Wenn [param reset] [code]true[/code] ist, wird die Animation von Anfang an "
+"abgespielt."
+
+msgid "Stops the currently playing animation."
+msgstr "Hält die aktuell laufende Animation an."
+
+msgid ""
+"Transitions from the current state to another one, following the shortest "
+"path.\n"
+"If the path does not connect from the current state, the animation will play "
+"after the state teleports.\n"
+"If [param reset_on_teleport] is [code]true[/code], the animation is played "
+"from the beginning when the travel cause a teleportation."
+msgstr ""
+"Geht vom aktuellen Zustand in einen anderen über und folgt dabei dem "
+"kürzesten Weg.\n"
+"Wenn der Pfad keine Verbindung zum aktuellen Zustand herstellt, wird die "
+"Animation abgespielt, nachdem der Zustand teleportiert wurde.\n"
+"Wenn [param reset_on_teleport] [code]true[/code] ist, wird die Animation von "
+"Anfang an abgespielt, wenn die Reise eine Teleportation verursacht."
+
+msgid ""
+"A transition within an [AnimationNodeStateMachine] connecting two "
+"[AnimationRootNode]s."
+msgstr ""
+"Ein Übergang innerhalb einer [AnimationNodeStateMachine], der zwei "
+"[AnimationRootNode]s verbindet."
+
+msgid ""
+"The path generated when using [method AnimationNodeStateMachinePlayback."
+"travel] is limited to the nodes connected by "
+"[AnimationNodeStateMachineTransition].\n"
+"You can set the timing and conditions of the transition in detail."
+msgstr ""
+"Der Pfad, der bei Verwendung der [Methode AnimationNodeStateMachinePlayback."
+"travel] erzeugt wird, ist auf die durch [AnimationNodeStateMachineTransition] "
+"verbundenen Knoten beschränkt.\n"
+"Sie können den Zeitpunkt und die Bedingungen für den Übergang im Detail "
+"festlegen."
+
+msgid ""
+"Turn on auto advance when this condition is set. The provided name will "
+"become a boolean parameter on the [AnimationTree] that can be controlled from "
+"code (see [url=$DOCS_URL/tutorials/animation/animation_tree.html#controlling-"
+"from-code]Using AnimationTree[/url]). For example, if [member AnimationTree."
+"tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] "
+"is set to [code]\"idle\"[/code]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"$animation_tree.set(\"parameters/conditions/idle\", is_on_floor and "
+"(linear_velocity.x == 0))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetNode(\"animation_tree\").Set(\"parameters/conditions/"
+"idle\", IsOnFloor && (LinearVelocity.X == 0));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Schaltet die automatische Weiterschaltung ein, wenn diese Bedingung erfüllt "
+"ist. Der angegebene Name wird zu einem booleschen Parameter des "
+"[AnimationTree], der über Code gesteuert werden kann (siehe [url=$DOCS_URL/"
+"tutorials/animation/animation_tree.html#controlling-from-code]Using "
+"AnimationTree[/url]). Zum Beispiel, wenn [member AnimationTree.tree_root] "
+"eine [AnimationNodeStateMachine] ist und [member advance_condition] auf "
+"[code]\"idle\"[/code] gesetzt ist:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"$animation_tree.set(\"parameters/conditions/idle\", is_on_floor and "
+"(linear_velocity.x == 0))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetNode(\"animation_tree\").Set(\"parameters/conditions/"
+"idle\", IsOnFloor && (LinearVelocity.X == 0));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Use an expression as a condition for state machine transitions. It is "
+"possible to create complex animation advance conditions for switching between "
+"states and gives much greater flexibility for creating complex state machines "
+"by directly interfacing with the script code."
+msgstr ""
+"Verwenden Sie einen Ausdruck als Bedingung für Zustandsautomatenübergänge. Es "
+"ist möglich, komplexe Animationsvorausbedingungen für den Wechsel zwischen "
+"Zuständen zu erstellen, und bietet eine viel größere Flexibilität für die "
+"Erstellung komplexer Zustandsautomaten durch eine direkte Schnittstelle mit "
+"dem Skriptcode."
+
+msgid ""
+"Determines whether the transition should disabled, enabled when using [method "
+"AnimationNodeStateMachinePlayback.travel], or traversed automatically if the "
+"[member advance_condition] and [member advance_expression] checks are true "
+"(if assigned)."
+msgstr ""
+"Legt fest, ob der Übergang deaktiviert, bei Verwendung der [Methode "
+"AnimationNodeStateMachinePlayback.travel] aktiviert oder automatisch "
+"durchlaufen werden soll, wenn die Prüfungen [member advance_condition] und "
+"[member advance_expression] wahr sind (falls zugewiesen)."
+
+msgid "The transition type."
+msgstr "Der Übergangstyp."
+
+msgid "The time to cross-fade between this state and the next."
+msgstr "Die Überblendzeit zwischen diesem Zustand und dem nächsten."
+
+msgid "Emitted when [member advance_condition] is changed."
+msgstr "Ausgesendet wenn [member advance_condition] verändert wird."
+
+msgid ""
+"Switch to the next state immediately. The current state will end and blend "
+"into the beginning of the new one."
+msgstr ""
+"Wechsle unmittelbar in den nächsten Zustand. Der aktuelle Zustand wird "
+"beendet und geht in den Anfang des neuen über."
+
+msgid ""
+"Switch to the next state immediately, but will seek the new state to the "
+"playback position of the old state."
+msgstr ""
+"Wechselt sofort in den nächsten Zustand, sucht aber den neuen Zustand an der "
+"Abspielposition des alten Zustands."
+
+msgid ""
+"Wait for the current state playback to end, then switch to the beginning of "
+"the next state animation."
+msgstr ""
+"Wartet, bis die Wiedergabe des aktuellen Zustands beendet ist, und schaltet "
+"dann zum Beginn der nächsten Zustandsanimation um."
+
+msgid ""
+"Automatically use this transition if the [member advance_condition] and "
+"[member advance_expression] checks are true (if assigned)."
+msgstr ""
+"Verwenden Sie diesen Übergang automatisch, wenn die Prüfungen [member "
+"advance_condition] und [member advance_expression] wahr sind (falls "
+"zugewiesen)."
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"subtractively based on the amount value.\n"
+"This animation node is usually used for pre-calculation to cancel out any "
+"extra poses from the animation for the \"add\" animation source in "
+"[AnimationNodeAdd2] or [AnimationNodeAdd3].\n"
+"In general, the blend value should be in the [code][0.0, 1.0][/code] range, "
+"but values outside of this range can be used for amplified or inverted "
+"animations.\n"
+"[b]Note:[/b] This calculation is different from using a negative value in "
+"[AnimationNodeAdd2], since the transformation matrices do not satisfy the "
+"commutative law. [AnimationNodeSub2] multiplies the transformation matrix of "
+"the inverted animation from the left side, while negative [AnimationNodeAdd2] "
+"multiplies it from the right side."
+msgstr ""
+"Eine Ressource zum Hinzufügen zu einem [AnimationNodeBlendTree]. Mischt zwei "
+"Animationen subtraktiv basierend auf dem Betragswert.\n"
+"Dieser Animationsknoten wird normalerweise für die Vorberechnung verwendet, "
+"um alle zusätzlichen Posen aus der Animation für die \"Hinzufügen\"-"
+"Animationsquelle in [AnimationNodeAdd2] oder [AnimationNodeAdd3] "
+"auszugleichen.\n"
+"Im Allgemeinen sollte der Überblendungswert im Bereich [code][0.0, 1.0][/"
+"code] liegen, aber Werte außerhalb dieses Bereichs können für verstärkte oder "
+"invertierte Animationen verwendet werden.\n"
+"[b]Hinweis:[/b] Diese Berechnung unterscheidet sich von der Verwendung eines "
+"negativen Wertes in [AnimationNodeAdd2], da die Transformationsmatrizen nicht "
+"dem Kommutativgesetz entsprechen. [AnimationNodeSub2] multipliziert die "
+"Transformationsmatrix der invertierten Animation von der linken Seite, "
+"während ein negativer Wert in [AnimationNodeAdd2] sie von der rechten Seite "
+"multipliziert."
+
+msgid "AnimationTree"
+msgstr "AnimationTree"
+
+msgid ""
+"Base class for [AnimationNode]s with more than two input ports that must be "
+"synchronized."
+msgstr ""
+"Basisklasse für [AnimationNode]s mit mehr als zwei Eingangsports, die "
+"synchronisiert werden müssen."
+
+msgid ""
+"An animation node used to combine, mix, or blend two or more animations "
+"together while keeping them synchronized within an [AnimationTree]."
+msgstr ""
+"Ein Animationsknoten, der verwendet wird, um zwei oder mehr Animationen "
+"miteinander zu kombinieren, zu mischen oder zu überblenden, während sie "
+"innerhalb eines [AnimationTree] synchronisiert bleiben."
+
+msgid ""
+"Allows to scale the speed of the animation (or reverse it) in any children "
+"[AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation."
+msgstr ""
+"Ermöglicht es, die Geschwindigkeit der Animation in allen untergeordneten "
+"[AnimationNode]s zu skalieren (oder umzukehren). Die Einstellung auf "
+"[code]0.0[/code] hält die Animation an."
+
+msgid ""
+"This animation node can be used to cause a seek command to happen to any sub-"
+"children of the animation graph. Use to play an [Animation] from the start or "
+"a certain playback position inside the [AnimationNodeBlendTree].\n"
+"After setting the time and changing the animation playback, the time seek "
+"node automatically goes into sleep mode on the next process frame by setting "
+"its [code]seek_request[/code] value to [code]-1.0[/code].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Play child animation from the start.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n"
+"\n"
+"# Play child animation from 12 second timestamp.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Play child animation from the start.\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n"
+"\n"
+"// Play child animation from 12 second timestamp.\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Dieser Animationsknoten kann verwendet werden, um einen Suchbefehl für alle "
+"Unterkinder des Animationsgraphen auszuführen. Verwenden Sie ihn, um eine "
+"[Animation] ab dem Start oder einer bestimmten Abspielposition innerhalb des "
+"[AnimationNodeBlendTree] abzuspielen.\n"
+"Nach dem Einstellen der Zeit und dem Ändern der Animationswiedergabe geht der "
+"Zeitsuchknoten beim nächsten Prozessbild automatisch in den Schlafmodus, "
+"indem sein [code]seek_request[/code] Wert auf [code]-1.0[/code] gesetzt "
+"wird.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Spielt die Child-Animation von Anfang an.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n"
+"# Alternative Syntax (gleiches Ergebnis wie oben).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n"
+"\n"
+"# Spielt die Child-Animation ab dem \"12 second\" Zeitstempel.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Alternative Syntax (gleiches Ergebnis wie oben).\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n"
+"\n"
+"// Spielt die Child-Animation ab dem \"12 second\" Zeitstempel.\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Simple state machine for cases which don't require a more advanced "
+"[AnimationNodeStateMachine]. Animations can be connected to the inputs and "
+"transition times can be specified.\n"
+"After setting the request and changing the animation playback, the transition "
+"node automatically clears the request on the next process frame by setting "
+"its [code]transition_request[/code] value to empty.\n"
+"[b]Note:[/b] When using a cross-fade, [code]current_state[/code] and "
+"[code]current_index[/code] change to the next state immediately after the "
+"cross-fade begins.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Play child animation connected to \"state_2\" port.\n"
+"animation_tree.set(\"parameters/Transition/transition_request\", "
+"\"state_2\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n"
+"\n"
+"# Get current state name (read-only).\n"
+"animation_tree.get(\"parameters/Transition/current_state\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/current_state\"]\n"
+"\n"
+"# Get current state index (read-only).\n"
+"animation_tree.get(\"parameters/Transition/current_index\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/current_index\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Play child animation connected to \"state_2\" port.\n"
+"animationTree.Set(\"parameters/Transition/transition_request\", "
+"\"state_2\");\n"
+"\n"
+"// Get current state name (read-only).\n"
+"animationTree.Get(\"parameters/Transition/current_state\");\n"
+"\n"
+"// Get current state index (read-only).\n"
+"animationTree.Get(\"parameters/Transition/current_index\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Einfacher Zustandsautomat für Fälle, die keinen fortgeschrittenen "
+"[AnimationNodeStateMachine] erfordern. Animationen können mit den Eingängen "
+"verbunden werden und es können Übergangszeiten angegeben werden.\n"
+"Nach dem Setzen der Anforderung und der Änderung der Animationswiedergabe "
+"löscht der Übergangsknoten die Anforderung automatisch beim nächsten "
+"Prozessbild, indem er seinen [code]transition_request[/code]-Wert auf leer "
+"setzt.\n"
+"[b]Hinweis:[/b] Bei einer Überblendung wechseln [code]current_state[/code] "
+"und [code]current_index[/code] sofort nach Beginn der Überblendung in den "
+"nächsten Zustand.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Abspielen der Child-Animation, die mit dem Anschluss \"state_2\" verbunden "
+"ist.\n"
+"animation_tree.set(\"parameters/Transition/transition_request\", "
+"\"state_2\")\n"
+"# Alternative Syntax (gleiches Ergebnis wie oben).\n"
+"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n"
+"\n"
+"# Ermittelt den Namen des aktuellen Zustands (nur Lesezugriff).\n"
+"animation_tree.get(\"parameters/Transition/current_state\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/current_state\"]\n"
+"\n"
+"# Abfrage des aktuellen Zustandsindex (nur Lesezugriff).\n"
+"animation_tree.get(\"parameters/Transition/current_index\")\n"
+"# Alternative Syntax (gleiches Ergebnis wie oben).\n"
+"animation_tree[\"parameters/Transition/current_index\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Abspielen der Child-Animation, die mit dem Anschluss \"state_2\" verbunden "
+"ist.\n"
+"animationTree.Set(\"parameters/Transition/transition_request\", "
+"\"state_2\");\n"
+"\n"
+"// Ermittelt den Namen des aktuellen Zustands (nur Lesezugriff).\n"
+"animationTree.Get(\"parameters/Transition/current_state\");\n"
+"\n"
+"// Abfrage des aktuellen Zustandsindex (nur Lesezugriff).\n"
+"animationTree.Get(\"parameters/Transition/current_index\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Enables or disables auto-advance for the given [param input] index. If "
+"enabled, state changes to the next input after playing the animation once. If "
+"enabled for the last input state, it loops to the first."
+msgstr ""
+"Aktiviert oder deaktiviert die automatische Weiterschaltung für den "
+"angegebenen [param input]-Index. Wenn aktiviert, wechselt der Zustand zum "
+"nächsten Eingang, nachdem die Animation einmal abgespielt wurde. Wenn für den "
+"letzten Eingangszustand aktiviert, wird zum ersten geschaltet."
+
+msgid ""
+"If [code]true[/code], allows transition to the self state. When the reset "
+"option is enabled in input, the animation is restarted. If [code]false[/"
+"code], nothing happens on the transition to the self state."
+msgstr ""
+"Wenn [code]true[/code], ermöglicht den Übergang in den Eigenzustand. Wenn die "
+"Reset-Option in der Eingabe aktiviert ist, wird die Animation neu gestartet. "
+"Wenn [code]false[/code], passiert beim Übergang in den Eigenzustand nichts."
+
+msgid ""
+"Cross-fading time (in seconds) between each animation connected to the inputs."
+msgstr ""
+"Überblendzeit (in Sekunden) zwischen jeder an den Eingängen angeschlossenen "
+"Animation."
+
+msgid "A node used for animation playback."
+msgstr ""
+"Ein Knoten (Node), der für die Wiedergabe von Animationen verwendet wird."
+
+msgid ""
+"An animation player is used for general-purpose playback of animations. It "
+"contains a dictionary of [AnimationLibrary] resources and custom blend times "
+"between animation transitions.\n"
+"Some methods and properties use a single key to reference an animation "
+"directly. These keys are formatted as the key for the library, followed by a "
+"forward slash, then the key for the animation within the library, for example "
+"[code]\"movement/run\"[/code]. If the library's key is an empty string (known "
+"as the default library), the forward slash is omitted, being the same key "
+"used by the library.\n"
+"[AnimationPlayer] is better-suited than [Tween] for more complex animations, "
+"for example ones with non-trivial timings. It can also be used over [Tween] "
+"if the animation track editor is more convenient than doing it in code.\n"
+"Updating the target properties of animations occurs at the process frame."
+msgstr ""
+"Ein Animationsplayer wird für die allgemeine Wiedergabe von Animationen "
+"verwendet. Er enthält ein Wörterbuch von [AnimationLibrary]-Ressourcen und "
+"benutzerdefinierte Überblendzeiten zwischen Animationsübergängen.\n"
+"Einige Methoden und Eigenschaften verwenden einen einzigen Schlüssel, um "
+"direkt auf eine Animation zu verweisen. Diese Schlüssel werden als Schlüssel "
+"für die Bibliothek formatiert, gefolgt von einem Schrägstrich, dann der "
+"Schlüssel für die Animation innerhalb der Bibliothek, zum Beispiel "
+"[code]\"movement/run\"[/code]. Wenn der Schlüssel der Bibliothek eine leere "
+"Zeichenkette ist (bekannt als die Standardbibliothek), wird der Schrägstrich "
+"weggelassen, da es sich um denselben Schlüssel handelt, der von der "
+"Bibliothek verwendet wird.\n"
+"[AnimationPlayer] eignet sich besser als [Tween] für komplexere Animationen, "
+"z. B. solche mit nicht-trivialen Zeitabläufen. Er kann auch anstelle von "
+"[Tween] verwendet werden, wenn der Editor für Animationsspuren bequemer ist "
+"als die Eingabe im Code.\n"
+"Das Aktualisieren der Zieleigenschaften von Animationen erfolgt im "
+"Prozessframe."
+
+msgid "Clears all queued, unplayed animations."
+msgstr ""
+"Löscht alle in der Warteschlange stehenden, nicht abgespielten Animationen."
+
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeMethod]."
+msgstr ""
+"Aus Gründen der Abwärtskompatibilität. Siehe [enum AnimationMixer."
+"AnimationCallbackModeMethod]."
+
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeProcess]."
+msgstr ""
+"Aus Gründen der Abwärtskompatibilität. Siehe [enum AnimationMixer."
+"AnimationCallbackModeProcess]."
+
+msgid "For backward compatibility. See [member AnimationMixer.root_node]."
+msgstr ""
+"Aus Gründen der Abwärtskompatibilität. Siehe [Mitglied AnimationMixer."
+"root_node]."
+
+msgid ""
+"Plays the animation with key [param name]. Custom blend times and speed can "
+"be set.\n"
+"The [param from_end] option only affects when switching to a new animation "
+"track, or if the same track but at the start or end. It does not affect "
+"resuming playback that was paused in the middle of an animation. If [param "
+"custom_speed] is negative and [param from_end] is [code]true[/code], the "
+"animation will play backwards (which is equivalent to calling [method "
+"play_backwards]).\n"
+"The [AnimationPlayer] keeps track of its current or last played animation "
+"with [member assigned_animation]. If this method is called with that same "
+"animation [param name], or with no [param name] parameter, the assigned "
+"animation will resume playing if it was paused.\n"
+"[b]Note:[/b] The animation will be updated the next time the "
+"[AnimationPlayer] is processed. If other variables are updated at the same "
+"time this is called, they may be updated too early. To perform the update "
+"immediately, call [code]advance(0)[/code]."
+msgstr ""
+"Spielt die Animation mit der Taste [param name] ab. Benutzerdefinierte "
+"Überblendzeiten und Geschwindigkeit können eingestellt werden.\n"
+"Die Option [param from_end] wirkt sich nur aus, wenn zu einer neuen "
+"Animationsspur gewechselt wird, oder wenn die gleiche Spur am Anfang oder "
+"Ende steht. Sie wirkt sich nicht auf die Wiederaufnahme der Wiedergabe aus, "
+"die in der Mitte einer Animation angehalten wurde. Wenn [param custom_speed] "
+"negativ ist und [param from_end] [code]true[/code] ist, wird die Animation "
+"rückwärts abgespielt (was dem Aufruf der [method play_backwards] "
+"entspricht).\n"
+"Der [AnimationPlayer] behält seine aktuelle oder zuletzt gespielte Animation "
+"mit [member assigned_animation] im Auge. Wenn diese Methode mit der gleichen "
+"Animation [param name] oder ohne [param name]-Parameter aufgerufen wird, wird "
+"die zugewiesene Animation wieder abgespielt, wenn sie pausiert wurde.\n"
+"[b]Hinweis:[/b] Die Animation wird aktualisiert, wenn der [AnimationPlayer] "
+"das nächste Mal verarbeitet wird. Wenn andere Variablen zur gleichen Zeit wie "
+"dieser Aufruf aktualisiert werden, werden sie möglicherweise zu früh "
+"aktualisiert. Um die Aktualisierung sofort durchzuführen, rufen Sie "
+"[code]advance(0)[/code] auf."
+
+msgid ""
+"Queues an animation for playback once the current one is done.\n"
+"[b]Note:[/b] If a looped animation is currently playing, the queued animation "
+"will never play unless the looped animation is stopped somehow."
+msgstr ""
+"Stellt eine Animation in die Warteschlange, die abgespielt werden soll, "
+"sobald die aktuelle fertig ist.\n"
+"[b]Hinweis:[/b] Wenn gerade eine Animation in einer Schleife abgespielt wird, "
+"dann wird diese in der Warteschlange nicht abgespielt, es sei denn, die "
+"Animation in der Schleife wird irgendwie gestoppt."
+
+msgid ""
+"Seeks the animation to the [param seconds] point in time (in seconds). If "
+"[param update] is [code]true[/code], the animation updates too, otherwise it "
+"updates at process time. Events between the current frame and [param seconds] "
+"are skipped.\n"
+"If [param update_only] is true, the method / audio / animation playback "
+"tracks will not be processed.\n"
+"[b]Note:[/b] Seeking to the end of the animation doesn't emit [signal "
+"AnimationMixer.animation_finished]. If you want to skip animation and emit "
+"the signal, use [method AnimationMixer.advance]."
+msgstr ""
+"Sucht die Animation bis zum [param seconds]-Zeitpunkt (in Sekunden). Wenn "
+"[param update] [code]true[/code] ist, wird die Animation ebenfalls "
+"aktualisiert, andernfalls wird sie zur Prozesszeit aktualisiert. Ereignisse "
+"zwischen dem aktuellen Frame und [param seconds] werden übersprungen.\n"
+"Wenn [param update_only] true ist, werden die Methoden-/Audio-/Animations-"
+"Wiedergabespuren nicht verarbeitet.\n"
+"[b]Hinweis:[/b] Das Überspringen des Endes der Animation gibt kein [Signal "
+"AnimationMixer.animation_finished] aus. Wenn Sie die Animation überspringen "
+"und das Signal ausgeben wollen, verwenden Sie [Methode AnimationMixer."
+"advance]."
+
+msgid ""
+"Stops the currently playing animation. The animation position is reset to "
+"[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/"
+"code]. See also [method pause].\n"
+"If [param keep_state] is [code]true[/code], the animation state is not "
+"updated visually.\n"
+"[b]Note:[/b] The method / audio / animation playback tracks will not be "
+"processed by this method."
+msgstr ""
+"Stoppt die aktuell laufende Animation. Die Animationsposition wird auf "
+"[code]0[/code] zurückgesetzt und die [code]custom_speed[/code] wird auf "
+"[code]1.0[/code] zurückgesetzt. Siehe auch [Methode pause].\n"
+"Wenn [param keep_state] [code]true[/code] ist, wird der Animationszustand "
+"nicht visuell aktualisiert.\n"
+"[b]Hinweis:[/b] Die Methoden-/Audio-/Animationswiedergabespuren werden von "
+"dieser Methode nicht verarbeitet."
+
+msgid "The position (in seconds) of the currently playing animation."
+msgstr "Die Position (in Sekunden) der aktuell spielenden Animation."
+
+msgid ""
+"If [code]true[/code] and the engine is running in Movie Maker mode (see "
+"[MovieWriter]), exits the engine with [method SceneTree.quit] as soon as an "
+"animation is done playing in this [AnimationPlayer]. A message is printed "
+"when the engine quits for this reason.\n"
+"[b]Note:[/b] This obeys the same logic as the [signal AnimationMixer."
+"animation_finished] signal, so it will not quit the engine if the animation "
+"is set to be looping."
+msgstr ""
+"Wenn [code]true[/code] und die Engine im Movie Maker Modus läuft (siehe "
+"[MovieWriter]), wird die Engine mit [method SceneTree.quit] beendet, sobald "
+"eine Animation in diesem [AnimationPlayer] fertig abgespielt ist. Es wird "
+"eine Meldung ausgegeben, wenn die Engine aus diesem Grund beendet wird.\n"
+"[b]Hinweis:[/b] Dies gehorcht der gleichen Logik wie das Signal [signal "
+"AnimationMixer.animation_finished], so dass die Engine nicht beendet wird, "
+"wenn die Animation als Schleife eingestellt ist."
+
+msgid ""
+"The default time in which to blend animations. Ranges from 0 to 4096 with "
+"0.01 precision."
+msgstr ""
+"Die Standardzeit, in der Animationen überblendet werden sollen. Der Bereich "
+"reicht von 0 bis 4096 mit einer Genauigkeit von 0,01."
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]."
+msgstr ""
+"Für Abwärtskompatibilität. Siehe [Konstante AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]."
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]."
+msgstr ""
+"Für Abwärtskompatibilität. Siehe [Konstante AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]."
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]."
+msgstr ""
+"Für Abwärtskompatibilität. Siehe [Konstante AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]."
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]."
+msgstr ""
+"Für Abwärtskompatibilität. Siehe [Konstante AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]."
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]."
+msgstr ""
+"Für Abwärtskompatibilität. Siehe [Konstante AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]."
+
+msgid ""
+"Base class for [AnimationNode]s that hold one or multiple composite "
+"animations. Usually used for [member AnimationTree.tree_root]."
+msgstr ""
+"Basisklasse für [AnimationNode]s, die eine oder mehrere zusammengesetzte "
+"Animationen enthalten. Wird normalerweise für [member AnimationTree."
+"tree_root] verwendet."
+
+msgid ""
+"[AnimationRootNode] is a base class for [AnimationNode]s that hold a complete "
+"animation. A complete animation refers to the output of an "
+"[AnimationNodeOutput] in an [AnimationNodeBlendTree] or the output of another "
+"[AnimationRootNode]. Used for [member AnimationTree.tree_root] or in other "
+"[AnimationRootNode]s.\n"
+"Examples of built-in root nodes include [AnimationNodeBlendTree] (allows "
+"blending nodes between each other using various modes), "
+"[AnimationNodeStateMachine] (allows to configure blending and transitions "
+"between nodes using a state machine pattern), [AnimationNodeBlendSpace2D] "
+"(allows linear blending between [b]three[/b] [AnimationNode]s), "
+"[AnimationNodeBlendSpace1D] (allows linear blending only between [b]two[/b] "
+"[AnimationNode]s)."
+msgstr ""
+"[AnimationRootNode] ist eine Basisklasse für [AnimationNode]s, die eine "
+"vollständige Animation enthalten. Eine vollständige Animation bezieht sich "
+"auf die Ausgabe eines [AnimationNodeOutput] in einem [AnimationNodeBlendTree] "
+"oder die Ausgabe eines anderen [AnimationRootNode]. Verwendet für [member "
+"AnimationTree.tree_root] oder in anderen [AnimationRootNode]s.\n"
+"Beispiele für eingebaute Wurzelknoten sind [AnimationNodeBlendTree] "
+"(ermöglicht die Überblendung von Knoten untereinander unter Verwendung "
+"verschiedener Modi), [AnimationNodeStateMachine] (ermöglicht die "
+"Konfiguration von Überblendungen und Übergängen zwischen Knoten unter "
+"Verwendung eines Zustandsmaschinenmusters), [AnimationNodeBlendSpace2D] "
+"(ermöglicht lineare Überblendungen zwischen [b]drei[/b] [AnimationNode]s), "
+"[AnimationNodeBlendSpace1D] (ermöglicht lineare Überblendungen nur zwischen "
+"[b]zwei[/b] [AnimationNode]s)."
+
+msgid ""
+"A node used for advanced animation transitions in an [AnimationPlayer].\n"
+"[b]Note:[/b] When linked with an [AnimationPlayer], several properties and "
+"methods of the corresponding [AnimationPlayer] will not function as expected. "
+"Playback and transitions should be handled using only the [AnimationTree] and "
+"its constituent [AnimationNode](s). The [AnimationPlayer] node should be used "
+"solely for adding, deleting, and editing animations."
+msgstr ""
+"Ein Knoten (Node), der für erweiterte Animationsübergänge in einem "
+"[AnimationPlayer] verwendet wird.\n"
+"[b]Hinweis:[/b] Wenn er mit einem [AnimationPlayer] verknüpft ist, "
+"funktionieren mehrere Eigenschaften und Methoden des entsprechenden "
+"[AnimationPlayer] nicht wie erwartet. Wiedergabe und Übergänge sollten nur "
+"über den [AnimationTree] und die zugehörigen [AnimationNode](s) abgewickelt "
+"werden. Der [AnimationPlayer]-Knoten (Node) sollte ausschließlich zum "
+"Hinzufügen, Löschen und Bearbeiten von Animationen verwendet werden."
+
+msgid ""
+"The path to the [Node] used to evaluate the [AnimationNode] [Expression] if "
+"one is not explicitly specified internally."
+msgstr ""
+"Der Pfad zum [Knoten (Node)], der zur Auswertung des [AnimationNode] "
+"[Ausdrucks] verwendet wird, wenn intern nicht explizit einer angegeben ist."
+
+msgid "The path to the [AnimationPlayer] used for animating."
+msgstr "Der Pfad zum [AnimationPlayer], der zum Animieren verwendet wird."
+
+msgid ""
+"A region of 2D space that detects other [CollisionObject2D]s entering or "
+"exiting it."
+msgstr ""
+"Ein Bereich des 2D-Raums, der andere [CollisionObject2D]s erkennt, die ihn "
+"betreten oder verlassen."
+
+msgid ""
+"[Area2D] is a region of 2D space defined by one or multiple "
+"[CollisionShape2D] or [CollisionPolygon2D] child nodes. It detects when other "
+"[CollisionObject2D]s enter or exit it, and it also keeps track of which "
+"collision objects haven't exited it yet (i.e. which one are overlapping it).\n"
+"This node can also locally alter or override physics parameters (gravity, "
+"damping) and route audio to custom audio buses."
+msgstr ""
+"[Area2D] ist ein Bereich des 2D-Raums, der durch einen oder mehrere "
+"[CollisionShape2D]- oder [CollisionPolygon2D]-Unterknoten definiert ist. Er "
+"erkennt, wenn andere [CollisionObject2D]s ihn betreten oder verlassen, und er "
+"behält auch im Auge, welche Kollisionsobjekte ihn noch nicht verlassen haben "
+"(d.h. welche ihn überlappen).\n"
+"Dieser Knoten kann auch lokal Physikparameter (Schwerkraft, Dämpfung) ändern "
+"oder außer Kraft setzen und Audio an benutzerdefinierte Audiobusse "
+"weiterleiten."
+
+msgid "Using Area2D"
+msgstr "Verwendung von Area2D"
+
+msgid "2D Pong Demo"
+msgstr "2D-Pong-Demo"
+
+msgid "2D Platformer Demo"
+msgstr "2D-Platformer-Demo"
+
+msgid ""
+"Returns a list of intersecting [Area2D]s. The overlapping area's [member "
+"CollisionObject2D.collision_layer] must be part of this area's [member "
+"CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+"Gibt zurück eine Liste der sich überschneidenden [Area2D]s. Das [member "
+"CollisionObject2D.collision_layer] des überlappenden Areas muss mit der "
+"[member CollisionObject2D.collision_mask] dieser Area übereinstimmen, um "
+"erkannt zu werden.\n"
+"Aus Leistungsgründen (Kollisionen werden alle gleichzeitig verarbeitet) wird "
+"diese Liste nur einmal während des Physikschritts geändert, nicht sofort nach "
+"dem Verschieben von Objekten. Dafür sollte die Verwendung von Signalen "
+"erwogen werden."
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [Area2D]s, otherwise returns "
+"[code]false[/code]. The overlapping area's [member CollisionObject2D."
+"collision_layer] must be part of this area's [member CollisionObject2D."
+"collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping areas is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sich [Area2D]s überschneiden, andernfalls "
+"[code]false[/code]. Die [member CollisionObject2D.collision_layer] des "
+"überlappenden Bereichs muss Teil der [member CollisionObject2D."
+"collision_mask] dieses Bereichs sein, um erkannt zu werden.\n"
+"Aus Leistungsgründen (Kollisionen werden alle gleichzeitig verarbeitet) wird "
+"die Liste der überlappenden Bereiche einmal während des Physikschritts "
+"geändert, nicht sofort nach dem Verschieben der Objekte. Erwägen Sie "
+"stattdessen die Verwendung von Signalen."
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [PhysicsBody2D]s or [TileMap]s, "
+"otherwise returns [code]false[/code]. The overlapping body's [member "
+"CollisionObject2D.collision_layer] must be part of this area's [member "
+"CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping bodies is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sie [PhysicsBody2D]s oder [TileMap]s "
+"überschneidet, andernfalls [code]false[/code]. Die [member CollisionObject2D."
+"collision_layer] des überlappenden Körpers muss Teil der [member "
+"CollisionObject2D.collision_mask] dieses Bereichs sein, um erkannt zu "
+"werden.\n"
+"Aus Leistungsgründen (Kollisionen werden alle zur gleichen Zeit verarbeitet) "
+"wird die Liste der überlappenden Körper einmal während des Physikschritts "
+"geändert, nicht sofort nach dem Verschieben von Objekten. Erwägen Sie "
+"stattdessen die Verwendung von Signalen."
+
+msgid ""
+"Returns [code]true[/code] if the given [Area2D] intersects or overlaps this "
+"[Area2D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, the list of overlaps is updated once per frame and before "
+"the physics step. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das angegebene [Area2D] dieses [Area2D] "
+"schneidet oder überlappt, [code]false[/code] andernfalls.\n"
+"[b]Hinweis:[/b] Das Ergebnis dieses Tests ist nach dem Verschieben von "
+"Objekten nicht sofort sichtbar. Aus Performancegründen wird die Liste der "
+"Überschneidungen einmal pro Frame und vor dem Physikschritt aktualisiert. "
+"Erwägen Sie stattdessen die Verwendung von Signalen."
+
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_angular_damp] for more details "
+"about damping."
+msgstr ""
+"Die Geschwindigkeit, mit der sich Objekte in diesem Bereich nicht mehr "
+"drehen. Stellt den Winkelgeschwindigkeitsverlust pro Sekunde dar.\n"
+"Siehe [member ProjectSettings.physics/2d/default_angular_damp] für weitere "
+"Details zur Dämpfung."
+
+msgid "The name of the area's audio bus."
+msgstr "Der Name des zugewiesenen Audio-Bus für diese Area."
+
+msgid ""
+"If [code]true[/code], the area's audio bus overrides the default audio bus."
+msgstr ""
+"Wenn [code]true[/code], hat der Audiobus der Area Vorrang gegenüber dem "
+"Standard-Audiobus."
+
+msgid "The area's gravity vector (not normalized)."
+msgstr "Der Gravitationsvektor des Gebiets (nicht normalisiert)."
+
+msgid ""
+"The distance at which the gravity strength is equal to [member gravity]. For "
+"example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/"
+"s², set the [member gravity] to 4.0 and the unit distance to 100.0. The "
+"gravity will have falloff according to the inverse square law, so in the "
+"example, at 200 pixels from the center the gravity will be 1.0 px/s² (twice "
+"the distance, 1/4th the gravity), at 50 pixels it will be 16.0 px/s² (half "
+"the distance, 4x the gravity), and so on.\n"
+"The above is true only when the unit distance is a positive number. When this "
+"is set to 0.0, the gravity will be constant regardless of distance."
+msgstr ""
+"Die Entfernung, bei der die Schwerkraft gleich der [Mitgliedsschwerkraft] "
+"ist. Beispiel: Bei einem Planeten mit einem Radius von 100 Pixeln und einer "
+"Oberflächengravitation von 4,0 px/s² setzen Sie die [Mitgliedergravitation] "
+"auf 4,0 und den Einheitsabstand auf 100,0. Die Schwerkraft wird gemäß dem "
+"Gesetz des umgekehrten Quadrats abfallen, so dass im Beispiel bei 200 Pixeln "
+"vom Zentrum die Schwerkraft 1,0 px/s² (doppelter Abstand, 1/4 der "
+"Schwerkraft), bei 50 Pixeln 16,0 px/s² (halber Abstand, 4fache Schwerkraft) "
+"usw. beträgt.\n"
+"Die obigen Angaben gelten nur, wenn die Abstandseinheit eine positive Zahl "
+"ist. Wenn diese auf 0,0 gesetzt ist, bleibt die Schwerkraft unabhängig von "
+"der Entfernung konstant."
+
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+"Die Geschwindigkeit, mit der sich Objekte in diesem Bereich nicht mehr "
+"bewegen. Stellt den linearen Geschwindigkeitsverlust pro Sekunde dar.\n"
+"Siehe [member ProjectSettings.physics/2d/default_linear_damp] für weitere "
+"Details zur Dämpfung."
+
+msgid "If [code]true[/code], other monitoring areas can detect this area."
+msgstr ""
+"Wenn [code]true[/code], können andere Überwachungsbereiche diesen Bereich "
+"erkennen."
+
+msgid ""
+"If [code]true[/code], the area detects bodies or areas entering and exiting "
+"it."
+msgstr ""
+"If [code]true[/code], erkennt die Area, ob Bodys oder andere Areas ihn "
+"betreten oder verlassen."
+
+msgid ""
+"Emitted when the received [param area] enters this area. Requires [member "
+"monitoring] to be set to [code]true[/code]."
+msgstr ""
+"Wird ausgegeben, wenn das empfangene [param area] in diesen Bereich eintritt. "
+"Erfordert, dass [member monitoring] auf [code]true[/code] gesetzt ist."
+
+msgid ""
+"Emitted when the received [param area] exits this area. Requires [member "
+"monitoring] to be set to [code]true[/code]."
+msgstr ""
+"Wird ausgegeben, wenn das empfangene [param area] diesen Bereich verlässt. "
+"Erfordert, dass [member monitoring] auf [code]true[/code] gesetzt ist."
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param area] enters a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param area_shape_index] contain indices of the "
+"interacting shapes from this area and the other area, respectively. [param "
+"area_rid] contains the [RID] of the other area. These values can be used with "
+"the [PhysicsServer2D].\n"
+"[b]Example of getting the[/b] [CollisionShape2D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape2D] des empfangenen [param area] in eine Form "
+"dieses Bereichs eintritt. Erfordert, dass [member monitoring] auf [code]true[/"
+"code] gesetzt ist.\n"
+"[param local_shape_index] und [param area_shape_index] enthalten Indizes der "
+"interagierenden Shapes aus diesem Bereich bzw. dem anderen Bereich. [param "
+"area_rid] enthält die [RID] des anderen Bereichs. Diese Werte können mit dem "
+"[PhysicsServer2D] verwendet werden.\n"
+"[b]Beispiel für die Ermittlung des[/b] [CollisionShape2D] [b]Knotens aus dem "
+"Formindex:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param area] exits a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"See also [signal area_shape_entered]."
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape2D] des empfangenen [param area] eine Form "
+"dieses Bereichs verlässt. Erfordert, dass [member monitoring] auf [code]true[/"
+"code] gesetzt ist.\n"
+"Siehe auch [signal area_shape_entered]."
+
+msgid ""
+"Emitted when the received [param body] enters this area. [param body] can be "
+"a [PhysicsBody2D] or a [TileMap]. [TileMap]s are detected if their [TileSet] "
+"has collision shapes configured. Requires [member monitoring] to be set to "
+"[code]true[/code]."
+msgstr ""
+"Wird ausgesendet, wenn der empfangene [param body] diesen Bereich betritt. "
+"Der [param body] kann ein [PhysicsBody2D] oder eine [TileMap] sein. "
+"[TileMap]s werden erkannt, wenn ihr [TileSet] Kollisionsformen konfiguriert "
+"hat. Erfordert, dass [member monitoring] auf [code]true[/code] gesetzt ist."
+
+msgid ""
+"Emitted when the received [param body] exits this area. [param body] can be a "
+"[PhysicsBody2D] or a [TileMap]. [TileMap]s are detected if their [TileSet] "
+"has collision shapes configured. Requires [member monitoring] to be set to "
+"[code]true[/code]."
+msgstr ""
+"Wird ausgegeben, wenn der empfangene [param body] diesen Bereich verlässt. "
+"Der [param body] kann ein [PhysicsBody2D] oder eine [TileMap] sein. "
+"[TileMap]s werden erkannt, wenn ihr [TileSet] Kollisionsformen konfiguriert "
+"hat. Erfordert, dass [member monitoring] auf [code]true[/code] gesetzt ist."
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param body] enters a shape of this "
+"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are "
+"detected if their [TileSet] has collision shapes configured. Requires [member "
+"monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param body_shape_index] contain indices of the "
+"interacting shapes from this area and the interacting body, respectively. "
+"[param body_rid] contains the [RID] of the body. These values can be used "
+"with the [PhysicsServer2D].\n"
+"[b]Example of getting the[/b] [CollisionShape2D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape2D] des empfangenen [param body] eine Form "
+"dieses Bereichs betritt. Der [param body] kann ein [PhysicsBody2D] oder eine "
+"[TileMap] sein. [TileMap]s werden erkannt, wenn ihr [TileSet] "
+"Kollisionsformen konfiguriert hat. Erfordert, dass [member monitoring] auf "
+"[code]true[/code] gesetzt ist.\n"
+"[param local_shape_index] und [param body_shape_index] enthalten Indizes der "
+"interagierenden Shapes aus diesem Bereich bzw. dem interagierenden Körper. "
+"[param body_rid] enthält die [RID] des Körpers. Diese Werte können mit dem "
+"[PhysicsServer2D] verwendet werden.\n"
+"[b]Beispiel für die Ermittlung des[/b] [CollisionShape2D] [b]Knotens aus dem "
+"Formindex:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param body] exits a shape of this "
+"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are "
+"detected if their [TileSet] has collision shapes configured. Requires [member "
+"monitoring] to be set to [code]true[/code].\n"
+"See also [signal body_shape_entered]."
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape2D] des empfangenen [param body] eine Form "
+"dieses Bereichs verlässt. Der [param body] kann ein [PhysicsBody2D] oder eine "
+"[TileMap] sein. [TileMap]s werden erkannt, wenn ihr [TileSet] "
+"Kollisionsformen konfiguriert hat. Erfordert, dass [member monitoring] auf "
+"[code]true[/code] gesetzt ist.\n"
+"Siehe auch [signal body_shape_entered]."
+
+msgid "This area does not affect gravity/damping."
+msgstr "Diese Area hat keinen Einfluss auf die Gravitation/Dämpfung."
+
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order)."
+msgstr ""
+"Dieser Bereich addiert seine Schwerkraft-/Dämpfungswerte zu den bisher "
+"berechneten Werten (in der Reihenfolge der [member priority])."
+
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order), ignoring any lower priority areas."
+msgstr ""
+"Dieser Bereich addiert seine Schwere-/Dämpfungswerte zu den bisher "
+"berechneten Werten (in der Reihenfolge der [member priority]) und ignoriert "
+"alle Bereiche mit niedrigerer Priorität."
+
+msgid ""
+"This area replaces any gravity/damping, even the defaults, ignoring any lower "
+"priority areas."
+msgstr ""
+"Dieser Bereich ersetzt jede Schwerkraft/Dämpfung, auch die Standardwerte, und "
+"ignoriert alle Bereiche mit niedrigerer Priorität."
+
+msgid ""
+"This area replaces any gravity/damping calculated so far (in [member "
+"priority] order), but keeps calculating the rest of the areas."
+msgstr ""
+"Dieser Bereich ersetzt alle bisher berechneten Schwerkraft-/Dämpfungswerte "
+"(in der Reihenfolge der [member priority]), berechnet aber weiterhin die "
+"übrigen Bereiche."
+
+msgid ""
+"A region of 3D space that detects other [CollisionObject3D]s entering or "
+"exiting it."
+msgstr ""
+"Ein Bereich des 3D-Raums, der andere [CollisionObject3D]s erkennt, die ihn "
+"betreten oder verlassen."
+
+msgid ""
+"[Area3D] is a region of 3D space defined by one or multiple "
+"[CollisionShape3D] or [CollisionPolygon3D] child nodes. It detects when other "
+"[CollisionObject3D]s enter or exit it, and it also keeps track of which "
+"collision objects haven't exited it yet (i.e. which one are overlapping it).\n"
+"This node can also locally alter or override physics parameters (gravity, "
+"damping) and route audio to custom audio buses.\n"
+"[b]Warning:[/b] Using a [ConcavePolygonShape3D] inside a [CollisionShape3D] "
+"child of this node (created e.g. by using the [b]Create Trimesh Collision "
+"Sibling[/b] option in the [b]Mesh[/b] menu that appears when selecting a "
+"[MeshInstance3D] node) may give unexpected results, since this collision "
+"shape is hollow. If this is not desired, it has to be split into multiple "
+"[ConvexPolygonShape3D]s or primitive shapes like [BoxShape3D], or in some "
+"cases it may be replaceable by a [CollisionPolygon3D]."
+msgstr ""
+"[Area3D] ist ein Bereich des 3D-Raums, der durch einen oder mehrere "
+"[CollisionShape3D]- oder [CollisionPolygon3D]-Knoten definiert ist. Er "
+"erkennt, wenn andere [CollisionObject3D]s ihn betreten oder verlassen, und er "
+"behält auch im Auge, welche Kollisionsobjekte ihn noch nicht verlassen haben "
+"(d.h. welche ihn überlappen).\n"
+"Dieser Knoten kann auch lokal Physikparameter (Schwerkraft, Dämpfung) ändern "
+"oder außer Kraft setzen und Audio an benutzerdefinierte Audiobusse "
+"weiterleiten.\n"
+"[b]Warnung:[/b] Die Verwendung eines [ConcavePolygonShape3D] innerhalb eines "
+"[CollisionShape3D]-Unterknotens dieses Knotens (erstellt z.B. mit der Option "
+"[b]Create Trimesh Collision Sibling[/b] im [b]Mesh[/b]-Menü, das bei der "
+"Auswahl eines [MeshInstance3D]-Knotens erscheint) kann zu unerwarteten "
+"Ergebnissen führen, da diese Kollisionsform hohl ist. Wenn dies nicht "
+"erwünscht ist, muss sie in mehrere [ConvexPolygonShape3D]s oder primitive "
+"Formen wie [BoxShape3D] aufgeteilt werden, oder in einigen Fällen kann sie "
+"durch ein [CollisionPolygon3D] ersetzt werden."
+
+msgid "GUI in 3D Demo"
+msgstr "Benutzeroberfläche in 3D-Demo"
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [Area3D]s, otherwise returns "
+"[code]false[/code]. The overlapping area's [member CollisionObject3D."
+"collision_layer] must be part of this area's [member CollisionObject3D."
+"collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping areas is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es einen [Area3D]s überschneidet, "
+"andernfalls [code]false[/code]. Die [member CollisionObject3D."
+"collision_layer] des überlappenden Bereichs muss Teil der [member "
+"CollisionObject3D.collision_mask] dieses Bereichs sein, um erkannt zu "
+"werden.\n"
+"Aus Leistungsgründen (Kollisionen werden alle gleichzeitig verarbeitet) wird "
+"die Liste der überlappenden Bereiche einmal während des Physikschritts "
+"geändert, nicht sofort nach dem Verschieben der Objekte. Erwägen Sie "
+"stattdessen die Verwendung von Signalen."
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [PhysicsBody3D]s or [GridMap]s, "
+"otherwise returns [code]false[/code]. The overlapping body's [member "
+"CollisionObject3D.collision_layer] must be part of this area's [member "
+"CollisionObject3D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping bodies is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sie [PhysicsBody3D]s oder [GridMap]s "
+"überschneidet, andernfalls [code]false[/code]. Die [member CollisionObject3D."
+"collision_layer] des überlappenden Körpers muss Teil der [member "
+"CollisionObject3D.collision_mask] dieses Bereichs sein, um erkannt zu "
+"werden.\n"
+"Aus Leistungsgründen (Kollisionen werden alle zur gleichen Zeit verarbeitet) "
+"wird die Liste der überlappenden Körper einmal während des Physikschritts "
+"geändert, nicht sofort nach dem Verschieben von Objekten. Erwägen Sie "
+"stattdessen die Verwendung von Signalen."
+
+msgid ""
+"Returns [code]true[/code] if the given [Area3D] intersects or overlaps this "
+"[Area3D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der angegebene [Area3D] diesen [Area3D] "
+"schneidet oder überlappt, [code]false[/code] andernfalls.\n"
+"[b]Hinweis:[/b] Das Ergebnis dieses Tests ist nach dem Verschieben von "
+"Objekten nicht sofort sichtbar. Um die Leistung zu verbessern, wird die Liste "
+"der Überschneidungen einmal pro Frame und vor dem Physikschritt aktualisiert. "
+"Erwägen Sie stattdessen die Verwendung von Signalen."
+
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_angular_damp] for more details "
+"about damping."
+msgstr ""
+"Die Geschwindigkeit, mit der sich Objekte in diesem Bereich nicht mehr "
+"drehen. Stellt den Winkelgeschwindigkeitsverlust pro Sekunde dar.\n"
+"Siehe [member ProjectSettings.physics/3d/default_angular_damp] für weitere "
+"Details zur Dämpfung."
+
+msgid ""
+"The distance at which the gravity strength is equal to [member gravity]. For "
+"example, on a planet 100 meters in radius with a surface gravity of 4.0 m/s², "
+"set the [member gravity] to 4.0 and the unit distance to 100.0. The gravity "
+"will have falloff according to the inverse square law, so in the example, at "
+"200 meters from the center the gravity will be 1.0 m/s² (twice the distance, "
+"1/4th the gravity), at 50 meters it will be 16.0 m/s² (half the distance, 4x "
+"the gravity), and so on.\n"
+"The above is true only when the unit distance is a positive number. When this "
+"is set to 0.0, the gravity will be constant regardless of distance."
+msgstr ""
+"Die Entfernung, bei der die Schwerkraft gleich der [Mitgliedsgravitation] "
+"ist. Bei einem Planeten mit einem Radius von 100 Metern und einer "
+"Oberflächengravitation von 4,0 m/s² setzen Sie beispielsweise die "
+"[Mitgliedergravitation] auf 4,0 und die Einheitsentfernung auf 100,0. Die "
+"Schwerkraft wird nach dem Gesetz des umgekehrten Quadrats abfallen, so dass "
+"in dem Beispiel in 200 Metern Entfernung vom Zentrum die Schwerkraft 1,0 m/s² "
+"beträgt (doppelte Entfernung, 1/4 der Schwerkraft), in 50 Metern 16,0 m/s² "
+"(halbe Entfernung, 4fache Schwerkraft) und so weiter.\n"
+"Die obigen Angaben gelten nur, wenn die Entfernungseinheit eine positive Zahl "
+"ist. Wenn diese auf 0,0 gesetzt ist, bleibt die Schwerkraft unabhängig von "
+"der Entfernung konstant."
+
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+"Die Geschwindigkeit, mit der sich Objekte in diesem Bereich nicht mehr "
+"bewegen. Stellt den linearen Geschwindigkeitsverlust pro Sekunde dar.\n"
+"Siehe [member ProjectSettings.physics/3d/default_linear_damp] für weitere "
+"Details zur Dämpfung."
+
+msgid ""
+"The degree to which this area applies reverb to its associated audio. Ranges "
+"from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+"Der Grad, in dem dieser Bereich Hall auf das zugehörige Audiomaterial "
+"anwendet. Der Bereich reicht von [code]0[/code] bis [code]1[/code] mit einer "
+"Genauigkeit von [code]0.1[/code]."
+
+msgid "If [code]true[/code], the area applies reverb to its associated audio."
+msgstr ""
+"Wenn [code]true[/code], wendet der Bereich Hall auf das zugehörige "
+"Audiomaterial an."
+
+msgid ""
+"The degree to which this area's reverb is a uniform effect. Ranges from "
+"[code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+"Der Grad, bis zu dem der Reverb der Area gleichmäßig wirkt. Reicht von "
+"[code]0[/code] bis [code]1[/code], mit einer Schrittgenauigkeit von "
+"[code]0.1[/code]."
+
+msgid ""
+"The exponential rate at which wind force decreases with distance from its "
+"origin."
+msgstr ""
+"Die exponentielle Rate, mit der die Windstärke mit der Entfernung vom "
+"Ursprung abnimmt."
+
+msgid "The magnitude of area-specific wind force."
+msgstr "Das Ausmaß der flächenspezifischen Windstärke."
+
+msgid ""
+"The [Node3D] which is used to specify the direction and origin of an area-"
+"specific wind force. The direction is opposite to the z-axis of the "
+"[Node3D]'s local transform, and its origin is the origin of the [Node3D]'s "
+"local transform."
+msgstr ""
+"Der [Node3D], der verwendet wird, um die Richtung und den Ursprung einer "
+"gebietsspezifischen Windkraft anzugeben. Die Richtung ist entgegengesetzt zur "
+"z-Achse der lokalen Transformation des [Node3D], und der Ursprung ist der "
+"Ursprung der lokalen Transformation des [Node3D]."
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param area] enters a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param area_shape_index] contain indices of the "
+"interacting shapes from this area and the other area, respectively. [param "
+"area_rid] contains the [RID] of the other area. These values can be used with "
+"the [PhysicsServer3D].\n"
+"[b]Example of getting the[/b] [CollisionShape3D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape3D] des empfangenen [param area] in eine Form "
+"dieses Bereichs eintritt. Erfordert, dass [member monitoring] auf [code]true[/"
+"code] gesetzt ist.\n"
+"[param local_shape_index] und [param area_shape_index] enthalten Indizes der "
+"interagierenden Shapes aus diesem Bereich bzw. dem anderen Bereich. [param "
+"area_rid] enthält die [RID] des anderen Bereichs. Diese Werte können mit dem "
+"[PhysicsServer3D] verwendet werden.\n"
+"[b]Beispiel für die Ermittlung des[/b] [CollisionShape3D] [b]Knotens aus dem "
+"Formindex:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param area] exits a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"See also [signal area_shape_entered]."
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape3D] des empfangenen [param area] eine Form "
+"dieses Bereichs verlässt. Erfordert, dass [member monitoring] auf [code]true[/"
+"code] gesetzt ist.\n"
+"Siehe auch [signal area_shape_entered]."
+
+msgid ""
+"Emitted when the received [param body] enters this area. [param body] can be "
+"a [PhysicsBody3D] or a [GridMap]. [GridMap]s are detected if their "
+"[MeshLibrary] has collision shapes configured. Requires [member monitoring] "
+"to be set to [code]true[/code]."
+msgstr ""
+"Wird ausgesendet, wenn der empfangene [param body] diesen Bereich betritt. "
+"Der [param body] kann ein [PhysicsBody3D] oder eine [GridMap] sein. "
+"[GridMap]s werden erkannt, wenn ihre [MeshLibrary] Kollisionsformen "
+"konfiguriert hat. Erfordert, dass [member monitoring] auf [code]true[/code] "
+"gesetzt ist."
+
+msgid ""
+"Emitted when the received [param body] exits this area. [param body] can be a "
+"[PhysicsBody3D] or a [GridMap]. [GridMap]s are detected if their "
+"[MeshLibrary] has collision shapes configured. Requires [member monitoring] "
+"to be set to [code]true[/code]."
+msgstr ""
+"Wird ausgegeben, wenn der empfangene [param body] diesen Bereich verlässt. "
+"Der [param body] kann ein [PhysicsBody3D] oder eine [GridMap] sein. "
+"[GridMap]s werden erkannt, wenn ihre [MeshLibrary] Kollisionsformen "
+"konfiguriert hat. Erfordert, dass [member monitoring] auf [code]true[/code] "
+"gesetzt ist."
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param body] enters a shape of this "
+"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are "
+"detected if their [MeshLibrary] has collision shapes configured. Requires "
+"[member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param body_shape_index] contain indices of the "
+"interacting shapes from this area and the interacting body, respectively. "
+"[param body_rid] contains the [RID] of the body. These values can be used "
+"with the [PhysicsServer3D].\n"
+"[b]Example of getting the[/b] [CollisionShape3D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape3D] des empfangenen [param body] eine Form "
+"dieses Bereichs betritt. Der [param body] kann ein [PhysicsBody3D] oder eine "
+"[GridMap] sein. [GridMap]s werden erkannt, wenn ihre [MeshLibrary] "
+"Kollisionsformen konfiguriert hat. Erfordert, dass [member monitoring] auf "
+"[code]true[/code] gesetzt ist.\n"
+"[param local_shape_index] und [param body_shape_index] enthalten Indizes der "
+"interagierenden Shapes aus diesem Bereich bzw. dem interagierenden Körper. "
+"[param body_rid] enthält die [RID] des Körpers. Diese Werte können mit dem "
+"[PhysicsServer3D] verwendet werden.\n"
+"[b]Beispiel für die Ermittlung des[/b] [CollisionShape3D] [b]Knotens aus dem "
+"Formindex:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param body] exits a shape of this "
+"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are "
+"detected if their [MeshLibrary] has collision shapes configured. Requires "
+"[member monitoring] to be set to [code]true[/code].\n"
+"See also [signal body_shape_entered]."
+msgstr ""
+"Wird ausgegeben, wenn ein [Shape3D] des empfangenen [param body] eine Form "
+"dieses Bereichs verlässt. Der [param body] kann ein [PhysicsBody3D] oder eine "
+"[GridMap] sein. [GridMap]s werden erkannt, wenn ihre [MeshLibrary] "
+"Kollisionsformen konfiguriert hat. Erfordert, dass [member monitoring] auf "
+"[code]true[/code] gesetzt ist.\n"
+"Siehe auch [signal body_shape_entered]."
+
+msgid "A built-in data structure that holds a sequence of elements."
+msgstr "Eine integrierte Datenstruktur, die eine Folge von Elementen enthält."
+
+msgid ""
+"An array data structure that can contain a sequence of elements of any type. "
+"Elements are accessed by a numerical index starting at 0. Negative indices "
+"are used to count from the back (-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] 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 ""
+"Eine Array-Datenstruktur, die eine Folge von Elementen beliebigen Typs "
+"enthalten kann. Der Zugriff auf die Elemente erfolgt über einen numerischen "
+"Index, der bei 0 beginnt. Negative Indizes werden verwendet, um von hinten zu "
+"zählen (-1 ist das letzte Element, -2 ist das vorletzte usw.).\n"
+"[b]Beispiel:[/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 können mit dem Operator [code]+[/code] verkettet werden:\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-Verkettung ist mit C#-Arrays nicht möglich, wohl aber mit 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); // Gibt [One, 2, 3, Four] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Arrays werden immer per Referenz übergeben. Um eine Kopie "
+"eines Arrays zu erhalten, die unabhängig vom ursprünglichen Array geändert "
+"werden kann, verwenden Sie [method duplicate].\n"
+"[b]Hinweis:[/b] Das Löschen von Elementen beim Iterieren über Arrays wird "
+"[b]nicht[/b] unterstützt und führt zu unvorhersehbarem Verhalten."
+
+msgid ""
+"Returns the same array as [param from]. If you need a copy of the array, use "
+"[method duplicate]."
+msgstr ""
+"Gibt das gleiche Array zurück wie [param from]. Wenn Sie eine Kopie des "
+"Arrays benötigen, verwenden Sie [method duplicate]."
+
+msgid "Constructs an array from a [PackedByteArray]."
+msgstr "Konstruiert ein Array aus einem [PackedByteArray]."
+
+msgid "Constructs an array from a [PackedColorArray]."
+msgstr "Konstruiert ein Array aus einem [PackedColorArray]."
+
+msgid "Constructs an array from a [PackedFloat32Array]."
+msgstr "Konstruiert ein Array aus einem [PackedFloat32Array]."
+
+msgid "Constructs an array from a [PackedFloat64Array]."
+msgstr "Konstruiert ein Array aus einem [PackedFloat64Array]."
+
+msgid "Constructs an array from a [PackedInt32Array]."
+msgstr "Konstruiert ein Array aus einem [PackedInt32Array]."
+
+msgid "Constructs an array from a [PackedInt64Array]."
+msgstr "Konstruiert ein Array aus einem [PackedInt64Array]."
+
+msgid "Constructs an array from a [PackedStringArray]."
+msgstr "Konstruiert ein Array aus einem [PackedStringArray]."
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns "
+"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]all[/i] "
+"elements in the array. If the [Callable] returns [code]false[/code] for one "
+"array element or more, this method returns [code]false[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].all(greater_than_5)) # Prints True (3/3 elements "
+"evaluate to `true`).\n"
+" print([4, 10, 4].all(greater_than_5)) # Prints False (1/3 elements "
+"evaluate to `true`).\n"
+" print([4, 4, 4].all(greater_than_5)) # Prints False (0/3 elements "
+"evaluate to `true`).\n"
+" print([].all(greater_than_5)) # Prints True (0/0 elements evaluate to "
+"`true`).\n"
+"\n"
+" print([6, 10, 6].all(func(number): return number > 5)) # Prints True. "
+"Same as the first line above, but using lambda function.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"See also [method any], [method filter], [method map] and [method reduce].\n"
+"[b]Note:[/b] Unlike relying on the size of an array returned by [method "
+"filter], this method will return as early as possible to improve performance "
+"(especially with large arrays).\n"
+"[b]Note:[/b] For an empty array, this method [url=https://en.wikipedia.org/"
+"wiki/Vacuous_truth]always[/url] returns [code]true[/code]."
+msgstr ""
+"Ruft das bereitgestellte [Callable] für jedes Element im Array auf und gibt "
+"[code]true[/code] zurück, wenn das [Callable] für [i]alle[/i] Elemente im "
+"Array [code]true[/code] zurückgibt. Wenn die [Callable] [code]false[/code] "
+"für ein oder mehrere Arrayelemente zurückgibt, gibt diese Methode "
+"[code]false[/code] zurück.\n"
+"Die Methode der Callable sollte einen [Variant]-Parameter (das aktuelle Array-"
+"Element) annehmen und einen booleschen Wert zurückgeben.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].all(greater_than_5)) # Gibt True aus (3/3 Elemente "
+"werden zu \"True\" ausgewertet).\n"
+" print([4, 10, 4].all(greater_than_5)) # Gibt False aus (1/3 Elemente "
+"werden zu \"True\" ausgewertet).\n"
+" print([4, 4, 4].all(greater_than_5)) # Gibt False aus (0/3 Elemente "
+"werden zu \"True\" ausgewertet).\n"
+" print([].all(greater_than_5)) # Gibt True aus (0/0 Elemente werden zu "
+"\"True\" ausgewertet).\n"
+"\n"
+" print([6, 10, 6].all(func(number): return number > 5)) # Gibt True aus. "
+"Wie die erste Zeile oben, aber mit Lambda-Funktion.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"Siehe auch [method any], [method filter], [method map] und [method reduce].\n"
+"[b]Hinweis:[/b] Im Gegensatz zu [method filter], die sich auf die Größe eines "
+"Arrays verlässt, kehrt diese Methode so früh wie möglich zurück, um die "
+"Leistung zu verbessern (insbesondere bei großen Arrays).\n"
+"[b]Hinweis:[/b] Für ein leeres Array gibt diese Methode [url=https://en."
+"wikipedia.org/wiki/Vacuous_truth]immer[/url] [code]true[/code] zurück."
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns "
+"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]one or "
+"more[/i] elements in the array. If the [Callable] returns [code]false[/code] "
+"for all elements in the array, this method returns [code]false[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].any(greater_than_5)) # Prints True (3 elements evaluate "
+"to `true`).\n"
+" print([4, 10, 4].any(greater_than_5)) # Prints True (1 elements evaluate "
+"to `true`).\n"
+" print([4, 4, 4].any(greater_than_5)) # Prints False (0 elements evaluate "
+"to `true`).\n"
+" print([].any(greater_than_5)) # Prints False (0 elements evaluate to "
+"`true`).\n"
+"\n"
+" print([6, 10, 6].any(func(number): return number > 5)) # Prints True. "
+"Same as the first line above, but using lambda function.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"See also [method all], [method filter], [method map] and [method reduce].\n"
+"[b]Note:[/b] Unlike relying on the size of an array returned by [method "
+"filter], this method will return as early as possible to improve performance "
+"(especially with large arrays).\n"
+"[b]Note:[/b] For an empty array, this method always returns [code]false[/"
+"code]."
+msgstr ""
+"Ruft das bereitgestellte [Callable] für jedes Element im Array auf und gibt "
+"[code]true[/code] zurück, wenn das [Callable] für [i]ein oder mehrere[/i] "
+"Elemente im Array [code]true[/code] zurückgibt. Wenn das [Callable] für alle "
+"Elemente im Array [code]false[/code] zurückgibt, gibt diese Methode "
+"[code]false[/code] zurück.\n"
+"Die Methode der Callable sollte einen [Variant]-Parameter (das aktuelle Array-"
+"Element) annehmen und einen booleschen Wert zurückgeben.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].any(greater_than_5)) # Gibt True aus (3 Elemente werden "
+"zu \"True\" ausgewertet).\n"
+" print([4, 10, 4].any(greater_than_5)) # Gibt True aus (1 Element wird zu "
+"\"True\" ausgewertet).\n"
+" print([4, 4, 4].any(greater_than_5)) # Gibt False aus (0 Elemente werden "
+"zu \"True\" ausgewertet).\n"
+" print([].any(greater_than_5)) # Gibt False aus (0 Elemente werden zu "
+"\"True\" ausgewertet).\n"
+"\n"
+" print([6, 10, 6].any(func(number): return number > 5)) # Gibt True aus. "
+"Wie in der ersten Zeile oben, aber mit Lambda-Funktion.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"Siehe auch [method all], [method filter], [method map] und [method reduce].\n"
+"[b]Hinweis:[/b] Im Gegensatz zu [method filter], die sich auf die Größe eines "
+"Arrays verlässt, kehrt diese Methode so früh wie möglich zurück, um die "
+"Leistung zu verbessern (insbesondere bei großen Arrays).\n"
+"[b]Hinweis:[/b] Bei einem leeren Array gibt diese Methode immer [code]false[/"
+"code] zurück."
+
+msgid ""
+"Appends an element at the end of the array (alias of [method push_back])."
+msgstr "Hängt ein Element am Ende des Arrays an (Alias für [method push_back])."
+
+msgid ""
+"Appends another array at the end of this array.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+msgstr ""
+"Hängt ein weiteres Array an das Ende dieses Array an.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+
+msgid ""
+"Assigns elements of another [param array] into the array. Resizes the array "
+"to match [param array]. Performs type conversions if the array is typed."
+msgstr ""
+"Weist Elemente eines anderen [param array] dem Array zu. Ändert die Größe des "
+"Arrays so, dass es mit [param array] übereinstimmt. Führt Typkonvertierungen "
+"durch, wenn das Array typisiert ist."
+
+msgid ""
+"Returns the last element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[-1]"
+"[/code]. If the array is empty, accessing by index will pause project "
+"execution when running from the editor."
+msgstr ""
+"Gibt das letzte Element des Arrays zurück. Gibt einen Fehler aus und liefert "
+"[code]null[/code], wenn das Array leer ist.\n"
+"[b]Hinweis:[/b] Der Aufruf dieser Funktion ist nicht dasselbe wie das "
+"Schreiben von [code]array[-1][/code]. Wenn das Array leer ist, führt der "
+"Zugriff über den Index zu einer Unterbrechung der Projektausführung, wenn es "
+"vom Editor aus ausgeführt wird."
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search. Optionally, a [param before] specifier can be passed. If [code]false[/"
+"code], the returned index comes after all existing entries of the value in "
+"the array.\n"
+"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+"Findet den Index eines vorhandenen Wertes (oder den Einfügeindex, der die "
+"Sortierreihenfolge beibehält, wenn der Wert noch nicht im Array vorhanden "
+"ist) mit Hilfe der binären Suche. Optional kann ein [param before]-"
+"Spezifizierer übergeben werden. Wenn [code]false[/code], kommt der "
+"zurückgegebene Index nach allen vorhandenen Einträgen des Wertes im Array.\n"
+"[b]Hinweis:[/b] Der Aufruf der [Methode bsearch] auf ein unsortiertes Array "
+"führt zu unerwartetem Verhalten."
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search and a custom comparison method. Optionally, a [param before] specifier "
+"can be passed. If [code]false[/code], the returned index comes after all "
+"existing entries of the value in the array. The custom method receives two "
+"arguments (an element from the array and the value searched for) and must "
+"return [code]true[/code] if the first argument is less than the second, and "
+"return [code]false[/code] otherwise.\n"
+"[b]Note:[/b] Calling [method bsearch_custom] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+"Findet den Index eines vorhandenen Wertes (oder den Einfügeindex, der die "
+"Sortierreihenfolge beibehält, wenn der Wert noch nicht im Array vorhanden "
+"ist) unter Verwendung der binären Suche und einer benutzerdefinierten "
+"Vergleichsmethode. Optional kann ein [param before]-Spezifizierer übergeben "
+"werden. Wenn [code]false[/code], kommt der zurückgegebene Index nach allen "
+"vorhandenen Einträgen des Wertes im Array. Die benutzerdefinierte Methode "
+"erhält zwei Argumente (ein Element aus dem Array und den gesuchten Wert) und "
+"muss [code]true[/code] zurückgeben, wenn das erste Argument kleiner als das "
+"zweite ist, und ansonsten [code]false[/code].\n"
+"[b]Hinweis:[/b] Der Aufruf der [Methode bsearch_custom] auf ein unsortiertes "
+"Array führt zu unerwartetem Verhalten."
+
+msgid ""
+"Clears the array. This is equivalent to using [method resize] with a size of "
+"[code]0[/code]."
+msgstr ""
+"Löscht das Array. Dies entspricht der Verwendung von [method resize] mit "
+"einer Größe von [code]0[/code]."
+
+msgid "Returns the number of times an element is in the array."
+msgstr "Gibt die Anzahl der Vorkommen eines Elements im Array zurück."
+
+msgid ""
+"Returns a copy of the array.\n"
+"If [param deep] is [code]true[/code], a deep copy is performed: all nested "
+"arrays and dictionaries are duplicated and will not be shared with the "
+"original array. If [code]false[/code], a shallow copy is made and references "
+"to the original nested arrays and dictionaries are kept, so that modifying a "
+"sub-array or dictionary in the copy will also impact those referenced in the "
+"source array. Note that any [Object]-derived elements will be shallow copied "
+"regardless of the [param deep] setting."
+msgstr ""
+"Gibt eine Kopie des Arrays zurück.\n"
+"Wenn [param deep] [code]true[/code] ist, wird eine tiefe Kopie durchgeführt: "
+"alle verschachtelten Arrays und Dictionaries werden dupliziert und werden "
+"nicht mit dem ursprünglichen Array geteilt. Ist [code]false[/code], wird eine "
+"flache Kopie erstellt und Referenzen auf die ursprünglichen verschachtelten "
+"Arrays und Dictionaries werden beibehalten, so dass die Änderung eines Sub-"
+"Arrays oder Dictionaries in der Kopie auch Auswirkungen auf die im Quell-"
+"Array referenzierten hat. Beachten Sie, dass alle [Object]-abgeleiteten "
+"Elemente unabhängig von der [param deep]-Einstellung oberflächlich kopiert "
+"werden."
+
+msgid ""
+"Removes the first occurrence of a value from the array. If the value does not "
+"exist in the array, nothing happens. To remove an element by index, use "
+"[method remove_at] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] Do not erase entries while iterating over the array."
+msgstr ""
+"Entfernt das erste Vorkommen eines Wertes aus dem Array. Wenn der Wert nicht "
+"im Array vorhanden ist, passiert nichts. Um ein Element nach Index zu "
+"entfernen, verwenden Sie stattdessen [method remove_at].\n"
+"[b]Hinweis:[/b] Diese Methode wirkt an Ort und Stelle und gibt kein "
+"verändertes Array zurück.\n"
+"[b]Hinweis:[/b] Bei großen Arrays ist diese Methode langsamer, wenn das "
+"entfernte Element nahe am Anfang des Arrays liegt (Index 0). Das liegt daran, "
+"dass alle Elemente, die nach dem entfernten Element liegen, neu indiziert "
+"werden müssen.\n"
+"[b]Hinweis:[/b] Löschen Sie keine Einträge, während Sie über das Array "
+"iterieren."
+
+msgid ""
+"Assigns the given value to all elements in the array. This can typically be "
+"used together with [method resize] to create an array with a given size and "
+"initialized elements:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array = []\n"
+"array.resize(10)\n"
+"array.fill(0) # Initialize the 10 elements to 0.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array();\n"
+"array.Resize(10);\n"
+"array.Fill(0); // Initialize the 10 elements to 0.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] If [param value] is of a reference type ([Object]-derived, "
+"[Array], [Dictionary], etc.) then the array is filled with the references to "
+"the same object, i.e. no duplicates are created."
+msgstr ""
+"Weist allen Elementen des Arrays den angegebenen Wert zu. Dies kann "
+"normalerweise zusammen mit [method resize] verwendet werden, um ein Array mit "
+"einer bestimmten Größe und initialisierten Elementen zu erstellen:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array = []\n"
+"array.resize(10)\n"
+"array.fill(0) # Initialisiere die 10 Elemente auf 0.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array();\n"
+"array.Resize(10);\n"
+"array.Fill(0); // Initialisiere die 10 Elemente auf 0.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Wenn [param value] von einem Referenztyp ([Object]-derived, "
+"[Array], [Dictionary], etc.) ist, dann wird das Array mit den Referenzen auf "
+"dasselbe Objekt gefüllt, d.h. es werden keine Duplikate erstellt."
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns a new "
+"array with the elements for which the method returned [code]true[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].filter(remove_1)) # Prints [2, 3].\n"
+" print([1, 2, 3].filter(func(number): return number != 1)) # Same as "
+"above, but using lambda function.\n"
+"\n"
+"func remove_1(number):\n"
+" return number != 1\n"
+"[/codeblock]\n"
+"See also [method any], [method all], [method map] and [method reduce]."
+msgstr ""
+"Ruft das angegebene [Callable] für jedes Element im Array auf und gibt ein "
+"neues Array mit den Elementen zurück, für ignore-duplicate:die die Methode "
+"[code]true[/code] zurückgegeben hat.\n"
+"Die Methode des Callables sollte einen [Variant]-Parameter (das aktuelle "
+"Array-Element) annehmen und einen booleschen Wert zurückgeben.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].filter(remove_1)) # Prints [2, 3].\n"
+" print([1, 2, 3].filter(func(number): return number != 1)) # Wie oben, "
+"aber mit Lambda-Funktion.\n"
+"\n"
+"func remove_1(number):\n"
+" return number != 1\n"
+"[/codeblock]\n"
+"Siehe auch [method any], [method all], [method map] und [method reduce]."
+
+msgid ""
+"Searches the array for a value and returns its index or [code]-1[/code] if "
+"not found. Optionally, the initial search index can be passed."
+msgstr ""
+"Durchsucht das Array nach einem Wert und gibt dessen Index oder [code]-1[/"
+"code] zurück, wenn er nicht gefunden wurde. Optional kann auch der "
+"anfängliche Suchindex übergeben werden."
+
+msgid ""
+"Returns the first element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[0][/"
+"code]. If the array is empty, accessing by index will pause project execution "
+"when running from the editor."
+msgstr ""
+"Gibt das erste Element des Arrays zurück. Gibt einen Fehler aus und liefert "
+"[code]null[/code], wenn das Array leer ist.\n"
+"[b]Hinweis:[/b] Der Aufruf dieser Funktion ist nicht dasselbe wie das "
+"Schreiben von [code]array[0][/code]. Wenn das Array leer ist, führt der "
+"Zugriff über den Index zu einer Unterbrechung der Projektausführung, wenn es "
+"vom Editor aus ausgeführt wird."
+
+msgid ""
+"Returns the [enum Variant.Type] constant for a typed array. If the [Array] is "
+"not typed, returns [constant TYPE_NIL]."
+msgstr ""
+"Gibt die Konstante [enum Variant.Type] für ein typisiertes Array zurück. Wenn "
+"das [Array] nicht typisiert ist, wird [Konstante TYPE_NIL] zurückgegeben."
+
+msgid "Returns a class name of a typed [Array] of type [constant TYPE_OBJECT]."
+msgstr ""
+"Gibt einen Klassennamen eines typisierten [Array] vom Typ [Konstante "
+"TYPE_OBJECT] zurück."
+
+msgid ""
+"Returns [code]true[/code] if the array contains the given value.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print([\"inside\", 7].has(\"inside\")) # True\n"
+"print([\"inside\", 7].has(\"outside\")) # False\n"
+"print([\"inside\", 7].has(7)) # True\n"
+"print([\"inside\", 7].has(\"7\")) # False\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var arr = new Godot.Collections.Array { \"inside\", 7 };\n"
+"// has is renamed to Contains\n"
+"GD.Print(arr.Contains(\"inside\")); // True\n"
+"GD.Print(arr.Contains(\"outside\")); // False\n"
+"GD.Print(arr.Contains(7)); // True\n"
+"GD.Print(arr.Contains(\"7\")); // False\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
+"follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Will evaluate to `true`.\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" print(\"Contains!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// As there is no \"in\" keyword in C#, you have to use Contains\n"
+"var array = new Godot.Collections.Array { 2, 4, 6, 8 };\n"
+"if (array.Contains(2))\n"
+"{\n"
+" GD.Print(\"Contains!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Array den angegebenen Wert enthält.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print([\"inside\", 7].has(\"inside\")) # True\n"
+"print([\"inside\", 7].has(\"outside\")) # False\n"
+"print([\"inside\", 7].has(7)) # True\n"
+"print([\"inside\", 7].has(\"7\")) # False\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var arr = new Godot.Collections.Array { \"inside\", 7 };\n"
+"// hat wird umbenannt in Enthält\n"
+"GD.Print(arr.Contains(\"inside\")); // True\n"
+"GD.Print(arr.Contains(\"outside\")); // False\n"
+"GD.Print(arr.Contains(7)); // True\n"
+"GD.Print(arr.Contains(\"7\")); // False\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Hinweis:[/b] Dies entspricht der Verwendung des Operators [code]in[/code] "
+"wie folgt:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Wird zu `true` ausgewertet.\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" print(\"Enthält!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Da es in C# kein \"in\"-Schlüsselwort gibt, müssen Sie Contains verwenden\n"
+"var array = new Godot.Collections.Array { 2, 4, 6, 8 };\n"
+"if (array.Contains(2))\n"
+"{\n"
+" GD.Print(\"Enthält!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a hashed 32-bit integer value representing the array and its "
+"contents.\n"
+"[b]Note:[/b] [Array]s with equal content will always produce identical hash "
+"values. However, the reverse is not true. Returning identical hash values "
+"does [i]not[/i] imply the arrays are equal, because different arrays can have "
+"identical hash values due to hash collisions."
+msgstr ""
+"Gibt einen gehashten 32-Bit-Ganzzahlwert zurück, der das Array und seinen "
+"Inhalt darstellt.\n"
+"[b]Hinweis:[/b] [Array]s mit gleichem Inhalt erzeugen immer identische "
+"Hashwerte. Das Gegenteil ist jedoch nicht der Fall. Die Rückgabe von "
+"identischen Hash-Werten bedeutet [i]nicht[/i], dass die Arrays gleich sind, "
+"da verschiedene Arrays aufgrund von Hash-Kollisionen identische Hash-Werte "
+"haben können."
+
+msgid "Returns [code]true[/code] if the array is empty."
+msgstr "Gibt [code]true[/code] zurück falls das Array leer ist."
+
+msgid ""
+"Returns [code]true[/code] if the array is read-only. See [method "
+"make_read_only]. Arrays are automatically read-only if declared with "
+"[code]const[/code] keyword."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Array schreibgeschützt ist. Siehe "
+"[Methode make_read_only]. Arrays sind automatisch schreibgeschützt, wenn sie "
+"mit dem Schlüsselwort [code]const[/code] deklariert sind."
+
+msgid ""
+"Returns [code]true[/code] if the array is typed. Typed arrays can only store "
+"elements of their associated type and provide type safety for the [code][][/"
+"code] operator. Methods of typed array still return [Variant]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Array typisiert ist. Typisierte "
+"Arrays können nur Elemente ihres zugehörigen Typs speichern und bieten "
+"Typsicherheit für den [code][][/code]-Operator. Methoden von typisierten "
+"Arrays geben immer noch [Variant] zurück."
+
+msgid ""
+"Makes the array read-only, i.e. disabled modifying of the array's elements. "
+"Does not apply to nested content, e.g. content of nested arrays."
+msgstr ""
+"Macht das Array schreibgeschützt, d.h. die Elemente des Arrays können nicht "
+"geändert werden. Gilt nicht für verschachtelte Inhalte, z. B. Inhalte von "
+"verschachtelten Arrays."
+
+msgid ""
+"Calls the provided [Callable] for each element in the array and returns a new "
+"array filled with values returned by the method.\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and can return any [Variant].\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].map(negate)) # Prints [-1, -2, -3].\n"
+" print([1, 2, 3].map(func(number): return -number)) # Same as above, but "
+"using lambda function.\n"
+"\n"
+"func negate(number):\n"
+" return -number\n"
+"[/codeblock]\n"
+"See also [method filter], [method reduce], [method any] and [method all]."
+msgstr ""
+"Ruft das angegebene [Callable] für jedes Element im Array auf und gibt ein "
+"neues Array zurück, das mit den von der Methode zurückgegebenen Werten "
+"gefüllt ist.\n"
+"Die Callable-Methode sollte einen [Variant]-Parameter (das aktuelle Array-"
+"Element) annehmen und kann jede [Variant] zurückgeben.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].map(negate)) # Prints [-1, -2, -3].\n"
+" print([1, 2, 3].map(func(number): return -number)) # Wie oben, aber mit "
+"Lambda-Funktion.\n"
+"\n"
+"func negate(number):\n"
+" return -number\n"
+"[/codeblock]\n"
+"Siehe auch [method filter], [method reduce], [method any] und [method all]."
+
+msgid ""
+"Returns the maximum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned.\n"
+"To find the maximum value using a custom comparator, you can use [method "
+"reduce]. In this example every array element is checked and the first maximum "
+"value is returned:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), "
+"Vector2(0, 2)]\n"
+" # In this example we compare the lengths.\n"
+" print(arr.reduce(func(max, val): return val if is_length_greater(val, "
+"max) else max))\n"
+"\n"
+"func is_length_greater(a, b):\n"
+" return a.length() > b.length()\n"
+"[/codeblock]"
+msgstr ""
+"Gibt den maximalen Wert des Arrays zurück, wenn alle Elemente von "
+"vergleichbarem Typ sind. Wenn die Elemente nicht verglichen werden können, "
+"wird [code]null[/code] zurückgegeben.\n"
+"Um den Maximalwert mit einem eigenen Vergleicher zu ermitteln, können Sie "
+"[method reduce] verwenden. In diesem Beispiel wird jedes Array-Element "
+"geprüft und der erste Maximalwert zurückgegeben:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), "
+"Vector2(0, 2)]\n"
+" # In diesem Beispiel vergleichen wir die Längen.\n"
+" print(arr.reduce(func(max, val): return val if is_length_greater(val, "
+"max) else max))\n"
+"\n"
+"func is_length_greater(a, b):\n"
+" return a.length() > b.length()\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned.\n"
+"See also [method max] for an example of using a custom comparator."
+msgstr ""
+"Gibt den im Array enthaltenen Mindestwert zurück, wenn alle Elemente von "
+"vergleichbarem Typ sind. Wenn die Elemente nicht verglichen werden können, "
+"wird [code]null[/code] zurückgegeben.\n"
+"Siehe auch [method max] für ein Beispiel zur Verwendung eines eigenen "
+"Komparators."
+
+msgid ""
+"Returns a random value from the target array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # Prints either of the four numbers.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // Prints either of the four numbers.\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt einen Zufallswert aus dem Ziel-Array zurück. Gibt einen Fehler aus und "
+"liefert [code]null[/code], wenn das Array leer ist.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # Gibt eine der vier Zahlen aus.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // Gibt eine der vier Zahlen aus.\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Removes and returns the element of the array at index [param position]. If "
+"negative, [param position] is considered relative to the end of the array. "
+"Leaves the array untouched and returns [code]null[/code] if the array is "
+"empty or if it's accessed out of bounds. An error message is printed when the "
+"array is accessed out of bounds, but not when the array is empty.\n"
+"[b]Note:[/b] On large arrays, this method can be slower than [method "
+"pop_back] as it will reindex the array's elements that are located after the "
+"removed element. The larger the array and the lower the index of the removed "
+"element, the slower [method pop_at] will be."
+msgstr ""
+"Entfernt das Element des Arrays am Index [param position] und gibt es zurück. "
+"Falls negativ, wird [param position] relativ zum Ende des Arrays betrachtet. "
+"Lässt das Array unangetastet und gibt [code]null[/code] zurück, wenn das "
+"Array leer ist oder wenn der Zugriff außerhalb der Grenzen erfolgt. Es wird "
+"eine Fehlermeldung ausgegeben, wenn der Zugriff auf das Array außerhalb der "
+"Grenzen erfolgt, aber nicht, wenn das Array leer ist.\n"
+"[b]Hinweis:[/b] Bei großen Arrays kann diese Methode langsamer sein als "
+"[method pop_back], da sie die Elemente des Arrays, die sich nach dem "
+"entfernten Element befinden, neu indizieren wird. Je größer das Array und je "
+"niedriger der Index des entfernten Elements ist, desto langsamer wird die "
+"[method pop_at] sein."
+
+msgid ""
+"Removes and returns the last element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_front]."
+msgstr ""
+"Entfernt und gibt das letzte Element des Arrays zurück. Gibt [code]null[/"
+"code] zurück, wenn das Array leer ist, ohne eine Fehlermeldung auszugeben. "
+"Siehe auch [Methode pop_front]."
+
+msgid ""
+"Removes and returns the first element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"pop_back] as it will reindex all the array's elements every time it's called. "
+"The larger the array, the slower [method pop_front] will be."
+msgstr ""
+"Entfernt und gibt das erste Element des Arrays zurück. Gibt [code]null[/code] "
+"zurück, wenn das Array leer ist, ohne eine Fehlermeldung auszugeben. Siehe "
+"auch [Methode pop_back].\n"
+"[b]Hinweis:[/b] Bei großen Arrays ist diese Methode viel langsamer als "
+"[method pop_back], da sie bei jedem Aufruf alle Elemente des Arrays neu "
+"indiziert. Je größer das Array, desto langsamer ist [method pop_front]."
+
+msgid ""
+"Adds an element at the beginning of the array. See also [method push_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"push_back] as it will reindex all the array's elements every time it's "
+"called. The larger the array, the slower [method push_front] will be."
+msgstr ""
+"Fügt ein Element am Anfang des Arrays hinzu. Siehe auch [Methode push_back].\n"
+"[b]Hinweis:[/b] Bei großen Arrays ist diese Methode viel langsamer als "
+"[method push_back], da sie bei jedem Aufruf alle Elemente des Arrays neu "
+"indiziert. Je größer das Array, desto langsamer ist [method push_front]."
+
+msgid ""
+"Calls the provided [Callable] for each element in array and accumulates the "
+"result in [param accum].\n"
+"The callable's method takes two arguments: the current value of [param accum] "
+"and the current array element. If [param accum] is [code]null[/code] (default "
+"value), the iteration will start from the second element, with the first one "
+"used as initial value of [param accum].\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].reduce(sum, 10)) # Prints 16.\n"
+" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10)) # "
+"Same as above, but using lambda function.\n"
+"\n"
+"func sum(accum, number):\n"
+" return accum + number\n"
+"[/codeblock]\n"
+"See also [method map], [method filter], [method any] and [method all]."
+msgstr ""
+"Ruft das bereitgestellte [Callable] für jedes Element im Array auf und "
+"akkumuliert das Ergebnis in [param accum].\n"
+"Die Methode des Callables nimmt zwei Argumente entgegen: den aktuellen Wert "
+"von [param accum] und das aktuelle Array-Element. Wenn [param accum] "
+"[code]null[/code] ist (Standardwert), beginnt die Iteration mit dem zweiten "
+"Element, wobei das erste Element als Anfangswert von [param accum] verwendet "
+"wird.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].reduce(sum, 10)) # Prints 16.\n"
+" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10)) # "
+"Wie oben, aber mit Lambda-Funktion.\n"
+"\n"
+"func sum(accum, number):\n"
+" return accum + number\n"
+"[/codeblock]\n"
+"Siehe auch [method map], [method filter], [method any] und [method all]."
+
+msgid ""
+"Removes an element from the array by index. If the index does not exist in "
+"the array, nothing happens. To remove an element by searching for its value, "
+"use [method erase] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] [param position] cannot be negative. To remove an element "
+"relative to the end of the array, use [code]arr.remove_at(arr.size() - (i + "
+"1))[/code]. To remove the last element from the array without returning the "
+"value, use [code]arr.resize(arr.size() - 1)[/code]."
+msgstr ""
+"Entfernt ein Element aus dem Array nach Index. Wenn der Index im Array nicht "
+"vorhanden ist, passiert nichts. Um ein Element durch die Suche nach seinem "
+"Wert zu entfernen, verwenden Sie stattdessen [method erase].\n"
+"[b]Hinweis:[/b] Diese Methode wirkt an Ort und Stelle und gibt kein "
+"verändertes Array zurück.\n"
+"[b]Hinweis:[/b] Bei großen Arrays ist diese Methode langsamer, wenn das "
+"entfernte Element nahe am Anfang des Arrays liegt (Index 0). Das liegt daran, "
+"dass alle Elemente, die nach dem entfernten Element liegen, neu indiziert "
+"werden müssen.\n"
+"[b]Hinweis:[/b] [param position] kann nicht negativ sein. Um ein Element "
+"relativ zum Ende des Arrays zu entfernen, verwenden Sie [code]arr."
+"remove_at(arr.size() - (i + 1))[/code]. Um das letzte Element aus dem Array "
+"zu entfernen, ohne den Wert zurückzugeben, verwenden Sie [code]arr.resize(arr."
+"size() - 1)[/code]."
+
+msgid ""
+"Resizes the array to contain a different number of elements. If the array "
+"size is smaller, elements are cleared, if bigger, new elements are "
+"[code]null[/code]. Returns [constant OK] on success, or one of the other "
+"[enum Error] values if the operation failed.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array."
+msgstr ""
+"Ändert die Größe des Arrays, damit es eine andere Anzahl von Elementen "
+"enthält. Ist die Größe des Arrays kleiner, werden die Elemente gelöscht, ist "
+"sie größer, sind die neuen Elemente [code]null[/code]. Gibt bei Erfolg "
+"[Konstante OK] zurück, oder einen der anderen [enum Error]-Werte, wenn der "
+"Vorgang fehlgeschlagen ist.\n"
+"[b]Hinweis:[/b] Diese Methode arbeitet an Ort und Stelle und gibt kein "
+"verändertes Array zurück."
+
+msgid "Reverses the order of the elements in the array."
+msgstr "Kehrt die Reihenfolge der Elemente des Arrays um."
+
+msgid "Returns the number of elements in the array."
+msgstr "Gibt die Nummer von Elementen innerhalb eines Arrays wieder."
+
+msgid ""
+"Returns the slice of the [Array], from [param begin] (inclusive) to [param "
+"end] (exclusive), as a new [Array].\n"
+"The absolute value of [param begin] and [param end] will be clamped to the "
+"array size, so the default value for [param end] makes it slice to the size "
+"of the array by default (i.e. [code]arr.slice(1)[/code] is a shorthand for "
+"[code]arr.slice(1, arr.size())[/code]).\n"
+"If either [param begin] or [param end] are negative, they will be relative to "
+"the end of the array (i.e. [code]arr.slice(0, -2)[/code] is a shorthand for "
+"[code]arr.slice(0, arr.size() - 2)[/code]).\n"
+"If specified, [param step] is the relative index between source elements. It "
+"can be negative, then [param begin] must be higher than [param end]. For "
+"example, [code][0, 1, 2, 3, 4, 5].slice(5, 1, -2)[/code] returns [code][5, 3]"
+"[/code].\n"
+"If [param deep] is true, each element will be copied by value rather than by "
+"reference.\n"
+"[b]Note:[/b] To include the first element when [param step] is negative, use "
+"[code]arr.slice(begin, -arr.size() - 1, step)[/code] (i.e. [code][0, 1, 2]."
+"slice(1, -4, -1)[/code] returns [code][1, 0][/code])."
+msgstr ""
+"Gibt das Teilstück des [Array], von [param begin] (einschließlich) bis [param "
+"end] (ausschließlich), als neues [Array] zurück.\n"
+"Der absolute Wert von [param begin] und [param end] wird auf die Array-Größe "
+"geklemmt, so dass der Standardwert für [param end] das Array standardmäßig "
+"auf die Größe des Arrays aufteilt (d.h. [code]arr.slice(1)[/code] ist eine "
+"Abkürzung für [code]arr.slice(1, arr.size())[/code]).\n"
+"Wenn entweder [param begin] oder [param end] negativ sind, beziehen sie sich "
+"auf das Ende des Arrays (d.h. [code]arr.slice(0, -2)[/code] ist eine "
+"Abkürzung für [code]arr.slice(0, arr.size() - 2)[/code]).\n"
+"Falls angegeben, ist [param step] der relative Index zwischen den "
+"Quellelementen. Er kann negativ sein, dann muss [param begin] höher als "
+"[param end] sein. Beispiel: [code][0, 1, 2, 3, 4, 5].slice(5, 1, -2)[/code] "
+"liefert [code][5, 3][/code].\n"
+"Wenn [param deep] true ist, wird jedes Element als Wert und nicht als "
+"Referenz kopiert.\n"
+"[b]Hinweis:[/b] Um das erste Element einzuschließen, wenn [param step] "
+"negativ ist, verwenden Sie [code]arr.slice(begin, -arr.size() - 1, step)[/"
+"code] (d.h. [code][0, 1, 2].slice(1, -4, -1)[/code] liefert [code][1, 0][/"
+"code])."
+
+msgid ""
+"Sorts the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method sort].\n"
+"[b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural "
+"order). This may lead to unexpected behavior when sorting an array of strings "
+"ending with a sequence of numbers. Consider the following example:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort()\n"
+"print(strings) # Prints [string1, string10, string11, string2]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var strings = new Godot.Collections.Array { \"string1\", \"string2\", "
+"\"string10\", \"string11\" };\n"
+"strings.Sort();\n"
+"GD.Print(strings); // Prints [string1, string10, string11, string2]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"To perform natural order sorting, you can use [method sort_custom] with "
+"[method String.naturalnocasecmp_to] as follows:\n"
+"[codeblock]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort_custom(func(a, b): return a.naturalnocasecmp_to(b) < 0)\n"
+"print(strings) # Prints [string1, string2, string10, string11]\n"
+"[/codeblock]"
+msgstr ""
+"Sortiert das Array.\n"
+"[b]Hinweis:[/b] Der verwendete Sortieralgorithmus ist nicht [url=https://en."
+"wikipedia.org/wiki/Sorting_algorithm#Stability]stabil[/url]. Das bedeutet, "
+"dass Werte, die als gleich angesehen werden, ihre Reihenfolge ändern können, "
+"wenn [method sort] verwendet wird.\n"
+"[b]Hinweis:[/b] Strings werden in alphabetischer Reihenfolge sortiert (im "
+"Gegensatz zur natürlichen Reihenfolge). Dies kann zu unerwartetem Verhalten "
+"führen, wenn ein Array von Strings sortiert wird, das mit einer Zahlenfolge "
+"endet. Betrachten Sie das folgende Beispiel:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort()\n"
+"print(strings) # Prints [string1, string10, string11, string2]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var strings = new Godot.Collections.Array { \"string1\", \"string2\", "
+"\"string10\", \"string11\" };\n"
+"strings.Sort();\n"
+"GD.Print(strings); // Gibt [string1, string10, string11, string2] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Um eine Sortierung in natürlicher Reihenfolge durchzuführen, können Sie "
+"[method sort_custom] mit [method String.naturalnocasecmp_to] wie folgt "
+"verwenden:\n"
+"[codeblock]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort_custom(func(a, b): return a.naturalnocasecmp_to(b) < 0)\n"
+"print(strings) # Gibt [string1, string2, string10, string11] zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Sorts the array using a custom method. The custom method receives two "
+"arguments (a pair of elements from the array) and must return either "
+"[code]true[/code] or [code]false[/code]. For two elements [code]a[/code] and "
+"[code]b[/code], if the given method returns [code]true[/code], element "
+"[code]b[/code] will be after element [code]a[/code] in the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method "
+"sort_custom].\n"
+"[b]Note:[/b] You cannot randomize the return value as the heapsort algorithm "
+"expects a deterministic result. Randomizing the return value will result in "
+"unexpected behavior.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func sort_ascending(a, b):\n"
+" if a[0] < b[0]:\n"
+" return true\n"
+" return false\n"
+"\n"
+"func _ready():\n"
+" var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
+" my_items.sort_custom(sort_ascending)\n"
+" print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].\n"
+"\n"
+" # Descending, lambda version.\n"
+" my_items.sort_custom(func(a, b): return a[0] > b[0])\n"
+" print(my_items) # Prints [[9, Rice], [5, Potato], [4, Tomato]].\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// There is no custom sort support for Godot.Collections.Array\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Sortiert das Array mit einer benutzerdefinierten Methode. Die "
+"benutzerdefinierte Methode erhält zwei Argumente (ein Paar von Elementen aus "
+"dem Array) und muss entweder [code]true[/code] oder [code]false[/code] "
+"zurückgeben. Für zwei Elemente [code]a[/code] und [code]b[/code], wenn die "
+"angegebene Methode [code]true[/code] zurückgibt, wird Element [code]b[/code] "
+"nach Element [code]a[/code] im Array stehen.\n"
+"[b]Hinweis:[/b] Der verwendete Sortieralgorithmus ist nicht [url=https://en."
+"wikipedia.org/wiki/Sorting_algorithm#Stability]stabil[/url]. Das bedeutet, "
+"dass Werte, die als gleich angesehen werden, ihre Reihenfolge ändern können, "
+"wenn die [method sort_custom] verwendet wird.\n"
+"[b]Hinweis:[/b] Sie können den Rückgabewert nicht randomisieren, da der "
+"Heapsort-Algorithmus ein deterministisches Ergebnis erwartet. Die "
+"Zufallsauswahl des Rückgabewerts führt zu unerwartetem Verhalten.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func sort_ascending(a, b):\n"
+" if a[0] < b[0]:\n"
+" return true\n"
+" return false\n"
+"\n"
+"func _ready():\n"
+" var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
+" my_items.sort_custom(sort_ascending)\n"
+" print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].\n"
+"\n"
+" # Absteigend, lambda-Version.\n"
+" my_items.sort_custom(func(a, b): return a[0] > b[0])\n"
+" print(my_items) # Prints [[9, Rice], [5, Potato], [4, Tomato]].\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Es gibt keine Unterstützung für benutzerdefinierte Sortierung für Godot."
+"Collections.Array\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Compares the left operand [Array] against the [param right] [Array]. Returns "
+"[code]true[/code] if the sizes or contents of the arrays are [i]not[/i] "
+"equal, [code]false[/code] otherwise."
+msgstr ""
+"Vergleicht den linken Operanden [Array] mit dem [param right] [Array]. Gibt "
+"[code]true[/code] zurück, wenn die Größen oder Inhalte der Arrays [i]nicht[/"
+"i] gleich sind, andernfalls [code]false[/code]."
+
+msgid ""
+"Concatenates two [Array]s together, with the [param right] [Array] being "
+"added to the end of the [Array] specified in the left operand. For example, "
+"[code][1, 2] + [3, 4][/code] results in [code][1, 2, 3, 4][/code]."
+msgstr ""
+"Verkettet zwei [Array]s miteinander, wobei das [param right] [Array] an das "
+"Ende des im linken Operanden angegebenen [Array] angefügt wird. Zum Beispiel: "
+"[code][1, 2] + [3, 4][/code] ergibt [code][1, 2, 3, 4][/code]."
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is less, or [code]false[/code] if the element is greater. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]false[/code] if the left operand [Array] has fewer elements, otherwise "
+"it returns [code]true[/code]."
+msgstr ""
+"Führt für jeden Index einen Vergleich zwischen dem linken Operanden [Array] "
+"und dem [param right] [Array] durch, wobei der höchste gemeinsame Index der "
+"beiden Arrays für diesen Vergleich berücksichtigt wird: Gibt [code]true[/"
+"code] beim ersten Auftreten eines Elements zurück, das kleiner ist, oder "
+"[code]false[/code], wenn das Element größer ist. Beachten Sie, dass diese "
+"Funktion je nach Art der gespeicherten Daten rekursiv sein kann. Wenn alle "
+"Elemente gleich sind, vergleicht sie die Länge der beiden Arrays und gibt "
+"[code]false[/code] zurück, wenn der linke Operand [Array] weniger Elemente "
+"hat, andernfalls gibt sie [code]true[/code] zurück."
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is less, or [code]false[/code] if the element is greater. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the left operand [Array] has the same number of elements "
+"or fewer, otherwise it returns [code]false[/code]."
+msgstr ""
+"Führt für jeden Index einen Vergleich zwischen dem linken Operanden [Array] "
+"und dem [param right] [Array] durch, wobei der höchste gemeinsame Index der "
+"beiden Arrays für diesen Vergleich berücksichtigt wird: Gibt [code]true[/"
+"code] beim ersten Auftreten eines Elements zurück, das kleiner ist, oder "
+"[code]false[/code], wenn das Element größer ist. Beachten Sie, dass diese "
+"Funktion je nach Art der gespeicherten Daten rekursiv sein kann. Wenn alle "
+"Elemente gleich sind, vergleicht sie die Länge der beiden Arrays und gibt "
+"[code]true[/code] zurück, wenn der linke Operand [Array] die gleiche Anzahl "
+"von Elementen oder weniger hat, andernfalls gibt sie [code]false[/code] "
+"zurück."
+
+msgid ""
+"Compares the left operand [Array] against the [param right] [Array]. Returns "
+"[code]true[/code] if the sizes and contents of the arrays are equal, "
+"[code]false[/code] otherwise."
+msgstr ""
+"Vergleicht den linken Operanden [Array] mit dem [param right] [Array]. Gibt "
+"[code]true[/code] zurück, wenn die Größen und Inhalte der Arrays gleich sind, "
+"andernfalls [code]false[/code]."
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is greater, or [code]false[/code] if the element is less. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the [param right] [Array] has more elements, otherwise "
+"it returns [code]false[/code]."
+msgstr ""
+"Führt für jeden Index einen Vergleich zwischen dem linken Operanden [Array] "
+"und dem [param right] [Array] durch, wobei der höchste gemeinsame Index der "
+"beiden Arrays für diesen Vergleich berücksichtigt wird: Gibt [code]true[/"
+"code] beim ersten Auftreten eines Elements zurück, das größer ist, oder "
+"[code]false[/code], wenn das Element kleiner ist. Beachten Sie, dass diese "
+"Funktion je nach Art der gespeicherten Daten rekursiv sein kann. Wenn alle "
+"Elemente gleich sind, vergleicht sie die Länge beider Arrays und gibt "
+"[code]true[/code] zurück, wenn das [param right] [Array] mehr Elemente hat, "
+"andernfalls gibt sie [code]false[/code] zurück."
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is greater, or [code]false[/code] if the element is less. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the [param right] [Array] has more or the same number of "
+"elements, otherwise it returns [code]false[/code]."
+msgstr ""
+"Führt für jeden Index einen Vergleich zwischen dem linken Operanden [Array] "
+"und dem [param right] [Array] durch, wobei der höchste gemeinsame Index der "
+"beiden Arrays für diesen Vergleich berücksichtigt wird: Gibt [code]true[/"
+"code] beim ersten Auftreten eines Elements zurück, das größer ist, oder "
+"[code]false[/code], wenn das Element kleiner ist. Beachten Sie, dass diese "
+"Funktion je nach Art der gespeicherten Daten rekursiv sein kann. Wenn alle "
+"Elemente gleich sind, vergleicht sie die Länge der beiden Arrays und gibt "
+"[code]true[/code] zurück, wenn das [param right] [Array] mehr oder die "
+"gleiche Anzahl von Elementen hat, andernfalls gibt sie [code]false[/code] "
+"zurück."
+
+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 ""
+"Gibt eine Referenz auf das Element vom Typ [Variante] an der angegebenen "
+"Stelle zurück. Arrays beginnen bei Index 0. [param index] kann ein Null- oder "
+"positiver Wert sein, um vom Anfang zu beginnen, oder ein negativer Wert, um "
+"vom Ende zu beginnen. Ein Array-Zugriff außerhalb der Grenzen führt zu einem "
+"Laufzeitfehler, der eine Fehlermeldung ausgibt und die Ausführung des "
+"Projekts unterbricht, wenn es vom Editor aus gestartet wird."
+
+msgid ""
+"[Mesh] type that provides utility for constructing a surface from arrays."
+msgstr ""
+"[Mesh]-Typ, der das Konstruieren einer Oberfläche aus Arrays ermöglicht."
+
+msgid ""
+"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as "
+"arrays.\n"
+"The most basic example is the creation of a single triangle:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var vertices = PackedVector3Array()\n"
+"vertices.push_back(Vector3(0, 1, 0))\n"
+"vertices.push_back(Vector3(1, 0, 0))\n"
+"vertices.push_back(Vector3(0, 0, 1))\n"
+"\n"
+"# Initialize the ArrayMesh.\n"
+"var arr_mesh = ArrayMesh.new()\n"
+"var arrays = []\n"
+"arrays.resize(Mesh.ARRAY_MAX)\n"
+"arrays[Mesh.ARRAY_VERTEX] = vertices\n"
+"\n"
+"# Create the Mesh.\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
+"var m = MeshInstance3D.new()\n"
+"m.mesh = arr_mesh\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var vertices = new Vector3[]\n"
+"{\n"
+" new Vector3(0, 1, 0),\n"
+" new Vector3(1, 0, 0),\n"
+" new Vector3(0, 0, 1),\n"
+"};\n"
+"\n"
+"// Initialize the ArrayMesh.\n"
+"var arrMesh = new ArrayMesh();\n"
+"var arrays = new Godot.Collections.Array();\n"
+"arrays.Resize((int)Mesh.ArrayType.Max);\n"
+"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n"
+"\n"
+"// Create the Mesh.\n"
+"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n"
+"var m = new MeshInstance3D();\n"
+"m.Mesh = arrMesh;\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The [MeshInstance3D] is ready to be added to the [SceneTree] to be shown.\n"
+"See also [ImmediateMesh], [MeshDataTool] and [SurfaceTool] for procedural "
+"geometry generation.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive "
+"modes."
+msgstr ""
+"Das [ArrayMesh] wird verwendet, um ein [Mesh] zu konstruieren, indem die "
+"Attribute als Arrays angegeben werden.\n"
+"Das einfachste Beispiel ist die Erstellung eines einzelnen Dreiecks:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var vertices = PackedVector3Array()\n"
+"vertices.push_back(Vector3(0, 1, 0))\n"
+"vertices.push_back(Vector3(1, 0, 0))\n"
+"vertices.push_back(Vector3(0, 0, 1))\n"
+"\n"
+"# Initialisiert das ArrayMesh.\n"
+"var arr_mesh = ArrayMesh.new()\n"
+"var arrays = []\n"
+"arrays.resize(Mesh.ARRAY_MAX)\n"
+"arrays[Mesh.ARRAY_VERTEX] = vertices\n"
+"\n"
+"# Erstellt das Mesh.\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
+"var m = MeshInstance3D.new()\n"
+"m.mesh = arr_mesh\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var vertices = new Vector3[]\n"
+"{\n"
+" new Vector3(0, 1, 0),\n"
+" new Vector3(1, 0, 0),\n"
+" new Vector3(0, 0, 1),\n"
+"};\n"
+"\n"
+"// Initialisiert das ArrayMesh.\n"
+"var arrMesh = new ArrayMesh();\n"
+"var arrays = new Godot.Collections.Array();\n"
+"arrays.Resize((int)Mesh.ArrayType.Max);\n"
+"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n"
+"\n"
+"// Erstellt das Mesh.\n"
+"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n"
+"var m = new MeshInstance3D();\n"
+"m.Mesh = arrMesh;\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Die [MeshInstance3D] ist bereit, dem darzustellenden [SceneTree] hinzugefügt "
+"zu werden.\n"
+"Siehe auch [ImmediateMesh], [MeshDataTool] und [SurfaceTool] für prozedurale "
+"Geometrieerzeugung.\n"
+"[b]Hinweis:[/b] Godot verwendet die [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]Wicklungsrichtung[/url] im Uhrzeigersinn für Vorderseiten "
+"von Dreiecks-Primitivmodi."
+
+msgid "Procedural geometry using the ArrayMesh"
+msgstr "Prozedurale Geometrie unter Verwendung des ArrayMesh"
+
+msgid ""
+"Adds name for a blend shape that will be added with [method "
+"add_surface_from_arrays]. Must be called before surface is added."
+msgstr ""
+"Fügt einen Namen für eine Mischform hinzu, die mit der [method "
+"add_surface_from_arrays] hinzugefügt wird. Muss aufgerufen werden, bevor die "
+"Oberfläche hinzugefügt wird."
+
+msgid ""
+"Creates a new surface. [method Mesh.get_surface_count] will become the "
+"[code]surf_idx[/code] for this new surface.\n"
+"Surfaces are created to be rendered using a [param primitive], which may be "
+"any of the values defined in [enum Mesh.PrimitiveType].\n"
+"The [param arrays] argument is an array of arrays. Each of the [constant Mesh."
+"ARRAY_MAX] elements contains an array with some of the mesh data for this "
+"surface as described by the corresponding member of [enum Mesh.ArrayType] or "
+"[code]null[/code] if it is not used by the surface. For example, "
+"[code]arrays[0][/code] is the array of vertices. That first vertex sub-array "
+"is always required; the others are optional. Adding an index array puts this "
+"surface into \"index mode\" where the vertex and other arrays become the "
+"sources of data and the index array defines the vertex order. All sub-arrays "
+"must have the same length as the vertex array (or be an exact multiple of the "
+"vertex array's length, when multiple elements of a sub-array correspond to a "
+"single vertex) or be empty, except for [constant Mesh.ARRAY_INDEX] if it is "
+"used.\n"
+"The [param blend_shapes] argument is an array of vertex data for each blend "
+"shape. Each element is an array of the same structure as [param arrays], but "
+"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL], and [constant "
+"Mesh.ARRAY_TANGENT] are set if and only if they are set in [param arrays] and "
+"all other entries are [code]null[/code].\n"
+"The [param lods] argument is a dictionary with [float] keys and "
+"[PackedInt32Array] values. Each entry in the dictionary represents a LOD "
+"level of the surface, where the value is the [constant Mesh.ARRAY_INDEX] "
+"array to use for the LOD level and the key is roughly proportional to the "
+"distance at which the LOD stats being used. I.e., increasing the key of a LOD "
+"also increases the distance that the objects has to be from the camera before "
+"the LOD is used.\n"
+"The [param flags] argument is the bitwise or of, as required: One value of "
+"[enum Mesh.ArrayCustomFormat] left shifted by "
+"[code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code] for each custom channel in use, "
+"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh."
+"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh."
+"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n"
+"[b]Note:[/b] When using indices, it is recommended to only use points, lines, "
+"or triangles."
+msgstr ""
+"Erzeugt eine neue Oberfläche. Die [Methode Mesh.get_surface_count] wird zur "
+"[code]surf_idx[/code] für diese neue Oberfläche.\n"
+"Oberflächen werden erstellt, um mit einem [param primitive] gerendert zu "
+"werden, der einer der in [enum Mesh.PrimitiveType] definierten Werte sein "
+"kann.\n"
+"Das Argument [param arrays] ist ein Array von Arrays. Jedes der [constant "
+"Mesh.ARRAY_MAX]-Elemente enthält ein Array mit einigen der Mesh-Daten für "
+"diese Oberfläche, wie sie durch das entsprechende Mitglied von [enum Mesh."
+"ArrayType] beschrieben werden, oder [code]null[/code], wenn es nicht von der "
+"Oberfläche verwendet wird. Zum Beispiel ist [code]arrays[0][/code] das Array "
+"der Scheitelpunkte. Das erste Scheitelpunkt-Sub-Array ist immer erforderlich; "
+"die anderen sind optional. Durch Hinzufügen eines Index-Arrays wird die "
+"Oberfläche in den \"Index-Modus\" versetzt, in dem die Scheitelpunkt- und "
+"anderen Arrays die Datenquellen sind und das Index-Array die Reihenfolge der "
+"Scheitelpunkte bestimmt. Alle Unterarrays müssen die gleiche Länge wie das "
+"Scheitelpunkt-Array haben (oder ein exaktes Vielfaches der Länge des "
+"Scheitelpunkt-Arrays sein, wenn mehrere Elemente eines Unterarrays einem "
+"einzelnen Scheitelpunkt entsprechen) oder leer sein, mit Ausnahme der "
+"[Konstante Mesh.ARRAY_INDEX], falls sie verwendet wird.\n"
+"Das Argument [param blend_shapes] ist ein Array mit Scheitelpunktdaten für "
+"jede Mischform. Jedes Element ist ein Array mit der gleichen Struktur wie "
+"[param arrays], aber die [Konstante Mesh.ARRAY_VERTEX], [Konstante Mesh."
+"ARRAY_NORMAL] und [Konstante Mesh.ARRAY_TANGENT] werden nur gesetzt, wenn sie "
+"in [param arrays] gesetzt sind und alle anderen Einträge [code]null[/code] "
+"sind.\n"
+"Das Argument [param lods] ist ein Wörterbuch mit [float]-Schlüsseln und "
+"[PackedInt32Array]-Werten. Jeder Eintrag im Dictionary repräsentiert eine LOD-"
+"Stufe der Oberfläche, wobei der Wert das [constant Mesh.ARRAY_INDEX]-Array "
+"ist, das für die LOD-Stufe verwendet werden soll, und der Schlüssel ungefähr "
+"proportional zur Entfernung ist, bei der die LOD-Statistiken verwendet "
+"werden. D.h., wenn man den Schlüssel einer LOD-Stufe erhöht, erhöht sich auch "
+"der Abstand, den die Objekte von der Kamera haben müssen, bevor die LOD-Stufe "
+"verwendet wird.\n"
+"Das Argument [param flags] ist das bitweise oder von, wie erforderlich: Ein "
+"Wert von [enum Mesh.ArrayCustomFormat] linksverschoben um "
+"[code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code] für jeden verwendeten "
+"benutzerdefinierten Kanal, [Konstante Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], "
+"[Konstante Mesh.ARRAY_FLAG_USE_8_BONE_WEIGHTS], oder [Konstante Mesh."
+"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n"
+"[b]Hinweis:[/b] Es wird empfohlen, bei der Verwendung von Indizes nur Punkte, "
+"Linien oder Dreiecke zu verwenden."
+
+msgid "Removes all blend shapes from this [ArrayMesh]."
+msgstr "Entfernt alle Mischformen aus diesem [ArrayMesh]."
+
+msgid "Removes all surfaces from this [ArrayMesh]."
+msgstr "Entfernt alle Flächen aus diesem [ArrayMesh]."
+
+msgid "Returns the number of blend shapes that the [ArrayMesh] holds."
+msgstr "Gibt die Anzahl der Blendformen zurück, die das [ArrayMesh] enthält."
+
+msgid "Returns the name of the blend shape at this index."
+msgstr "Gibt den Namen der Blendform an diesem Index zurück."
+
+msgid ""
+"Returns the index of the first surface with this name held within this "
+"[ArrayMesh]. If none are found, -1 is returned."
+msgstr ""
+"Gibt den Index der ersten Fläche mit diesem Namen in diesem [ArrayMesh] "
+"zurück. Wenn keine gefunden wird, wird -1 zurückgegeben."
+
+msgid ""
+"Returns the length in indices of the index array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+"Gibt die Länge des Index-Arrays in der angeforderten Oberfläche in Indizes "
+"zurück (siehe [method add_surface_from_arrays])."
+
+msgid ""
+"Returns the length in vertices of the vertex array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+"Gibt die Länge des Vertex-Arrays in der angeforderten Oberfläche in Vertices "
+"zurück (siehe [method add_surface_from_arrays])."
+
+msgid ""
+"Returns the format mask of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr ""
+"Gibt die Formatmaske der angeforderten Oberfläche zurück (siehe [method "
+"add_surface_from_arrays])."
+
+msgid "Gets the name assigned to this surface."
+msgstr "Ruft den dieser Fläche zugewiesenen Namen ab."
+
+msgid ""
+"Returns the primitive type of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr ""
+"Gibt den primitiven Typ der angeforderten Fläche zurück (siehe [method "
+"add_surface_from_arrays])."
+
+msgid "Sets a name for a given surface."
+msgstr "Legt einen Namen für eine bestimmte Oberfläche fest."
+
+msgid "Sets the blend shape mode to one of [enum Mesh.BlendShapeMode]."
+msgstr "Setzt den Blendform-Modus auf einen der [enum Mesh.BlendShapeMode]."
+
+msgid ""
+"Overrides the [AABB] with one defined by user for use with frustum culling. "
+"Especially useful to avoid unexpected culling when using a shader to offset "
+"vertices."
+msgstr ""
+"Überschreibt den [AABB] mit einem vom Benutzer definierten Wert für die "
+"Verwendung mit Frustum Culling. Besonders nützlich, um unerwartetes Culling "
+"zu vermeiden, wenn ein Shader zum Versetzen von Vertices verwendet wird."
+
+msgid ""
+"An optional mesh which is used for rendering shadows and can be used for the "
+"depth prepass. Can be used to increase performance of shadow rendering by "
+"using a mesh that only contains vertex position data (without normals, UVs, "
+"colors, etc.)."
+msgstr ""
+"Ein optionales Mesh, das für das Rendering von Schatten verwendet wird und "
+"für den Tiefenvorpass genutzt werden kann. Kann verwendet werden, um die "
+"Leistung des Schatten-Renderings zu erhöhen, indem ein Mesh verwendet wird, "
+"das nur Vertex-Positionsdaten enthält (ohne Normalen, UVs, Farben usw.)."
+
+msgid "3D polygon shape for use with occlusion culling in [OccluderInstance3D]."
+msgstr ""
+"3D-Polygonform für die Verwendung mit Okklusionsausblendung in "
+"[OccluderInstance3D]."
+
+msgid ""
+"[ArrayOccluder3D] stores an arbitrary 3D polygon shape that can be used by "
+"the engine's occlusion culling system. This is analogous to [ArrayMesh], but "
+"for occluders.\n"
+"See [OccluderInstance3D]'s documentation for instructions on setting up "
+"occlusion culling."
+msgstr ""
+"[ArrayOccluder3D] speichert eine beliebige 3D-Polygonform, die vom Okklusion-"
+"Culling-System der Engine verwendet werden kann. Dies ist analog zu "
+"[ArrayMesh], aber für Occluder.\n"
+"Siehe die Dokumentation von [OccluderInstance3D] für Anweisungen zum "
+"Einrichten der Verdeckungsausblendung."
+
+msgid "Occlusion culling"
+msgstr "Occlusion culling"
+
+msgid ""
+"Sets [member indices] and [member vertices], while updating the final "
+"occluder only once after both values are set."
+msgstr ""
+"Setzt [member indices] und [member vertices], wobei der endgültige Okkluder "
+"nur einmal aktualisiert wird, nachdem beide Werte gesetzt wurden."
+
+msgid ""
+"The occluder's index position. Indices determine which points from the "
+"[member vertices] array should be drawn, and in which order.\n"
+"[b]Note:[/b] The occluder is always updated after setting this value. If "
+"creating occluders procedurally, consider using [method set_arrays] instead "
+"to avoid updating the occluder twice when it's created."
+msgstr ""
+"Die Indexposition des Okkludierers. Die Indizes bestimmen, welche Punkte aus "
+"dem Array [member vertices] in welcher Reihenfolge gezeichnet werden sollen.\n"
+"[b]Hinweis:[/b] Der Okkluder wird nach dem Setzen dieses Wertes immer "
+"aktualisiert. Wenn man Okkluder prozedural erstellt, sollte man stattdessen "
+"[method set_arrays] verwenden, um zu vermeiden, dass der Okkluder bei seiner "
+"Erstellung zweimal aktualisiert wird."
+
+msgid ""
+"The occluder's vertex positions in local 3D coordinates.\n"
+"[b]Note:[/b] The occluder is always updated after setting this value. If "
+"creating occluders procedurally, consider using [method set_arrays] instead "
+"to avoid updating the occluder twice when it's created."
+msgstr ""
+"Die Scheitelpunktpositionen des Okkludierers in lokalen 3D-Koordinaten.\n"
+"[b]Hinweis:[/b] Der Okkluder wird nach dem Setzen dieses Wertes immer "
+"aktualisiert. Wenn man Okkluder prozedural erstellt, sollte man stattdessen "
+"[method set_arrays] verwenden, um zu vermeiden, dass der Okkluder bei seiner "
+"Erstellung zweimal aktualisiert wird."
+
+msgid "Using Containers"
+msgstr "Verwendung von Containern"
+
+msgid "Specifies the horizontal relative position of child controls."
+msgstr ""
+"Gibt die horizontale relative Position der untergeordneten Steuerelemente an."
+
+msgid "Specifies the vertical relative position of child controls."
+msgstr ""
+"Gibt die vertikale relative Position der untergeordneten Steuerelemente an."
+
+msgid ""
+"The aspect ratio to enforce on child controls. This is the width divided by "
+"the height. The ratio depends on the [member stretch_mode]."
+msgstr ""
+"Das Seitenverhältnis, das für untergeordnete Steuerelemente erzwungen werden "
+"soll. Dies ist die Breite geteilt durch die Höhe. Das Verhältnis hängt von "
+"dem [member stretch_mode] ab."
+
+msgid ""
+"The height of child controls is automatically adjusted based on the width of "
+"the container."
+msgstr ""
+"Die Höhe der untergeordneten Steuerelemente wird automatisch an die Breite "
+"des Containers angepasst."
+
+msgid ""
+"The width of child controls is automatically adjusted based on the height of "
+"the container."
+msgstr ""
+"Die Breite der untergeordneten Steuerelemente wird automatisch an die Höhe "
+"des Containers angepasst."
+
+msgid ""
+"The bounding rectangle of child controls is automatically adjusted to fit "
+"inside the container while keeping the aspect ratio."
+msgstr ""
+"Das Begrenzungsrechteck der untergeordneten Steuerelemente wird automatisch "
+"so angepasst, dass es in den Container passt, wobei das Seitenverhältnis "
+"beibehalten wird."
+
+msgid "Aligns child controls with the beginning (left or top) of the container."
+msgstr ""
+"Richtet untergeordnete Steuerelemente am Anfang (links oder oben) des "
+"Containers aus."
+
+msgid "Aligns child controls with the center of the container."
+msgstr "Richtet untergeordnete Steuerelemente an der Mitte des Containers aus."
+
+msgid "Aligns child controls with the end (right or bottom) of the container."
+msgstr ""
+"Richtet untergeordnete Steuerelemente am Ende (rechts oder unten) des "
+"Containers aus."
+
+msgid ""
+"An implementation of the A* algorithm, used to find the shortest path between "
+"two vertices on a connected graph in 2D space.\n"
+"See [AStar3D] for a more thorough explanation on how to use this class. "
+"[AStar2D] is a wrapper for [AStar3D] that enforces 2D coordinates."
+msgstr ""
+"Eine Implementierung des A*-Algorithmus, der verwendet wird, um den kürzesten "
+"Weg zwischen zwei Vertices in einem zusammenhängenden Graphen im 2D-Raum zu "
+"finden.\n"
+"Siehe [AStar3D] für eine genauere Erklärung, wie diese Klasse zu verwenden "
+"ist. [AStar2D] ist ein Wrapper für [AStar3D], der 2D-Koordinaten erzwingt."
+
+msgid ""
+"Adds a new point at the given position with the given identifier. The [param "
+"id] must be 0 or larger, and the [param weight_scale] must be 0.0 or "
+"greater.\n"
+"The [param weight_scale] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [param weight_scale]s to form a "
+"path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with "
+"weight_scale 4 and id 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 0), 4); // Adds the point (1, 0) with "
+"weight_scale 4 and id 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If there already exists a point for the given [param id], its position and "
+"weight scale are updated to the given values."
+msgstr ""
+"Fügt einen neuen Punkt an der angegebenen Position mit dem angegebenen "
+"Bezeichner hinzu. Der [param id] muss 0 oder größer sein, und der [param "
+"weight_scale] muss 0,0 oder größer sein.\n"
+"Der [param weight_scale] wird mit dem Ergebnis von [method _compute_cost] "
+"multipliziert, wenn die Gesamtkosten für die Reise über ein Segment von einem "
+"benachbarten Punkt zu diesem Punkt bestimmt werden. Unter sonst gleichen "
+"Bedingungen bevorzugt der Algorithmus also Punkte mit niedrigeren [param "
+"weight_scale]s, um einen Pfad zu bilden.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # Fügt den Punkt (1, 0) mit weight_scale "
+"4 und id 1 hinzu\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 0), 4); // Fügt den Punkt (1, 0) mit "
+"weight_scale 4 und id 1 hinzu\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Wenn für den angegebenen [param id] bereits ein Punkt existiert, werden seine "
+"Position und seine Gewichtsskala auf die angegebenen Werte aktualisiert."
+
+msgid ""
+"Returns whether there is a connection/segment between the given points. If "
+"[param bidirectional] is [code]false[/code], returns whether movement from "
+"[param id] to [param to_id] is possible through this segment."
+msgstr ""
+"Gibt zurück, ob es eine Verbindung/ein Segment zwischen den angegebenen "
+"Punkten gibt. Wenn [param bidirektional] [code]false[/code] ist, wird "
+"zurückgegeben, ob eine Bewegung von [param id] nach [param to_id] durch "
+"dieses Segment möglich ist."
+
+msgid "Clears all the points and segments."
+msgstr "Löscht alle Punkte und Segmente."
+
+msgid ""
+"Creates a segment between the given points. If [param bidirectional] is "
+"[code]false[/code], only movement from [param id] to [param to_id] is "
+"allowed, not the reverse direction.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 1))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 1));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Erzeugt ein Segment zwischen den angegebenen Punkten. Wenn [param "
+"bidirectional] [code]false[/code] ist, ist nur die Bewegung von [param id] "
+"nach [param to_id] erlaubt, nicht die umgekehrte Richtung.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 1))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 1));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Deletes the segment between the given points. If [param bidirectional] is "
+"[code]false[/code], only movement from [param id] to [param to_id] is "
+"prevented, and a unidirectional segment possibly remains."
+msgstr ""
+"Löscht das Segment zwischen den angegebenen Punkten. Wenn [param "
+"bidirektional] [code]false[/code] ist, wird nur die Bewegung von [param id] "
+"nach [param to_id] verhindert, und es bleibt möglicherweise ein "
+"unidirektionales Segment übrig."
+
+msgid "Returns the next available point ID with no point associated to it."
+msgstr ""
+"Gibt die nächste verfügbare Punkte-ID zurück, der kein Punkt zugeordnet ist."
+
+msgid ""
+"Returns the ID of the closest point to [param to_position], optionally taking "
+"disabled points into account. Returns [code]-1[/code] if there are no points "
+"in the points pool.\n"
+"[b]Note:[/b] If several points are the closest to [param to_position], the "
+"one with the smallest ID will be returned, ensuring a deterministic result."
+msgstr ""
+"Gibt die ID des nächstgelegenen Punktes zu [param to_position] zurück, wobei "
+"optional deaktivierte Punkte berücksichtigt werden können. Gibt [code]-1[/"
+"code] zurück, wenn es keine Punkte im Punktepool gibt.\n"
+"[b]Hinweis:[/b] Wenn mehrere Punkte am nächsten zu [param to_position] "
+"liegen, wird der Punkt mit der kleinsten ID zurückgegeben, um ein "
+"deterministisches Ergebnis zu gewährleisten."
+
+msgid ""
+"Returns the closest position to [param to_position] that resides inside a "
+"segment between two connected points.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, "
+"3)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // "
+"Returns (0, 3)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+"Gibt die nächstgelegene Position zu [param to_position] zurück, die sich "
+"innerhalb eines Segments zwischen zwei verbundenen Punkten befindet.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Gibt (0, 3) "
+"zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // Gibt "
+"(0, 3) zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Das Ergebnis liegt in dem Segment, das von [code]y = 0[/code] bis [code]y = "
+"5[/code] reicht. Es ist die Position im Segment, die dem angegebenen Punkt am "
+"nächsten liegt."
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar2D between the given points. The array is ordered from the starting "
+"point to the ending point of the path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+"Gibt ein Array mit den IDs der Punkte zurück, die den von AStar2D gefundenen "
+"Pfad zwischen den angegebenen Punkten bilden. Das Array ist vom Startpunkt "
+"bis zum Endpunkt des Pfades geordnet.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1), 1) # Standardgewicht ist 1\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Gibt [1, 2, 3] zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1), 1); // Standardgewicht ist 1\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Gibt [1, 2, 3] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Wenn du die Gewichtung des 2. Punktes auf 3 änderst, wird das Ergebnis "
+"stattdessen [code][1, 4, 3][/code] sein, weil es jetzt, obwohl die Strecke "
+"länger ist, \"einfacher\" ist, durch Punkt 4 zu kommen als durch Punkt 2."
+
+msgid ""
+"Returns an array with the IDs of the points that form the connection with the "
+"given point.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1))\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1));\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein Array mit den IDs der Punkte zurück, die eine Verbindung mit dem "
+"angegebenen Punkt bilden.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1))\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Gibt [2, 3] zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1));\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Gibt [2, 3] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Returns the number of points currently in the points pool."
+msgstr ""
+"Gibt die Anzahl der Punkte zurück, die sich derzeit im Punktepool befinden."
+
+msgid ""
+"Returns whether a point is disabled or not for pathfinding. By default, all "
+"points are enabled."
+msgstr ""
+"Gibt zurück, ob ein Punkt für die Pfadfindung deaktiviert ist oder nicht. "
+"Standardmäßig sind alle Punkte aktiviert."
+
+msgid ""
+"Disables or enables the specified point for pathfinding. Useful for making a "
+"temporary obstacle."
+msgstr ""
+"Deaktiviert oder aktiviert den angegebenen Punkt für die Pfadfindung. "
+"Nützlich für die Erstellung eines temporären Hindernisses."
+
+msgid ""
+"Adds a new point at the given position with the given identifier. The [param "
+"id] must be 0 or larger, and the [param weight_scale] must be 0.0 or "
+"greater.\n"
+"The [param weight_scale] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [param weight_scale]s to form a "
+"path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with "
+"weight_scale 4 and id 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Adds the point (1, 0, 0) with "
+"weight_scale 4 and id 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If there already exists a point for the given [param id], its position and "
+"weight scale are updated to the given values."
+msgstr ""
+"Fügt einen neuen Punkt an der angegebenen Position mit dem angegebenen "
+"Bezeichner hinzu. Der [param id] muss 0 oder größer sein, und der [param "
+"weight_scale] muss 0,0 oder größer sein.\n"
+"Der [param weight_scale] wird mit dem Ergebnis von [method _compute_cost] "
+"multipliziert, wenn die Gesamtkosten für die Reise über ein Segment von einem "
+"benachbarten Punkt zu diesem Punkt bestimmt werden. Unter sonst gleichen "
+"Bedingungen bevorzugt der Algorithmus also Punkte mit niedrigeren [param "
+"weight_scale]s, um einen Pfad zu bilden.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # Fügt den Punkt (1, 0, 0) mit "
+"weight_scale 4 und id 1 hinzu\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Fügt den Punkt (1, 0, 0) mit "
+"weight_scale 4 und id 1 ein\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Existiert bereits ein Punkt für die angegebene [param id], werden seine "
+"Position und Gewichtsskala auf die angegebenen Werte aktualisiert."
+
+msgid ""
+"Returns whether the two given points are directly connected by a segment. If "
+"[param bidirectional] is [code]false[/code], returns whether movement from "
+"[param id] to [param to_id] is possible through this segment."
+msgstr ""
+"Gibt zurück, ob die beiden angegebenen Punkte direkt durch ein Segment "
+"verbunden sind. Wenn [param bidirektional] [code]false[/code] ist, wird "
+"zurückgegeben, ob eine Bewegung von [param id] nach [param to_id] durch "
+"dieses Segment möglich ist."
+
+msgid ""
+"Returns the closest position to [param to_position] that resides inside a "
+"segment between two connected points.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns "
+"(0, 3, 0)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // "
+"Returns (0, 3, 0)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+"Gibt die nächstgelegene Position zu [param to_position] zurück, die sich "
+"innerhalb eines Segments zwischen zwei verbundenen Punkten befindet.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Gibt (0, "
+"3, 0) zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // "
+"Gibt (0, 3, 0) zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Das Ergebnis liegt in dem Segment, das von [code]y = 0[/code] bis [code]y = "
+"5[/code] reicht. Es ist die Position im Segment, die dem angegebenen Punkt am "
+"nächsten liegt."
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar3D between the given points. The array is ordered from the starting "
+"point to the ending point of the path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+"Gibt ein Array mit den IDs der Punkte zurück, die den von AStar3D gefundenen "
+"Pfad zwischen den angegebenen Punkten bilden. Das Array ist vom Startpunkt "
+"bis zum Endpunkt des Pfades geordnet.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0), 1) # Standardgewicht ist 1\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Gibt [1, 2, 3] zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Standardgewicht ist 1\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Gibt [1, 2, 3] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Wenn du die Gewichtung des 2. Punktes auf 3 änderst, wird das Ergebnis "
+"stattdessen [code][1, 4, 3][/code] sein, weil es jetzt, obwohl die Strecke "
+"länger ist, \"einfacher\" ist, durch Punkt 4 zu kommen als durch Punkt 2."
+
+msgid ""
+"Returns an array with the IDs of the points that form the connection with the "
+"given point.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0))\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0));\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt ein Array mit den IDs der Punkte zurück, die eine Verbindung mit dem "
+"angegebenen Punkt bilden.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0))\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Gibt [2, 3] zurück\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0));\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Gibt [2, 3] zurück\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"[AStarGrid2D] is a variant of [AStar2D] that is specialized for partial 2D "
+"grids. It is simpler to use because it doesn't require you to manually create "
+"points and connect them together. This class also supports multiple types of "
+"heuristics, modes for diagonal movement, and a jumping mode to speed up "
+"calculations.\n"
+"To use [AStarGrid2D], you only need to set the [member region] 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.region = Rect2i(0, 0, 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.Region = new Rect2I(0, 0, 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]\n"
+"To remove a point from the pathfinding grid, it must be set as \"solid\" with "
+"[method set_point_solid]."
+msgstr ""
+"[AStarGrid2D] ist eine Variante von [AStar2D], die auf partielle 2D-Gitter "
+"spezialisiert ist. Sie ist einfacher zu verwenden, da Sie nicht manuell "
+"Punkte erstellen und diese miteinander verbinden müssen. Diese Klasse "
+"unterstützt außerdem mehrere Arten von Heuristiken, Modi für diagonale "
+"Bewegungen und einen Sprungmodus, um Berechnungen zu beschleunigen.\n"
+"Um [AStarGrid2D] zu verwenden, müssen Sie nur die [member region] des Gitters "
+"festlegen, optional die [member cell_size] einstellen und dann die [method "
+"update] Methode aufrufen:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar_grid = AStarGrid2D.new()\n"
+"astar_grid.region = Rect2i(0, 0, 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.Region = new Rect2I(0, 0, 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]\n"
+"Um einen Punkt aus dem Pfadfindungsgitter zu entfernen, muss er mit [method "
+"set_point_solid] als \"solid\" gesetzt werden."
+
+msgid ""
+"Clears the grid and sets the [member region] to [code]Rect2i(0, 0, 0, 0)[/"
+"code]."
+msgstr ""
+"Löscht das Gitter und setzt die [member region] auf [code]Rect2i(0, 0, 0, 0)[/"
+"code]."
+
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"solid flag.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"Füllt die angegebene [param-Region] auf dem Gitter mit dem angegebenen Wert "
+"für das Solid-Flag.\n"
+"[b]Hinweis:[/b] Der Aufruf von [method update] ist nach dem Aufruf dieser "
+"Funktion nicht erforderlich."
+
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"weight scale.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"Füllt die angegebene [param region] auf dem Raster mit dem angegebenen Wert "
+"für die Gewichtsskala.\n"
+"[b]Hinweis:[/b] Der Aufruf von [method update] ist nach dem Aufruf dieser "
+"Funktion nicht erforderlich."
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar2D between the given points. The array is ordered from the starting "
+"point to the ending point of the path."
+msgstr ""
+"Gibt ein Array mit den IDs der Punkte zurück, die den von AStar2D gefundenen "
+"Pfad zwischen den angegebenen Punkten bilden. Das Array ist vom Startpunkt "
+"bis zum Endpunkt des Pfades geordnet."
+
+msgid ""
+"Indicates that the grid parameters were changed and [method update] needs to "
+"be called."
+msgstr ""
+"Zeigt an, dass die Gitterparameter geändert wurden und die [Methode update] "
+"aufgerufen werden muss."
+
+msgid ""
+"Returns [code]true[/code] if a point is disabled for pathfinding. By default, "
+"all points are enabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Punkt für die Pfadfindung deaktiviert "
+"ist. Standardmäßig sind alle Punkte aktiviert."
+
+msgid ""
+"Disables or enables the specified point for pathfinding. Useful for making an "
+"obstacle. By default, all points are enabled.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"Deaktiviert oder aktiviert den angegebenen Punkt für die Pfadfindung. "
+"Nützlich für die Erstellung eines Hindernisses. Standardmäßig sind alle "
+"Punkte aktiviert.\n"
+"[b]Hinweis:[/b] Der Aufruf von [method update] ist nach dem Aufruf dieser "
+"Funktion nicht erforderlich."
+
+msgid ""
+"Sets the [param weight_scale] for the point with the given [param id]. The "
+"[param weight_scale] is multiplied by the result of [method _compute_cost] "
+"when determining the overall cost of traveling across a segment from a "
+"neighboring point to this point.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"Setzt den [param weight_scale] für den Punkt mit der angegebenen [param id]. "
+"Der [param weight_scale] wird mit dem Ergebnis von [method _compute_cost] "
+"multipliziert, wenn die Gesamtkosten für die Strecke von einem benachbarten "
+"Punkt zu diesem Punkt ermittelt werden.\n"
+"[b]Hinweis:[/b] Der Aufruf von [method update] ist nach dem Aufruf dieser "
+"Funktion nicht erforderlich."
+
+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 region], "
+"[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.\n"
+"[b]Note:[/b] All point data (solidity and weight scale) will be cleared."
+msgstr ""
+"Aktualisiert den internen Zustand des Gitters entsprechend den Parametern, um "
+"es für die Suche nach dem Pfad vorzubereiten. Muss aufgerufen werden, wenn "
+"Parameter wie [member region], [member cell_size] oder [member offset] "
+"geändert werden. Die [method is_dirty] gibt [code]true[/code] zurück, wenn "
+"dies der Fall ist und diese Funktion aufgerufen werden muss.\n"
+"[b]Hinweis:[/b] Alle Punktdaten (Solidität und Gewichtsskala) werden gelöscht."
+
+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 ""
+"Die Größe der Punktzelle, die für die Berechnung der von [method "
+"get_point_path] zurückgegebenen Punktposition verwendet wird. Wenn sie "
+"geändert wird, muss die [Methode update] aufgerufen werden, bevor der nächste "
+"Pfad gefunden wird."
+
+msgid ""
+"The default [enum Heuristic] which will be used to calculate the cost between "
+"two points if [method _compute_cost] was not overridden."
+msgstr ""
+"Die Standard-[enum Heuristic], die zur Berechnung der Kosten zwischen zwei "
+"Punkten verwendet wird, wenn [method _compute_cost] nicht überschrieben wurde."
+
+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 ""
+"Die Standard-[enum Heuristic], die zur Berechnung der Kosten zwischen dem "
+"Punkt und dem Endpunkt verwendet wird, wenn die [method _estimate_cost] nicht "
+"überschrieben wurde."
+
+msgid ""
+"A specific [enum DiagonalMode] mode which will force the path to avoid or "
+"accept the specified diagonals."
+msgstr ""
+"Ein spezifischer [enum DiagonalMode] Modus, der den Pfad zwingt, die "
+"angegebenen Diagonalen zu vermeiden oder zu akzeptieren."
+
+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 ""
+"Aktiviert oder deaktiviert das Springen, um die Zwischenpunkte zu "
+"überspringen und den Suchalgorithmus zu beschleunigen.\n"
+"[b]Hinweis:[/b] Derzeit wird durch das Einschalten die Berücksichtigung der "
+"Gewichtsskalierung bei der Pfadfindung deaktiviert."
+
+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 ""
+"Der Offset des Gitters, der für die Berechnung der von [method "
+"get_point_path] zurückgegebenen Punktposition verwendet wird. Wird er "
+"geändert, muss [method update] aufgerufen werden, bevor der nächste Pfad "
+"gefunden wird."
+
+msgid ""
+"The region of grid cells available for pathfinding. If changed, [method "
+"update] needs to be called before finding the next path."
+msgstr ""
+"Der Bereich der Gitterzellen, der für die Pfadfindung zur Verfügung steht. "
+"Wird er geändert, muss [method update] aufgerufen werden, bevor der nächste "
+"Pfad gefunden wird."
+
+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.\n"
+"[i]Deprecated.[/i] Use [member region] instead."
+msgstr ""
+"Die Größe des Gitters (Anzahl der Zellen der Größe [member cell_size] auf "
+"jeder Achse). Wenn sie geändert wird, muss [method update] aufgerufen werden, "
+"bevor der nächste Pfad gefunden wird.\n"
+"[i]Veraltet.[/i] Verwenden Sie stattdessen [member region]."
+
+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 ""
+"Die [url=https://en.wikipedia.org/wiki/Euclidean_distance]Euklidische "
+"Heuristik[/url], die für die Wegfindung zu verwenden ist, verwendet die "
+"folgende Formel:\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]Hinweis:[/b] Dies ist auch die interne Heuristik, die standardmäßig in "
+"[AStar3D] und [AStar2D] verwendet wird (unter Einbeziehung der möglichen z-"
+"Achsenkoordinate)."
+
+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 ""
+"Die [url=https://en.wikipedia.org/wiki/Taxicab_geometry]Manhattan-Heuristik[/"
+"url], die für die Wegfindung zu verwenden ist, wird nach folgender Formel "
+"berechnet:\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]Hinweis:[/b] Diese Heuristik ist für orthogonale 4-Seiten-Bewegungen "
+"gedacht, die durch die Einstellung des [member diagonal_mode] auf [constant "
+"DIAGONAL_MODE_NEVER] bereitgestellt werden."
+
+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 ""
+"Die Octile-Heuristik, die für die Pfadfindung zu verwenden ist, wird nach der "
+"folgenden Formel berechnet:\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 ""
+"Die [url=https://en.wikipedia.org/wiki/Chebyshev_distance]Tschebyscheff-"
+"Heuristik[/url], die für die Pfadfindung verwendet wird, verwendet die "
+"folgende Formel:\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 ""
+"The pathfinding algorithm will ignore solid neighbors around the target cell "
+"and allow passing using diagonals."
+msgstr ""
+"Der Pfadfindungsalgorithmus ignoriert die soliden Nachbarn um die Zielzelle "
+"herum und ermöglicht das Passieren über Diagonalen."
+
+msgid ""
+"The pathfinding algorithm will ignore all diagonals and the way will be "
+"always orthogonal."
+msgstr ""
+"Der Pfadfindungsalgorithmus ignoriert alle Diagonalen und der Weg wird immer "
+"orthogonal sein."
+
+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 ""
+"Der Pfadfindungsalgorithmus vermeidet die Verwendung von Diagonalen, wenn "
+"mindestens zwei Hindernisse um die benachbarten Zellen des spezifischen "
+"Pfadsegments platziert wurden."
+
+msgid ""
+"The pathfinding algorithm will avoid using diagonals if any obstacle has been "
+"placed around the neighboring cells of the specific path segment."
+msgstr ""
+"Der Pfadfindungsalgorithmus vermeidet die Verwendung von Diagonalen, wenn ein "
+"Hindernis um die benachbarten Zellen des spezifischen Pfadsegments platziert "
+"wurde."
+
+msgid "A texture that crops out part of another Texture2D."
+msgstr "Eine Textur, die einen Teil einer anderen Texture2D ausschneidet."
+
+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]-Ressource, die nur einen Teil ihrer [member atlas]-Textur "
+"zeichnet, wie durch die [member region] definiert. Es kann auch ein "
+"zusätzlicher [member margin] gesetzt werden, der für kleine Anpassungen "
+"nützlich ist.\n"
+"Mehrere [AtlasTexture]-Ressourcen können aus demselben [member atlas] "
+"beschnitten werden. Das Packen vieler kleinerer Texturen in eine einzelne "
+"große Textur hilft, die Videospeicherkosten und Renderaufrufe zu optimieren.\n"
+"[b]Hinweis:[/b] [AtlasTexture] kann nicht in einer [AnimatedTexture] "
+"verwendet werden und lässt sich möglicherweise nicht richtig in Knoten wie "
+"[TextureRect] kacheln, wenn sie sich innerhalb anderer [AtlasTexture]-"
+"Ressourcen befinden."
+
+msgid "Stores information about the audio buses."
+msgstr "Speichert Informationen über die Audiobusse."
+
+msgid ""
+"Stores position, muting, solo, bypass, effects, effect position, volume, and "
+"the connections between buses. See [AudioServer] for usage."
+msgstr ""
+"Speichert Position, Stummschaltung, Solo, Bypass, Effekte, Effektposition, "
+"Lautstärke und die Verbindungen zwischen Bussen. Siehe [AudioServer] für die "
+"Verwendung."
+
+msgid "Audio effect for audio."
+msgstr "Audioeffekt für Audio."
+
+msgid ""
+"Base resource for audio bus. Applies an audio effect on the bus that the "
+"resource is applied on."
+msgstr ""
+"Basisressource für Audiobus. Wendet einen Audioeffekt auf den Bus an, auf den "
+"die Ressource angewendet wird."
+
+msgid "Audio Mic Record Demo"
+msgstr "Audio-Mikrofonaufnahme-Demo"
+
+msgid "Increases or decreases the volume being routed through the audio bus."
+msgstr "Erhöht oder verringert die über den Audiobus geleitete Lautstärke."
+
+msgid "Audio buses"
+msgstr "Audio-Busse"
+
+msgid ""
+"Amount of amplification in decibels. Positive values make the sound louder, "
+"negative values make it quieter. Value can range from -80 to 24."
+msgstr ""
+"Betrag der Verstärkung in Dezibel. Positive Werte machen den Ton lauter, "
+"negative Werte machen ihn leiser. Der Wert kann von -80 bis 24 reichen."
+
+msgid "Adds a band limit filter to the audio bus."
+msgstr "Fügt dem Audiobus einen Bandbegrenzungsfilter hinzu."
+
+msgid ""
+"Limits the frequencies in a range around the [member AudioEffectFilter."
+"cutoff_hz] and allows frequencies outside of this range to pass."
+msgstr ""
+"Begrenzt die Frequenzen in einem Bereich um den [member AudioEffectFilter."
+"cutoff_hz] und lässt Frequenzen außerhalb dieses Bereichs passieren."
+
+msgid "Adds a band pass filter to the audio bus."
+msgstr "Fügt dem Audiobus einen Bandpassfilter hinzu."
+
+msgid ""
+"Attenuates the frequencies inside of a range around the [member "
+"AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this band."
+msgstr ""
+"Dämpft die Frequenzen innerhalb eines Bereichs um den [member "
+"AudioEffectFilter.cutoff_hz] und schneidet Frequenzen außerhalb dieses "
+"Bereichs ab."
+
+msgid "Captures audio from an audio bus in real-time."
+msgstr "Nimmt Audio von einem Audiobus in Echtzeit auf."
+
+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 ist ein AudioEffect, der alle Audio-Frames vom "
+"angeschlossenen Audio-Effekt-Bus in seinen internen Ringpuffer kopiert.\n"
+"Der Anwendungscode sollte diese Audioframes aus diesem Ringpuffer mit der "
+"[method get_buffer] abrufen und nach Bedarf verarbeiten, z.B. um Daten von "
+"einem [AudioStreamMicrophone] zu erfassen, anwendungsdefinierte Effekte zu "
+"implementieren oder um Audio über das Netzwerk zu übertragen. Wenn Audiodaten "
+"von einem Mikrofon erfasst werden, ist das Format der Samples Stereo 32-Bit "
+"Floating Point PCM.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/driver/enable_input] muss "
+"[code]true[/code] sein, damit die Audioeingabe funktioniert. Siehe auch die "
+"Beschreibung dieser Einstellung für Hinweise zu den Berechtigungen und den "
+"Datenschutzeinstellungen des Betriebssystems."
+
+msgid ""
+"Returns [code]true[/code] if at least [param frames] audio frames are "
+"available to read in the internal ring buffer."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn mindestens [param frames] Audio-Frames "
+"zum Lesen im internen Ringpuffer vorhanden sind."
+
+msgid "Clears the internal ring buffer."
+msgstr "Löscht den internen Ringspeicher."
+
+msgid ""
+"Returns the number of audio frames discarded from the audio bus due to full "
+"buffer."
+msgstr ""
+"Gibt die Anzahl der Audioframes zurück, die aufgrund eines vollen Puffers vom "
+"Audiobus verworfen wurden."
+
+msgid ""
+"Returns the number of frames available to read using [method get_buffer]."
+msgstr ""
+"Gibt die Anzahl der Bilder zurück, die mit der [methodget_buffer] gelesen "
+"werden können."
+
+msgid ""
+"Length of the internal ring buffer, in seconds. Setting the buffer length "
+"will have no effect if already initialized."
+msgstr ""
+"Länge des internen Ringpuffers, in Sekunden. Die Einstellung der Pufferlänge "
+"hat keine Auswirkungen, wenn sie bereits initialisiert ist."
+
+msgid "Adds a chorus audio effect."
+msgstr "Fügt einen Chorus-Audioeffekt hinzu."
+
+msgid "The effect's raw signal."
+msgstr "Das Rohsignal des Effekts."
+
+msgid "The voice's signal delay."
+msgstr "Die Signalverzögerung der Stimme."
+
+msgid "The voice filter's depth."
+msgstr "Die Tiefe des Stimmenfilters."
+
+msgid "The voice's volume."
+msgstr "Die Lautstärke der Stimme."
+
+msgid ""
+"Dynamic range compressor reduces the level of the sound when the amplitude "
+"goes over a certain threshold in Decibels. One of the main uses of a "
+"compressor is to increase the dynamic range by clipping as little as possible "
+"(when sound goes over 0dB).\n"
+"Compressor has many uses in the mix:\n"
+"- In the Master bus to compress the whole output (although an "
+"[AudioEffectLimiter] is probably better).\n"
+"- In voice channels to ensure they sound as balanced as possible.\n"
+"- Sidechained. This can reduce the sound level sidechained with another audio "
+"bus for threshold detection. This technique is common in video game mixing to "
+"the level of music and SFX while voices are being heard.\n"
+"- Accentuates transients by using a wider attack, making effects sound more "
+"punchy."
+msgstr ""
+"Der Dynamikkompressor reduziert den Pegel des Tons, wenn die Amplitude einen "
+"bestimmten Schwellenwert in Dezibel überschreitet. Einer der Hauptzwecke "
+"eines Kompressors besteht darin, den Dynamikbereich zu vergrößern, indem er "
+"so wenig wie möglich übersteuert (wenn der Ton über 0 dB geht).\n"
+"Der Kompressor hat viele Verwendungsmöglichkeiten im Mix:\n"
+"- Im Master-Bus, um die gesamte Ausgabe zu komprimieren (obwohl ein "
+"[AudioEffectLimiter] wahrscheinlich besser ist).\n"
+"- In Stimmkanälen, um sicherzustellen, dass sie so ausgewogen wie möglich "
+"klingen.\n"
+"- Sidechained. Dies kann den Klangpegel mit einem anderen Audiobus zur "
+"Schwellenwerterkennung reduzieren. Diese Technik wird häufig beim Mischen von "
+"Videospielen verwendet, um den Pegel von Musik und SFX zu senken, während die "
+"Stimmen zu hören sind.\n"
+"- Akzentuiert Transienten durch einen breiteren Attack, wodurch die Effekte "
+"druckvoller klingen."
+
+msgid ""
+"Compressor's reaction time when the signal exceeds the threshold, in "
+"microseconds. Value can range from 20 to 2000."
+msgstr ""
+"Reaktionszeit des Kompressors, wenn das Signal den Schwellenwert "
+"überschreitet, in Mikrosekunden. Der Wert kann 20 bis 2000 annehmen."
+
+msgid "Gain applied to the output signal."
+msgstr "Auf das Ausgangssignal angewendete Verstärkung."
+
+msgid ""
+"Amount of compression applied to the audio once it passes the threshold "
+"level. The higher the ratio, the more the loud parts of the audio will be "
+"compressed. Value can range from 1 to 48."
+msgstr ""
+"Die Stärke der Kompression, die auf das Audiomaterial angewendet wird, sobald "
+"es den Schwellenwert überschreitet. Je höher das Verhältnis, desto stärker "
+"werden die lauten Teile des Audios komprimiert. Der Wert kann 1 bis 48 "
+"annehmen."
+
+msgid ""
+"Compressor's delay time to stop reducing the signal after the signal level "
+"falls below the threshold, in milliseconds. Value can range from 20 to 2000."
+msgstr ""
+"Verzögerungszeit des Kompressors, um die Reduzierung des Signals zu beenden, "
+"nachdem der Signalpegel unter den Schwellenwert gefallen ist, in "
+"Millisekunden. Der Wert kann von 20 bis 2000 reichen."
+
+msgid "Reduce the sound level using another audio bus for threshold detection."
+msgstr ""
+"Verringern Sie den Schallpegel über einen anderen Audiobus zur "
+"Schwellenwerterkennung."
+
+msgid ""
+"The level above which compression is applied to the audio. Value can range "
+"from -60 to 0."
+msgstr ""
+"Der Pegel, ab dem die Kompression auf das Audiomaterial angewendet wird. Der "
+"Wert kann von -60 bis 0 reichen."
+
+msgid ""
+"Adds a delay audio effect to an audio bus. Plays input signal back after a "
+"period of time.\n"
+"Two tap delay and feedback options."
+msgstr ""
+"Fügt einem Audiobus einen Verzögerungseffekt hinzu. Spielt das Eingangssignal "
+"nach einer bestimmten Zeitspanne ab.\n"
+"Zwei Tap-Delay- und Feedback-Optionen."
+
+msgid ""
+"Plays input signal back after a period of time. The delayed signal may be "
+"played back multiple times to create the sound of a repeating, decaying echo. "
+"Delay effects range from a subtle echo effect to a pronounced blending of "
+"previous sounds with new sounds."
+msgstr ""
+"Gibt das Eingangssignal nach einer bestimmten Zeitspanne wieder. Das "
+"verzögerte Signal kann mehrfach wiedergegeben werden, um den Klang eines sich "
+"wiederholenden, abklingenden Echos zu erzeugen. Die Verzögerungseffekte "
+"reichen von einem subtilen Echoeffekt bis hin zu einer ausgeprägten "
+"Überblendung früherer Klänge mit neuen Klängen."
+
+msgid ""
+"Output percent of original sound. At 0, only delayed sounds are output. Value "
+"can range from 0 to 1."
+msgstr ""
+"Prozentuale Ausgabe des Originaltons. Bei 0 werden nur verzögerte Töne "
+"ausgegeben. Der Wert kann von 0 bis 1 reichen."
+
+msgid "If [code]true[/code], feedback is enabled."
+msgstr "Wenn [code]true[/code], ist die Rückmeldung aktiviert."
+
+msgid "Feedback delay time in milliseconds."
+msgstr "Rückkopplungsverzögerungszeit in Millisekunden."
+
+msgid "Sound level for feedback."
+msgstr "Schallpegel für Rückkopplung."
+
+msgid ""
+"Low-pass filter for feedback, in Hz. Frequencies below this value are "
+"filtered out of the source signal."
+msgstr ""
+"Tiefpassfilter für Rückkopplung, in Hz. Frequenzen unterhalb dieses Wertes "
+"werden aus dem Quellsignal herausgefiltert."
+
+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 ""
+"Es stehen verschiedene Typen zur Verfügung: Clip, Tan, Lo-Fi (Bit Crushing), "
+"Overdrive oder Waveshape.\n"
+"Durch die Verzerrung der Wellenform ändert sich der Frequenzinhalt, was den "
+"Klang oft \"knackig\" oder \"rau\" macht. Bei Spielen kann der Sound aus "
+"einem gesättigten Gerät oder Lautsprecher sehr effizient simuliert werden."
+
+msgid "Distortion power. Value can range from 0 to 1."
+msgstr "Verzerrungsleistung. Der Wert kann zwischen 0 und 1 liegen."
+
+msgid ""
+"High-pass filter, in Hz. Frequencies higher than this value will not be "
+"affected by the distortion. Value can range from 1 to 20000."
+msgstr ""
+"Hochpassfilter, in Hz. Frequenzen, die über diesem Wert liegen, werden von "
+"der Verzerrung nicht beeinflusst. Der Wert kann von 1 bis 20000 reichen."
+
+msgid "Distortion type."
+msgstr "Verzerrungstyp."
+
+msgid ""
+"Increases or decreases the volume after the effect, in decibels. Value can "
+"range from -80 to 24."
+msgstr ""
+"Erhöht oder verringert die Lautstärke nach dem Effekt, in Dezibel. Der Wert "
+"kann von -80 bis 24 reichen."
+
+msgid ""
+"Digital distortion effect which cuts off peaks at the top and bottom of the "
+"waveform."
+msgstr ""
+"Digitaler Verzerrungseffekt, der Spitzen an den oberen und unteren Enden der "
+"Wellenform abschneidet."
+
+msgid ""
+"Low-resolution digital distortion effect (bit depth reduction). You can use "
+"it to emulate the sound of early digital audio devices."
+msgstr ""
+"Digitaler Verzerrungseffekt mit niedriger Auflösung (Reduzierung der "
+"Bittiefe). Sie können damit den Klang früher digitaler Audiogeräte emulieren."
+
+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 ""
+"Emuliert die warme Verzerrung, die von einem Feldeffekttransistor erzeugt "
+"wird, der üblicherweise in Solid-State-Musikinstrumentenverstärkern verwendet "
+"wird. Die Eigenschaft [member drive] hat in diesem Modus keine Wirkung."
+
+msgid ""
+"Waveshaper distortions are used mainly by electronic musicians to achieve an "
+"extra-abrasive sound."
+msgstr ""
+"Waveshaper-Verzerrungen werden hauptsächlich von Elektronikmusikern "
+"verwendet, um einen besonders rauen Klang zu erzielen."
+
+msgid ""
+"Base class for audio equalizers. Gives you control over frequencies.\n"
+"Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] or "
+"[AudioEffectEQ21] don't fit your needs."
+msgstr ""
+"Basisklasse für Audio-Equalizer. Gibt Ihnen die Kontrolle über Frequenzen.\n"
+"Verwenden Sie sie, um einen benutzerdefinierten Equalizer zu erstellen, wenn "
+"[AudioEffectEQ6], [AudioEffectEQ10] oder [AudioEffectEQ21] nicht Ihren "
+"Anforderungen entsprechen."
+
+msgid ""
+"AudioEffectEQ gives you control over frequencies. Use it to compensate for "
+"existing deficiencies in audio. AudioEffectEQs are useful on the Master bus "
+"to completely master a mix and give it more character. They are also useful "
+"when a game is run on a mobile device, to adjust the mix to that kind of "
+"speakers (it can be added but disabled when headphones are plugged)."
+msgstr ""
+"AudioEffectEQ gibt Ihnen die Kontrolle über Frequenzen. Verwenden Sie ihn, um "
+"vorhandene Defizite im Audiomaterial auszugleichen. AudioEffectEQs sind auf "
+"dem Master-Bus nützlich, um eine Mischung vollständig zu beherrschen und ihr "
+"mehr Charakter zu verleihen. Sie sind auch nützlich, wenn ein Spiel auf einem "
+"mobilen Gerät ausgeführt wird, um die Mischung an diese Art von Lautsprechern "
+"anzupassen (sie können hinzugefügt, aber deaktiviert werden, wenn Kopfhörer "
+"angeschlossen sind)."
+
+msgid "Returns the number of bands of the equalizer."
+msgstr "Gibt die Anzahl der Bänder des Equalizers zurück."
+
+msgid "Returns the band's gain at the specified index, in dB."
+msgstr "Gibt die Verstärkung des Bandes am angegebenen Index in dB zurück."
+
+msgid "Sets band's gain at the specified index, in dB."
+msgstr "Legt die Verstärkung des Bandes am angegebenen Index in dB fest."
+
+msgid ""
+"Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over "
+"frequencies from 31 Hz to 16000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"Fügt einen 10-Band-Equalizer-Audioeffekt zu einem Audiobus hinzu. Ermöglicht "
+"die Kontrolle über Frequenzen von 31 Hz bis 16000 Hz.\n"
+"Jede Frequenz kann zwischen -60/+24 dB moduliert werden."
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 31 Hz\n"
+"Band 2: 62 Hz\n"
+"Band 3: 125 Hz\n"
+"Band 4: 250 Hz\n"
+"Band 5: 500 Hz\n"
+"Band 6: 1000 Hz\n"
+"Band 7: 2000 Hz\n"
+"Band 8: 4000 Hz\n"
+"Band 9: 8000 Hz\n"
+"Band 10: 16000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
+msgstr ""
+"Frequenzbänder:\n"
+"Band 1: 31 Hz\n"
+"Band 2: 62 Hz\n"
+"Band 3: 125 Hz\n"
+"Band 4: 250 Hz\n"
+"Band 5: 500 Hz\n"
+"Band 6: 1000 Hz\n"
+"Band 7: 2000 Hz\n"
+"Band 8: 4000 Hz\n"
+"Band 9: 8000 Hz\n"
+"Band 10: 16000 Hz\n"
+"Siehe auch [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
+
+msgid ""
+"Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over "
+"frequencies from 22 Hz to 22000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"Fügt einen 21-Band-Equalizer-Audioeffekt zu einem Audiobus hinzu. Ermöglicht "
+"die Kontrolle über Frequenzen von 22 Hz bis 22000 Hz.\n"
+"Jede Frequenz kann zwischen -60/+24 dB moduliert werden."
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 22 Hz\n"
+"Band 2: 32 Hz\n"
+"Band 3: 44 Hz\n"
+"Band 4: 63 Hz\n"
+"Band 5: 90 Hz\n"
+"Band 6: 125 Hz\n"
+"Band 7: 175 Hz\n"
+"Band 8: 250 Hz\n"
+"Band 9: 350 Hz\n"
+"Band 10: 500 Hz\n"
+"Band 11: 700 Hz\n"
+"Band 12: 1000 Hz\n"
+"Band 13: 1400 Hz\n"
+"Band 14: 2000 Hz\n"
+"Band 15: 2800 Hz\n"
+"Band 16: 4000 Hz\n"
+"Band 17: 5600 Hz\n"
+"Band 18: 8000 Hz\n"
+"Band 19: 11000 Hz\n"
+"Band 20: 16000 Hz\n"
+"Band 21: 22000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
+msgstr ""
+"Frequenzbänder:\n"
+"Band 1: 22 Hz\n"
+"Band 2: 32 Hz\n"
+"Band 3: 44 Hz\n"
+"Band 4: 63 Hz\n"
+"Band 5: 90 Hz\n"
+"Band 6: 125 Hz\n"
+"Band 7: 175 Hz\n"
+"Band 8: 250 Hz\n"
+"Band 9: 350 Hz\n"
+"Band 10: 500 Hz\n"
+"Band 11: 700 Hz\n"
+"Band 12: 1000 Hz\n"
+"Band 13: 1400 Hz\n"
+"Band 14: 2000 Hz\n"
+"Band 15: 2800 Hz\n"
+"Band 16: 4000 Hz\n"
+"Band 17: 5600 Hz\n"
+"Band 18: 8000 Hz\n"
+"Band 19: 11000 Hz\n"
+"Band 20: 16000 Hz\n"
+"Band 21: 22000 Hz\n"
+"Siehe auch [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
+
+msgid ""
+"Adds a 6-band equalizer audio effect to an audio bus. Gives you control over "
+"frequencies from 32 Hz to 10000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"Fügt einen 6-Band-Equalizer-Audioeffekt zu einem Audiobus hinzu. Ermöglicht "
+"die Kontrolle über Frequenzen von 32 Hz bis 10000 Hz.\n"
+"Jede Frequenz kann zwischen -60/+24 dB moduliert werden."
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 32 Hz\n"
+"Band 2: 100 Hz\n"
+"Band 3: 320 Hz\n"
+"Band 4: 1000 Hz\n"
+"Band 5: 3200 Hz\n"
+"Band 6: 10000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
+msgstr ""
+"Frequenzbänder:\n"
+"Band 1: 32 Hz\n"
+"Band 2: 100 Hz\n"
+"Band 3: 320 Hz\n"
+"Band 4: 1000 Hz\n"
+"Band 5: 3200 Hz\n"
+"Band 6: 10000 Hz\n"
+"Siehe auch [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
+
+msgid "Adds a filter to the audio bus."
+msgstr "Fügt dem Audiobus einen Filter hinzu."
+
+msgid "Allows frequencies other than the [member cutoff_hz] to pass."
+msgstr "Lässt andere Frequenzen als den [member cutoff_hz] passieren."
+
+msgid "Threshold frequency for the filter, in Hz."
+msgstr "Schwellenfrequenz für den Filter, in Hz."
+
+msgid "Gain amount of the frequencies after the filter."
+msgstr "Verstärkungsgrad der Frequenzen nach dem Filter."
+
+msgid "Amount of boost in the frequency range near the cutoff frequency."
+msgstr "Höhe der Anhebung im Frequenzbereich nahe der Grenzfrequenz."
+
+msgid ""
+"Cuts frequencies lower than the [member AudioEffectFilter.cutoff_hz] and "
+"allows higher frequencies to pass."
+msgstr ""
+"Schneidet Frequenzen unterhalb des [member AudioEffectFilter.cutoff_hz] ab "
+"und lässt höhere Frequenzen passieren."
+
+msgid "Reduces all frequencies above the [member AudioEffectFilter.cutoff_hz]."
+msgstr ""
+"Reduziert alle Frequenzen oberhalb des [member AudioEffectFilter.cutoff_hz]."
+
+msgid "Adds a soft-clip limiter audio effect to an Audio bus."
+msgstr "Fügt einen Soft-Clip-Limiter-Audioeffekt zu einem Audiobus hinzu."
+
+msgid ""
+"A limiter is similar to a compressor, but it's less flexible and designed to "
+"disallow sound going over a given dB threshold. Adding one in the Master bus "
+"is always recommended to reduce the effects of clipping.\n"
+"Soft clipping starts to reduce the peaks a little below the threshold level "
+"and progressively increases its effect as the input level increases such that "
+"the threshold is never exceeded."
+msgstr ""
+"Ein Limiter ähnelt einem Kompressor, ist aber weniger flexibel und soll "
+"verhindern, dass der Ton eine bestimmte dB-Schwelle überschreitet. Es ist "
+"immer empfehlenswert, einen Limiter in den Master-Bus einzubauen, um die "
+"Auswirkungen des Clipping zu reduzieren.\n"
+"Beim Soft Clipping werden die Pegelspitzen etwas unterhalb des Schwellenwerts "
+"reduziert und die Wirkung nimmt mit steigendem Eingangspegel allmählich zu, "
+"so dass der Schwellenwert nie überschritten wird."
+
+msgid ""
+"The waveform's maximum allowed value, in decibels. Value can range from -20 "
+"to -0.1."
+msgstr ""
+"Der maximal zulässige Wert der Wellenform in Dezibel. Der Wert kann von -20 "
+"bis -0,1 reichen."
+
+msgid ""
+"Applies a gain to the limited waves, in decibels. Value can range from 0 to 6."
+msgstr ""
+"Wendet eine Verstärkung auf die begrenzten Wellen an, in Dezibel. Der Wert "
+"kann von 0 bis 6 reichen."
+
+msgid ""
+"Threshold from which the limiter begins to be active, in decibels. Value can "
+"range from -30 to 0."
+msgstr ""
+"Schwellenwert, ab dem der Begrenzer aktiv wird, in Dezibel. Der Wert kann von "
+"-30 bis 0 reichen."
+
+msgid ""
+"Cuts frequencies higher than the [member AudioEffectFilter.cutoff_hz] and "
+"allows lower frequencies to pass."
+msgstr ""
+"Schneidet Frequenzen oberhalb des [member AudioEffectFilter.cutoff_hz] ab und "
+"lässt niedrigere Frequenzen passieren."
+
+msgid "Adds a low-shelf filter to the audio bus."
+msgstr "Fügt dem Audiobus einen Low-Shelf-Filter hinzu."
+
+msgid "Reduces all frequencies below the [member AudioEffectFilter.cutoff_hz]."
+msgstr ""
+"Reduziert alle Frequenzen unterhalb des [member AudioEffectFilter.cutoff_hz]."
+
+msgid "Adds a notch filter to the Audio bus."
+msgstr "Fügt dem Audiobus einen Notch-Filter hinzu."
+
+msgid ""
+"Attenuates frequencies in a narrow band around the [member AudioEffectFilter."
+"cutoff_hz] and cuts frequencies outside of this range."
+msgstr ""
+"Dämpft Frequenzen in einem schmalen Band um den [member AudioEffectFilter."
+"cutoff_hz] und schneidet Frequenzen außerhalb dieses Bereichs ab."
+
+msgid "Adds a panner audio effect to an audio bus. Pans sound left or right."
+msgstr ""
+"Fügt einen Panner-Audioeffekt zu einem Audiobus hinzu. Schwenkt den Ton nach "
+"links oder rechts."
+
+msgid ""
+"Determines how much of an audio signal is sent to the left and right buses."
+msgstr ""
+"Legt fest, wie viel von einem Audiosignal an den linken und rechten Bus "
+"gesendet wird."
+
+msgid "Pan position. Value can range from -1 (fully left) to 1 (fully right)."
+msgstr ""
+"Schwenkposition. Der Wert kann von -1 (ganz links) bis 1 (ganz rechts) "
+"reichen."
+
+msgid ""
+"Adds a phaser audio effect to an audio bus.\n"
+"Combines the original signal with a copy that is slightly out of phase with "
+"the original."
+msgstr ""
+"Fügt einen Phaser-Audioeffekt zu einem Audiobus hinzu.\n"
+"Kombiniert das Originalsignal mit einer Kopie, die leicht phasenverschoben "
+"zum Original ist."
+
+msgid ""
+"Combines phase-shifted signals with the original signal. The movement of the "
+"phase-shifted signals is controlled using a low-frequency oscillator."
+msgstr ""
+"Kombiniert phasenverschobene Signale mit dem Originalsignal. Die Bewegung der "
+"phasenverschobenen Signale wird durch einen Niederfrequenzoszillator "
+"gesteuert."
+
+msgid ""
+"Governs how high the filter frequencies sweep. Low value will primarily "
+"affect bass frequencies. High value can sweep high into the treble. Value can "
+"range from 0.1 to 4."
+msgstr ""
+"Bestimmt, wie hoch die Filterfrequenzen schwingen. Ein niedriger Wert wirkt "
+"sich hauptsächlich auf die Bassfrequenzen aus. Ein hoher Wert kann bis zu den "
+"Höhen reichen. Der Wert kann von 0,1 bis 4 reichen."
+
+msgid "Output percent of modified sound. Value can range from 0.1 to 0.9."
+msgstr ""
+"Prozentualer Anteil des modifizierten Klangs am Ausgang. Der Wert kann von "
+"0,1 bis 0,9 reichen."
+
+msgid ""
+"Determines the maximum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr ""
+"Bestimmt die maximale Frequenz, die von den LFO-Modulationen beeinflusst "
+"wird, in Hz. Der Wert kann von 10 bis 10000 reichen."
+
+msgid ""
+"Determines the minimum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr ""
+"Bestimmt die minimale Frequenz, die von den LFO-Modulationen beeinflusst "
+"wird, in Hz. Der Wert kann von 10 bis 10000 reichen."
+
+msgid ""
+"Adjusts the rate in Hz at which the effect sweeps up and down across the "
+"frequency range."
+msgstr ""
+"Stellt die Rate in Hz ein, mit ignore-duplicate:der der Effekt den "
+"Frequenzbereich nach oben und unten durchstreicht."
+
+msgid ""
+"Allows modulation of pitch independently of tempo. All frequencies can be "
+"increased/decreased with minimal effect on transients."
+msgstr ""
+"Ermöglicht die Modulation der Tonhöhe unabhängig vom Tempo. Alle Frequenzen "
+"können mit minimalen Auswirkungen auf die Transienten erhöht/verringert "
+"werden."
+
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the effect over time, but have greater latency. The effects of "
+"this higher latency are especially noticeable on sounds that have sudden "
+"amplitude changes."
+msgstr ""
+"Die Größe des Puffers für die [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Schnelle Fourier-Transformation[/url]. Höhere Werte "
+"glätten den Effekt im Laufe der Zeit, haben aber eine größere Latenz. Die "
+"Auswirkungen dieser höheren Latenzzeit sind besonders bei Klängen mit "
+"plötzlichen Amplitudenänderungen spürbar."
+
+msgid ""
+"The oversampling factor to use. Higher values result in better quality, but "
+"are more demanding on the CPU and may cause audio cracking if the CPU can't "
+"keep up."
+msgstr ""
+"Der zu verwendende Oversampling-Faktor. Höhere Werte führen zu einer besseren "
+"Qualität, sind aber anspruchsvoller für die CPU und können zu Audio-Knacks "
+"führen, wenn die CPU nicht mithalten kann."
+
+msgid ""
+"The pitch scale to use. [code]1.0[/code] is the default pitch and plays "
+"sounds unaltered. [member pitch_scale] can range from [code]0.0[/code] "
+"(infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than "
+"the initial pitch)."
+msgstr ""
+"Die zu verwendende Tonhöhenskala. [code]1.0[/code] ist die Standardtonhöhe "
+"und spielt Töne unverändert ab. [member pitch_scale] kann von [code]0.0[/"
+"code] (unendlich tiefe Tonhöhe, unhörbar) bis [code]16[/code] (16-mal höher "
+"als die Ausgangstonhöhe) reichen."
+
+msgid ""
+"Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, "
+"but least stable over time."
+msgstr ""
+"Verwenden Sie einen Puffer von 256 Abtastwerten für die schnelle Fourier-"
+"Transformation. Geringste Latenz, aber geringste zeitliche Stabilität."
+
+msgid ""
+"Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but "
+"less stable over time."
+msgstr ""
+"Verwenden Sie einen Puffer von 512 Abtastwerten für die Fast-Fourier-"
+"Transformation. Geringe Latenz, aber weniger stabil über die Zeit."
+
+msgid ""
+"Use a buffer of 1024 samples for the Fast Fourier transform. This is a "
+"compromise between latency and stability over time."
+msgstr ""
+"Verwenden Sie für die Fast-Fourier-Transformation einen Puffer von 1024 "
+"Samples. Dies ist ein Kompromiss zwischen Latenzzeit und zeitlicher "
+"Stabilität."
+
+msgid ""
+"Use a buffer of 2048 samples for the Fast Fourier transform. High latency, "
+"but stable over time."
+msgstr ""
+"Verwendung eines Puffers von 2048 Samples für die Fast Fourier "
+"Transformation. Hohe Latenzzeit, aber stabil über die Zeit."
+
+msgid ""
+"Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, "
+"but most stable over time."
+msgstr ""
+"Verwenden Sie für die Fast-Fourier-Transformation einen Puffer von 4096 "
+"Samples. Höchste Latenz, aber am stabilsten über die Zeit."
+
+msgid "Audio effect used for recording the sound from an audio bus."
+msgstr ""
+"Audioeffekt, der für die Aufnahme des Tons von einem Audiobus verwendet wird."
+
+msgid ""
+"Allows the user to record the sound from an audio bus. This can include all "
+"audio output by Godot when used on the \"Master\" audio bus.\n"
+"Can be used (with an [AudioStreamMicrophone]) to record from a microphone.\n"
+"It sets and gets the format in which the audio file will be recorded (8-bit, "
+"16-bit, or compressed). It checks whether or not the recording is active, and "
+"if it is, records the sound. It then returns the recorded sample."
+msgstr ""
+"Ermöglicht es dem Benutzer, den Ton von einem Audiobus aufzunehmen. Dies kann "
+"alle von Godot ausgegebenen Audiosignale umfassen, wenn sie auf dem "
+"\"Master\"-Audiobus verwendet werden.\n"
+"Kann (mit einem [AudioStreamMicrophone]) zur Aufnahme von einem Mikrofon "
+"verwendet werden.\n"
+"Legt das Format fest, in dem die Audiodatei aufgezeichnet wird (8-Bit, 16-Bit "
+"oder komprimiert) und ruft es ab. Sie prüft, ob die Aufnahme aktiv ist, und "
+"wenn ja, nimmt sie den Ton auf. Anschließend gibt sie das aufgenommene Sample "
+"zurück."
+
+msgid "Recording with microphone"
+msgstr "Aufnahme mit Mikrofon"
+
+msgid "Returns the recorded sample."
+msgstr "Gibt das aufgenommene Sample zurück."
+
+msgid "Returns whether the recording is active or not."
+msgstr "Gibt zurück, ob die Aufzeichnung aktiv ist oder nicht."
+
+msgid ""
+"If [code]true[/code], the sound will be recorded. Note that restarting the "
+"recording will remove the previously recorded sample."
+msgstr ""
+"Wenn [code]true[/code], wird der Ton aufgenommen. Beachten Sie, dass bei "
+"einem Neustart der Aufnahme das zuvor aufgenommene Sample entfernt wird."
+
+msgid ""
+"Specifies the format in which the sample will be recorded. See [enum "
+"AudioStreamWAV.Format] for available formats."
+msgstr ""
+"Gibt das Format an, in dem das Sample aufgezeichnet wird. Siehe [enum "
+"AudioStreamWAV.Format] für verfügbare Formate."
+
+msgid ""
+"Simulates the sound of acoustic environments such as rooms, concert halls, "
+"caverns, or an open spaces."
+msgstr ""
+"Simuliert den Klang von akustischen Umgebungen wie Räumen, Konzertsälen, "
+"Kavernen oder offenen Räumen."
+
+msgid ""
+"Defines how reflective the imaginary room's walls are. Value can range from 0 "
+"to 1."
+msgstr ""
+"Legt fest, wie reflektierend die Wände des imaginären Raums sind. Der Wert "
+"kann von 0 bis 1 reichen."
+
+msgid ""
+"Output percent of original sound. At 0, only modified sound is outputted. "
+"Value can range from 0 to 1."
+msgstr ""
+"Gibt den Prozentsatz des Originaltons aus. Bei 0 wird nur der veränderte Ton "
+"ausgegeben. Der Wert kann von 0 bis 1 reichen."
+
+msgid ""
+"High-pass filter passes signals with a frequency higher than a certain cutoff "
+"frequency and attenuates signals with frequencies lower than the cutoff "
+"frequency. Value can range from 0 to 1."
+msgstr ""
+"Der Hochpassfilter lässt Signale mit einer Frequenz oberhalb einer bestimmten "
+"Grenzfrequenz passieren und dämpft Signale mit Frequenzen unterhalb der "
+"Grenzfrequenz ab. Der Wert kann von 0 bis 1 reichen."
+
+msgid "Output percent of predelay. Value can range from 0 to 1."
+msgstr "Ausgangsprozent der Vorverzögerung. Der Wert kann von 0 bis 1 reichen."
+
+msgid ""
+"Time between the original signal and the early reflections of the reverb "
+"signal, in milliseconds."
+msgstr ""
+"Zeit zwischen dem Originalsignal und den ersten Reflexionen des Hallsignals, "
+"in Millisekunden."
+
+msgid ""
+"Dimensions of simulated room. Bigger means more echoes. Value can range from "
+"0 to 1."
+msgstr ""
+"Abmessungen des simulierten Raums. Größer bedeutet mehr Echos. Der Wert kann "
+"von 0 bis 1 reichen."
+
+msgid ""
+"Widens or narrows the stereo image of the reverb tail. 1 means fully widens. "
+"Value can range from 0 to 1."
+msgstr ""
+"Verbreitert oder verengt das Stereobild der Hallfahne. 1 bedeutet "
+"vollständige Verbreiterung. Der Wert kann von 0 bis 1 reichen."
+
+msgid ""
+"Output percent of modified sound. At 0, only original sound is outputted. "
+"Value can range from 0 to 1."
+msgstr ""
+"Prozentualer Anteil des geänderten Tons an der Ausgabe. Bei 0 wird nur der "
+"Originalton ausgegeben. Der Wert kann von 0 bis 1 reichen."
+
+msgid "Audio effect that can be used for real-time audio visualizations."
+msgstr ""
+"Audioeffekt, der für Echtzeit-Audiovisualisierungen verwendet werden kann."
+
+msgid ""
+"This audio effect does not affect sound output, but can be used for real-time "
+"audio visualizations.\n"
+"See also [AudioStreamGenerator] for procedurally generating sounds."
+msgstr ""
+"Dieser Audioeffekt hat keinen Einfluss auf die Tonausgabe, kann aber für "
+"Echtzeit-Audiovisualisierungen verwendet werden.\n"
+"Siehe auch [AudioStreamGenerator] für die prozedurale Erzeugung von Klängen."
+
+msgid "Audio Spectrum Demo"
+msgstr "Audio-Spektrum-Demo"
+
+msgid "Godot 3.2 will get new audio features"
+msgstr "Godot 3.2 wird neue Audiofunktionen erhalten"
+
+msgid ""
+"The length of the buffer to keep (in seconds). Higher values keep data around "
+"for longer, but require more memory."
+msgstr ""
+"Die Länge des zu speichernden Puffers (in Sekunden). Höhere Werte halten die "
+"Daten länger vor, benötigen aber mehr Speicher."
+
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the spectrum analysis over time, but have greater latency. The "
+"effects of this higher latency are especially noticeable with sudden "
+"amplitude changes."
+msgstr ""
+"Die Größe des Puffers für die [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Schnelle Fourier-Transformation[/url]. Höhere Werte "
+"glätten die Spektrumanalyse im Laufe der Zeit, haben aber eine größere "
+"Latenz. Die Auswirkungen dieser höheren Latenz sind besonders bei plötzlichen "
+"Amplitudenänderungen spürbar."
+
+msgid "Use the average value as magnitude."
+msgstr "Verwenden Sie den Durchschnittswert als Größenordnung."
+
+msgid "Use the maximum value as magnitude."
+msgstr "Verwenden Sie den Maximalwert als Größe."
+
+msgid ""
+"An audio effect that can be used to adjust the intensity of stereo panning."
+msgstr ""
+"Ein Audioeffekt, mit dem die Intensität des Stereo-Panning eingestellt werden "
+"kann."
+
+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 ""
+"Werte über 1,0 erhöhen die Intensität des Pannings bei Audios, die diesen "
+"Effekt durchlaufen, während Werte unter 1,0 die Intensität des Pannings "
+"verringern. Bei einem Wert von 0,0 wird das Audiomaterial auf Mono "
+"heruntergemischt."
+
+msgid "Overrides the location sounds are heard from."
+msgstr "Überschreibt den Ort, von dem aus Töne gehört werden."
+
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. Only one "
+"[AudioListener2D] can be current. Using [method make_current] will disable "
+"the previous [AudioListener2D].\n"
+"If there is no active [AudioListener2D] in the current [Viewport], center of "
+"the screen will be used as a hearing point for the audio. [AudioListener2D] "
+"needs to be inside [SceneTree] to function."
+msgstr ""
+"Sobald er zum Szenenbaum hinzugefügt und mit [method make_current] aktiviert "
+"wurde, überschreibt dieser Knoten den Ort, von dem aus Töne gehört werden. "
+"Nur ein [AudioListener2D] kann aktuell sein. Die Verwendung von [method "
+"make_current] deaktiviert den vorherigen [AudioListener2D].\n"
+"Wenn es keinen aktiven [AudioListener2D] im aktuellen [Viewport] gibt, wird "
+"die Mitte des Bildschirms als Hörpunkt für den Ton verwendet. Der "
+"[AudioListener2D] muss sich innerhalb des [SceneTree] befinden, um zu "
+"funktionieren."
+
+msgid ""
+"Disables the [AudioListener2D]. If it's not set as current, this method will "
+"have no effect."
+msgstr ""
+"Deaktiviert den [AudioListener2D]. Wenn er nicht als aktuell eingestellt ist, "
+"hat diese Methode keine Wirkung."
+
+msgid ""
+"Makes the [AudioListener2D] active, setting it as the hearing point for the "
+"sounds. If there is already another active [AudioListener2D], it will be "
+"disabled.\n"
+"This method will have no effect if the [AudioListener2D] is not added to "
+"[SceneTree]."
+msgstr ""
+"Macht den [AudioListener2D] aktiv und setzt ihn als Hörpunkt für die Klänge. "
+"Wenn es bereits einen anderen aktiven [AudioListener2D] gibt, wird dieser "
+"deaktiviert.\n"
+"Diese Methode hat keine Wirkung, wenn der [AudioListener2D] nicht zum "
+"[SceneTree] hinzugefügt wird."
+
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. This can be used to "
+"listen from a location different from the [Camera3D]."
+msgstr ""
+"Sobald er zum Szenenbaum hinzugefügt und mit [method make_current] aktiviert "
+"wurde, überschreibt dieser Knoten (Node) den Ort, von dem aus Geräusche "
+"gehört werden. Dies kann verwendet werden, um von einem anderen Ort als der "
+"[Camera3D] zu hören."
+
+msgid "Disables the listener to use the current camera's listener instead."
+msgstr ""
+"Deaktiviert den Listener und verwendet stattdessen den Listener der aktuellen "
+"Kamera."
+
+msgid "Returns the listener's global orthonormalized [Transform3D]."
+msgstr "Gibt die globale orthonormierte [Transform3D] des Listener zurück."
+
+msgid ""
+"Returns [code]true[/code] if the listener was made current using [method "
+"make_current], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] There may be more than one AudioListener3D marked as \"current\" "
+"in the scene tree, but only the one that was made current last will be used."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Listener mit [method make_current] "
+"aktuell gemacht wurde, andernfalls [code]false[/code].\n"
+"[b]Hinweis:[/b] Es kann mehr als einen AudioListener3D geben, der im "
+"Szenenbaum als \"aktuell\" markiert ist, aber es wird nur derjenige "
+"verwendet, der zuletzt aktuell gemacht wurde."
+
+msgid "Enables the listener. This will override the current camera's listener."
+msgstr ""
+"Aktiviert den Listener. Dies überschreibt den Listener der aktuellen Kamera."
+
+msgid "Server interface for low-level audio access."
+msgstr "Server-Schnittstelle für Low-Level-Audio-Zugriff."
+
+msgid ""
+"[AudioServer] is a low-level server interface for audio access. It is in "
+"charge of creating sample data (playable audio) as well as its playback via a "
+"voice interface."
+msgstr ""
+"[AudioServer] ist eine Low-Level-Server-Schnittstelle für den Audio-Zugriff. "
+"Sie ist für die Erzeugung von Sample-Daten (abspielbare Audiodaten) sowie "
+"deren Wiedergabe über eine Sprachschnittstelle zuständig."
+
+msgid "Audio Device Changer Demo"
+msgstr "Audio-Gerätewechsler-Demo"
+
+msgid "Adds a bus at [param at_position]."
+msgstr "Fügt einen Bus an [param at_position] hinzu."
+
+msgid ""
+"Adds an [AudioEffect] effect to the bus [param bus_idx] at [param "
+"at_position]."
+msgstr ""
+"Fügt einen [AudioEffect]-Effekt zum Bus [param bus_idx] an [param "
+"at_position] hinzu."
+
+msgid "Generates an [AudioBusLayout] using the available buses and effects."
+msgstr ""
+"Erzeugt ein [AudioBusLayout] unter Verwendung der verfügbaren Busse und "
+"Effekte."
+
+msgid ""
+"Returns the [AudioEffect] at position [param effect_idx] in bus [param "
+"bus_idx]."
+msgstr ""
+"Gibt den [AudioEffect] an der Position [param effect_idx] im Bus [param "
+"bus_idx] zurück."
+
+msgid ""
+"Returns the [AudioEffectInstance] assigned to the given bus and effect "
+"indices (and optionally channel)."
+msgstr ""
+"Gibt die [AudioEffectInstance] zurück, die den angegebenen Bus- und "
+"Effektindizes (und optional dem Kanal) zugewiesen ist."
+
+msgid ""
+"Returns the index of the bus with the name [param bus_name]. Returns "
+"[code]-1[/code] if no bus with the specified name exist."
+msgstr ""
+"Gibt den Index des Busses mit dem Namen [param bus_name] zurück. Gibt "
+"[code]-1[/code] zurück, wenn kein Bus mit dem angegebenen Namen existiert."
+
+msgid ""
+"Returns the peak volume of the left speaker at bus index [param bus_idx] and "
+"channel index [param channel]."
+msgstr ""
+"Gibt die Spitzenlautstärke des linken Lautsprechers am Busindex [param "
+"bus_idx] und Kanalindex [param channel] zurück."
+
+msgid ""
+"Returns the peak volume of the right speaker at bus index [param bus_idx] and "
+"channel index [param channel]."
+msgstr ""
+"Gibt die Spitzenlautstärke des rechten Lautsprechers am Busindex [param "
+"bus_idx] und Kanalindex [param channel] zurück."
+
+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 ""
+"Gibt die Namen aller auf dem System erkannten Audio-Eingabegeräte zurück.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/driver/enable_input] muss "
+"[code]true[/code] sein, damit die Audioeingabe funktioniert. Siehe auch die "
+"Beschreibung dieser Einstellung für Hinweise zu den Berechtigungen und den "
+"Datenschutzeinstellungen des Betriebssystems."
+
+msgid "Returns the sample rate at the output of the [AudioServer]."
+msgstr "Gibt die Abtastrate am Ausgang des [AudioServer] zurück."
+
+msgid ""
+"Returns the audio driver's effective output latency. This is based on [member "
+"ProjectSettings.audio/driver/output_latency], but the exact returned value "
+"will differ depending on the operating system and audio driver.\n"
+"[b]Note:[/b] This can be expensive; it is not recommended to call [method "
+"get_output_latency] every frame."
+msgstr ""
+"Gibt die effektive Ausgangslatenz des Audiotreibers zurück. Diese basiert auf "
+"[member ProjectSettings.audio/driver/output_latency], aber der genaue "
+"Rückgabewert hängt vom Betriebssystem und dem Audiotreiber ab.\n"
+"[b]Hinweis:[/b] Dies kann teuer sein; es wird nicht empfohlen, [method "
+"get_output_latency] bei jedem Frame aufzurufen."
+
+msgid "Returns the speaker configuration."
+msgstr "Gibt die Lautsprecherkonfiguration zurück."
+
+msgid "Returns the relative time since the last mix occurred."
+msgstr "Gibt die relative Zeit seit dem letzten Mix zurück."
+
+msgid "Returns the relative time until the next mix occurs."
+msgstr "Gibt die relative Zeit bis zum nächsten mix zurück."
+
+msgid ""
+"Locks the audio driver's main loop.\n"
+"[b]Note:[/b] Remember to unlock it afterwards."
+msgstr ""
+"Sperrt die Hauptschleife des Audiotreibers.\n"
+"[b]Hinweis:[/b] Vergessen Sie nicht, die Sperre anschließend aufzuheben."
+
+msgid "Moves the bus from index [param index] to index [param to_index]."
+msgstr "Verschiebt den Bus vom Index [param index] zum Index [param to_index]."
+
+msgid ""
+"Removes the effect at index [param effect_idx] from the bus at index [param "
+"bus_idx]."
+msgstr ""
+"Entfernt den Effekt bei Index [param effect_idx] vom Bus bei Index [param "
+"bus_idx]."
+
+msgid "Overwrites the currently used [AudioBusLayout]."
+msgstr "Überschreibt das aktuell verwendete [AudioBusLayout]."
+
+msgid ""
+"Connects the output of the bus at [param bus_idx] to the bus named [param "
+"send]."
+msgstr ""
+"Verbindet den Ausgang des Busses an [param bus_idx] mit dem Bus mit dem Namen "
+"[param send]."
+
+msgid ""
+"Unlocks the audio driver's main loop. (After locking it, you should always "
+"unlock it.)"
+msgstr ""
+"Schaltet die Hauptschleife des Audiotreibers frei. (Nachdem Sie sie gesperrt "
+"haben, sollten Sie sie immer wieder entsperren.)"
+
+msgid "Number of available audio buses."
+msgstr "Anzahl der verfügbaren Audiobusse."
+
+msgid ""
+"Name of the current device for audio input (see [method "
+"get_input_device_list]). On systems with multiple audio inputs (such as "
+"analog, USB and HDMI audio), this can be used to select the audio input "
+"device. The value [code]\"Default\"[/code] will record audio on the system-"
+"wide default audio input. If an invalid device name is set, the value will be "
+"reverted back to [code]\"Default\"[/code].\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 ""
+"Name des aktuellen Geräts für die Audioeingabe (siehe [Methode "
+"get_input_device_list]). Auf Systemen mit mehreren Audioeingängen (z. B. "
+"Analog-, USB- und HDMI-Audio) kann dies zur Auswahl des Audioeingangsgeräts "
+"verwendet werden. Der Wert [code]\"Default\"[/code] zeichnet Audio über den "
+"systemweiten Standard-Audioeingang auf. Wenn ein ungültiger Gerätename "
+"eingestellt wird, wird der Wert wieder auf [code]\"Standard\"[/code] "
+"zurückgesetzt.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/driver/enable_input] muss "
+"[code]true[/code] sein, damit die Audioeingabe funktioniert. Lesen Sie auch "
+"die Beschreibung dieser Einstellung, um sich über Einschränkungen in Bezug "
+"auf Berechtigungen und Datenschutzeinstellungen des Betriebssystems zu "
+"informieren."
+
+msgid ""
+"Name of the current device for audio output (see [method "
+"get_output_device_list]). On systems with multiple audio outputs (such as "
+"analog, USB and HDMI audio), this can be used to select the audio output "
+"device. The value [code]\"Default\"[/code] will play audio on the system-wide "
+"default audio output. If an invalid device name is set, the value will be "
+"reverted back to [code]\"Default\"[/code]."
+msgstr ""
+"Name des aktuellen Geräts für die Audioausgabe (siehe [Methode "
+"get_output_device_list]). Auf Systemen mit mehreren Audioausgängen (z. B. "
+"Analog-, USB- und HDMI-Audio) kann dies zur Auswahl des Audioausgabegeräts "
+"verwendet werden. Der Wert [code]\"Default\"[/code] gibt den Ton über den "
+"systemweiten Standard-Audioausgang wieder. Wenn ein ungültiger Gerätename "
+"eingestellt wird, wird der Wert auf [code]\"Standard\"[/code] zurückgesetzt."
+
+msgid ""
+"Scales the rate at which audio is played (i.e. setting it to [code]0.5[/code] "
+"will make the audio be played at half its speed)."
+msgstr ""
+"Skaliert die Geschwindigkeit, mit der die Audiodaten abgespielt werden (d.h. "
+"wenn der Wert [code]0.5[/code] eingestellt ist, werden die Audiodaten mit "
+"halber Geschwindigkeit abgespielt)."
+
+msgid ""
+"Emitted when the audio bus at [param bus_index] is renamed from [param "
+"old_name] to [param new_name]."
+msgstr ""
+"Wird ausgegeben, wenn der Audiobus an [param bus_index] von [param old_name] "
+"in [param new_name] umbenannt wird."
+
+msgid "Two or fewer speakers were detected."
+msgstr "Zwei oder weniger Lautsprecher wurden erkannt."
+
+msgid "A 3.1 channel surround setup was detected."
+msgstr "Ein 3.1 Kanal Surround Setup wurde erkannt."
+
+msgid "A 5.1 channel surround setup was detected."
+msgstr "Ein 5.1 Kanal Surround Setup wurde erkannt."
+
+msgid "A 7.1 channel surround setup was detected."
+msgstr "Ein 7.1 Kanal Surround Setup wurde erkannt."
+
+msgid "Base class for audio streams."
+msgstr "Basisklasse für Audioströme."
+
+msgid ""
+"Base class for audio streams. Audio streams are used for sound effects and "
+"music playback, and support WAV (via [AudioStreamWAV]) and Ogg (via "
+"[AudioStreamOggVorbis]) file formats."
+msgstr ""
+"Basisklasse für Audioströme. Audiostreams werden für Soundeffekte und "
+"Musikwiedergabe verwendet und unterstützen die Dateiformate WAV (über "
+"[AudioStreamWAV]) und Ogg (über [AudioStreamOggVorbis])."
+
+msgid "Audio streams"
+msgstr "Audio-Streams"
+
+msgid "Audio Generator Demo"
+msgstr "Audio-Generator-Demo"
+
+msgid "Returns the length of the audio stream in seconds."
+msgstr "Liefert die Länge des Audio Streams in Sekunden zurück."
+
+msgid ""
+"Returns an AudioStreamPlayback. Useful for when you want to extend [method "
+"_instantiate_playback] but call [method instantiate_playback] from an "
+"internally held AudioStream subresource. An example of this can be found in "
+"the source files for [code]AudioStreamRandomPitch::instantiate_playback[/"
+"code]."
+msgstr ""
+"Gibt ein AudioStreamPlayback zurück. Nützlich, wenn Sie [method "
+"_instantiate_playback] erweitern, aber [method instantiate_playback] von "
+"einer intern gehaltenen AudioStream-Subresource aufrufen wollen. Ein Beispiel "
+"hierfür findet sich in den Quelldateien für [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 ""
+"Gibt true zurück, wenn dieser Audiostream nur monophone Wiedergabe "
+"unterstützt, oder false, wenn der Audiostream Mehrstimmigkeit unterstützt."
+
+msgid "An audio stream with utilities for procedural sound generation."
+msgstr "Ein Audiostrom mit Hilfsprogrammen für die prozedurale Klangerzeugung."
+
+msgid ""
+"The length of the buffer to generate (in seconds). Lower values result in "
+"less latency, but require the script to generate audio data faster, resulting "
+"in increased CPU usage and more risk for audio cracking if the CPU can't keep "
+"up."
+msgstr ""
+"Die Länge des zu erzeugenden Puffers (in Sekunden). Niedrigere Werte führen "
+"zu einer geringeren Latenz, erfordern aber, dass das Skript Audiodaten "
+"schneller generiert, was zu einer höheren CPU-Auslastung führt und das Risiko "
+"von Audio-Cracks erhöht, wenn die CPU nicht mithalten kann."
+
+msgid ""
+"The sample rate to use (in Hz). Higher values are more demanding for the CPU "
+"to generate, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/"
+"url], there is no quality difference to human hearing when going past 40,000 "
+"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"generating lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+"Die zu verwendende Abtastrate (in Hz). Höhere Werte stellen höhere "
+"Anforderungen an die CPU, führen aber zu einer besseren Qualität.\n"
+"In Spielen werden häufig folgende Abtastraten verwendet: [code]11025[/code], "
+"[code]16000[/code], [code]22050[/code], [code]32000[/code], [code]44100[/"
+"code] und [code]48000[/code].\n"
+"Nach dem [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon-Sampling-Theorem[/"
+"url] gibt es keinen Qualitätsunterschied zum menschlichen Gehör, wenn es über "
+"40.000 Hz hinausgeht (da die meisten Menschen nur bis ~20.000 Hz hören "
+"können, oft auch weniger). Wenn Sie tiefe Töne wie Stimmen erzeugen, können "
+"niedrigere Abtastraten wie [code]32000[/code] oder [code]22050[/code] ohne "
+"Qualitätsverluste verwendet werden."
+
+msgid "Plays back audio generated using [AudioStreamGenerator]."
+msgstr "Gibt die mit [AudioStreamGenerator] erzeugten Audiodaten wieder."
+
+msgid ""
+"This class is meant to be used with [AudioStreamGenerator] to play back the "
+"generated audio in real-time."
+msgstr ""
+"Diese Klasse ist für die Verwendung mit [AudioStreamGenerator] gedacht, um "
+"die erzeugten Audiodaten in Echtzeit wiederzugeben."
+
+msgid ""
+"Returns [code]true[/code] if a buffer of the size [param amount] can be "
+"pushed to the audio sample data buffer without overflowing it, [code]false[/"
+"code] otherwise."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Puffer der Größe [param amount] in "
+"den Audiosample-Datenpuffer geschoben werden kann, ohne ihn zu überlaufen, "
+"[code]false[/code] andernfalls."
+
+msgid "Clears the audio sample data buffer."
+msgstr "Löscht den Audio-Sample-Datenpuffer."
+
+msgid ""
+"Returns the number of frames that can be pushed to the audio sample data "
+"buffer without overflowing it. If the result is [code]0[/code], the buffer is "
+"full."
+msgstr ""
+"Gibt die Anzahl der Frames zurück, die in den Audiosample-Datenpuffer "
+"geschoben werden können, ohne dass dieser überläuft. Wenn das Ergebnis "
+"[code]0[/code] ist, ist der Puffer voll."
+
+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 ""
+"Schiebt mehrere Audiodatenframes in den Puffer. Dies ist in der Regel "
+"effizienter als [method push_frame] in C# und kompilierten Sprachen über "
+"GDExtension, aber [method push_buffer] kann [i]weniger[/i] effizient in "
+"GDScript sein."
+
+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 ""
+"Schiebt einen einzelnen Audiodatenframe in den Puffer. Dies ist in der Regel "
+"weniger effizient als [method push_buffer] in C# und kompilierten Sprachen "
+"über GDExtension, aber [method push_frame] kann [i]effizienter[/i] in "
+"GDScript sein."
+
+msgid "Plays real-time audio input data."
+msgstr "Spielt Audio-Eingangsdaten in Echtzeit ab."
+
+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 ""
+"Bei direkter Verwendung in einem [AudioStreamPlayer]-Knoten (Node) gibt "
+"[AudioStreamMicrophone] die Mikrofoneingabe in Echtzeit wieder. Dies kann in "
+"Verbindung mit [AudioEffectCapture] verwendet werden, um die Daten zu "
+"verarbeiten oder zu speichern.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/driver/enable_input] muss "
+"[code]true[/code] sein, damit die Audioeingabe funktioniert. Siehe auch die "
+"Beschreibung dieser Einstellung für Hinweise zu den Berechtigungen und den "
+"Datenschutzeinstellungen des Betriebssystems."
+
+msgid "MP3 audio stream driver."
+msgstr "MP3 Audio Stream Treiber."
+
+msgid ""
+"MP3 audio stream driver. See [member data] if you want to load an MP3 file at "
+"run-time."
+msgstr ""
+"MP3-Audio-Stream-Treiber. Siehe [Mitgliedsdaten], wenn Sie eine MP3-Datei zur "
+"Laufzeit laden wollen."
+
+msgid ""
+"Contains the audio data in bytes.\n"
+"You can load a file without having to import it beforehand using the code "
+"snippet below. Keep in mind that this snippet loads the whole file into "
+"memory and may not be ideal for huge files (hundreds of megabytes or more).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func load_mp3(path):\n"
+" var file = FileAccess.open(path, FileAccess.READ)\n"
+" var sound = AudioStreamMP3.new()\n"
+" sound.data = file.get_buffer(file.get_length())\n"
+" return sound\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public AudioStreamMP3 LoadMP3(string path)\n"
+"{\n"
+" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n"
+" var sound = new AudioStreamMP3();\n"
+" sound.Data = file.GetBuffer(file.GetLength());\n"
+" return sound;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Enthält die Audiodaten in Bytes.\n"
+"Mit dem folgenden Codeschnipsel können Sie eine Datei laden, ohne sie vorher "
+"importieren zu müssen. Beachten Sie, dass dieses Snippet die gesamte Datei in "
+"den Speicher lädt und für große Dateien (Hunderte von Megabytes oder mehr) "
+"nicht ideal ist.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func load_mp3(path):\n"
+" var file = FileAccess.open(path, FileAccess.READ)\n"
+" var sound = AudioStreamMP3.new()\n"
+" sound.data = file.get_buffer(file.get_length())\n"
+" return sound\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public AudioStreamMP3 LoadMP3(string path)\n"
+"{\n"
+" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n"
+" var sound = new AudioStreamMP3();\n"
+" sound.Data = file.GetBuffer(file.GetLength());\n"
+" return sound;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"If [code]true[/code], the stream will automatically loop when it reaches the "
+"end."
+msgstr ""
+"Wenn [code]wahr[/code] wird der Stream automatisch neu gestartet wenn er das "
+"Ende erreicht."
+
+msgid "Time in seconds at which the stream starts after being looped."
+msgstr "Zeit in Sekunden, zu dem der Stream nach der Schleifenbildung beginnt."
+
+msgid "A class representing an Ogg Vorbis audio stream."
+msgstr "Eine Klasse, die einen Ogg Vorbis-Audio-Stream darstellt."
+
+msgid ""
+"The AudioStreamOggVorbis class is a specialized [AudioStream] for handling "
+"Ogg Vorbis file formats. It offers functionality for loading and playing back "
+"Ogg Vorbis files, as well as managing looping and other playback properties. "
+"This class is part of the audio stream system, which also supports WAV files "
+"through the [AudioStreamWAV] class."
+msgstr ""
+"Die Klasse AudioStreamOggVorbis ist eine spezielle [AudioStream]-Klasse für "
+"die Verarbeitung von Ogg Vorbis-Dateiformaten. Sie bietet Funktionen zum "
+"Laden und Abspielen von Ogg Vorbis-Dateien sowie zur Verwaltung von Schleifen "
+"und anderen Wiedergabeeigenschaften. Diese Klasse ist Teil des AudioStream-"
+"Systems, das auch WAV-Dateien über die Klasse [AudioStreamWAV] unterstützt."
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer "
+"must contain Ogg Vorbis data."
+msgstr ""
+"Erzeugt eine neue AudioStreamOggVorbis-Instanz aus dem angegebenen Puffer. "
+"Der Puffer muss OggVorbis-Daten enthalten."
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given file path. The "
+"file must be in Ogg Vorbis format."
+msgstr ""
+"Erzeugt eine neue AudioStreamOggVorbis-Instanz aus dem angegebenen Dateipfad. "
+"Die Datei muss im OggVorbis-Format vorliegen."
+
+msgid ""
+"If [code]true[/code], the audio will play again from the specified [member "
+"loop_offset] once it is done playing. Useful for ambient sounds and "
+"background music."
+msgstr ""
+"Wenn [code]true[/code], wird der Ton ab dem angegebenen [member loop_offset] "
+"erneut abgespielt, sobald er fertig abgespielt ist. Nützlich für "
+"Umgebungsgeräusche und Hintergrundmusik."
+
+msgid "Contains the raw Ogg data for this stream."
+msgstr "Enthält die Ogg-Rohdaten für diesen Stream."
+
+msgid "Meta class for playing back audio."
+msgstr "Metaklasse für die Wiedergabe von Audio."
+
+msgid ""
+"Can play, loop, pause a scroll through audio. See [AudioStream] and "
+"[AudioStreamOggVorbis] for usage."
+msgstr ""
+"Kann Audio abspielen, loopen, pausieren und durchblättern. Siehe "
+"[AudioStream] und [AudioStreamOggVorbis] für die Verwendung."
+
+msgid "Playback instance for [AudioStreamPolyphonic]."
+msgstr "Abspielinstanz für [AudioStreamPolyphonic]."
+
+msgid ""
+"Playback instance for [AudioStreamPolyphonic]. After setting the "
+"[code]stream[/code] property of [AudioStreamPlayer], [AudioStreamPlayer2D], "
+"or [AudioStreamPlayer3D], the playback instance can be obtained by calling "
+"[method AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D."
+"get_stream_playback] or [method AudioStreamPlayer3D.get_stream_playback] "
+"methods."
+msgstr ""
+"Abspielinstanz für [AudioStreamPolyphonic]. Nach dem Setzen der [code]stream[/"
+"code]-Eigenschaft von [AudioStreamPlayer], [AudioStreamPlayer2D] oder "
+"[AudioStreamPlayer3D] kann die Wiedergabeinstanz durch Aufruf der Methoden "
+"[method AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D."
+"get_stream_playback] oder [method AudioStreamPlayer3D.get_stream_playback] "
+"erhalten werden."
+
+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 ""
+"Gibt true zurück, wenn der mit einer Integer-ID verbundene Stream noch "
+"abgespielt wird. Siehe [method play_stream] für Informationen darüber, wann "
+"diese ID ungültig wird."
+
+msgid ""
+"Play an [AudioStream] at a given offset, volume and pitch scale. Playback "
+"starts immediately.\n"
+"The return value is a 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 ""
+"Spielen Sie einen [AudioStream] mit einem bestimmten Offset, einer bestimmten "
+"Lautstärke und einer bestimmten Tonhöhe ab. Die Wiedergabe beginnt sofort.\n"
+"Der Rückgabewert ist eine eindeutige Integer-ID, die mit diesem "
+"Wiedergabestream verknüpft ist und zu dessen Steuerung verwendet werden "
+"kann.\n"
+"Diese ID wird ungültig, wenn der Stream endet (wenn er nicht in einer "
+"Schleife läuft), wenn der [AudioStreamPlaybackPolyphonic] gestoppt wird oder "
+"wenn die [Methode stop_stream] aufgerufen wird.\n"
+"Diese Funktion gibt die [Konstante INVALID_ID] zurück, wenn die Anzahl der "
+"aktuell abgespielten Streams gleich [member AudioStreamPolyphonic.polyphony] "
+"ist. Wenn Sie eine höhere Anzahl an maximaler Polyphonie benötigen, erhöhen "
+"Sie diesen Wert."
+
+msgid ""
+"Change the stream pitch scale. The [param stream] argument is an integer ID "
+"returned by [method play_stream]."
+msgstr ""
+"Ändert die Tonhöhenskala des Streams. Das Argument [param stream] ist eine "
+"Integer-ID, die von [method play_stream] zurückgegeben wird."
+
+msgid ""
+"Change the stream volume (in db). The [param stream] argument is an integer "
+"ID returned by [method play_stream]."
+msgstr ""
+"Ändert die Lautstärke des Streams (in db). Das Argument [param stream] ist "
+"eine Integer-ID, die von [method play_stream] zurückgegeben wird."
+
+msgid ""
+"Stop a stream. The [param stream] argument is an integer ID returned by "
+"[method play_stream], which becomes invalid after calling this function."
+msgstr ""
+"Stoppt einen Stream. Das Argument [param stream] ist eine Integer-ID, die von "
+"der [Methode play_stream] zurückgegeben wird und nach dem Aufruf dieser "
+"Funktion ungültig wird."
+
+msgid ""
+"Returned by [method play_stream] in case it could not allocate a stream for "
+"playback."
+msgstr ""
+"Wird von der [Methode play_stream] zurückgegeben, wenn sie keinen Stream für "
+"die Wiedergabe zuweisen konnte."
+
+msgid "Plays back audio non-positionally."
+msgstr "Gibt Audiosignale nicht positioniert wieder."
+
+msgid ""
+"Plays an audio stream non-positionally.\n"
+"To play audio positionally, use [AudioStreamPlayer2D] or "
+"[AudioStreamPlayer3D] instead of [AudioStreamPlayer]."
+msgstr ""
+"Spielt einen Audiostrom nichtpositioniert ab.\n"
+"Um Audio positioniert abzuspielen, verwenden Sie [AudioStreamPlayer2D] oder "
+"[AudioStreamPlayer3D] anstelle von [AudioStreamPlayer]."
+
+msgid "Returns the position in the [AudioStream] in seconds."
+msgstr "Gibt die Position im [AudioStream] in Sekunden zurück."
+
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer]."
+msgstr ""
+"Gibt das [AudioStreamPlayback]-Objekt zurück, das mit diesem "
+"[AudioStreamPlayer] verbunden ist."
+
+msgid ""
+"Returns whether the [AudioStreamPlayer] can return the [AudioStreamPlayback] "
+"object or not."
+msgstr ""
+"Gibt zurück, ob der [AudioStreamPlayer] das [AudioStreamPlayback]-Objekt "
+"zurückgeben kann oder nicht."
+
+msgid "Plays the audio from the given [param from_position], in seconds."
+msgstr "Spielt den Ton ab der angegebenen [param from_position], in Sekunden."
+
+msgid "Sets the position from which audio will be played, in seconds."
+msgstr "Legt die Position in Sekunden fest, ab der die Tonausgabe startet."
+
+msgid "Stops the audio."
+msgstr "Beendet die Tonausgabe."
+
+msgid "If [code]true[/code], audio plays when added to scene tree."
+msgstr ""
+"Wenn [code]true[/code], wird der Ton abgespielt, wenn er zum Szenenbaum "
+"hinzugefügt wird."
+
+msgid ""
+"Bus on which this audio is playing.\n"
+"[b]Note:[/b] When setting this property, keep in mind that no validation is "
+"performed to see if the given name matches an existing bus. This is because "
+"audio bus layouts might be loaded after this property is set. If this given "
+"name can't be resolved at runtime, it will fall back to [code]\"Master\"[/"
+"code]."
+msgstr ""
+"Der Audio-Bus, auf dem dieses Audio abgespielt wird.\n"
+"[b]Hinweis:[/b] Beachten Sie beim Setzen dieser Eigenschaft, dass keine "
+"Überprüfung erfolgt, ob der angegebene Name mit einem vorhandenen Bus "
+"übereinstimmt. Der Grund dafür ist, dass Audio-Bus-Layouts geladen werden "
+"können, nachdem diese Eigenschaft gesetzt wurde. Wenn der angegebene Name zur "
+"Laufzeit nicht aufgelöst werden kann, wird er auf [code]\"Master\"[/code] "
+"zurückgesetzt."
+
+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 ""
+"Die maximale Anzahl von Klängen, die dieser Knoten (Node) gleichzeitig "
+"abspielen kann. Wenn nach Erreichen dieses Wertes weitere Klänge abgespielt "
+"werden, werden die ältesten Klänge abgeschnitten."
+
+msgid ""
+"If the audio configuration has more than two speakers, this sets the target "
+"channels. See [enum MixTarget] constants."
+msgstr ""
+"Wenn die Audiokonfiguration mehr als zwei Lautsprecher hat, werden hier die "
+"Zielkanäle festgelegt. Siehe [enum MixTarget] Konstanten."
+
+msgid ""
+"The pitch and the tempo of the audio, as a multiplier of the audio sample's "
+"sample rate."
+msgstr ""
+"Die Tonhöhe und das Tempo des Audiomaterials als Multiplikator der Abtastrate "
+"des Audiosamples."
+
+msgid "If [code]true[/code], audio is playing."
+msgstr "Falls [code]wahr[/code] wir Audio gerade abgespielt."
+
+msgid "The [AudioStream] object to be played."
+msgstr "Das [AudioStream]-Objekt, das abgespielt werden soll."
+
+msgid ""
+"If [code]true[/code], the playback is paused. You can resume it by setting "
+"[member stream_paused] to [code]false[/code]."
+msgstr ""
+"Wenn [code]true[/code], wird die Wiedergabe angehalten. Sie können sie "
+"fortsetzen, indem Sie [member stream_paused] auf [code]false[/code] setzen."
+
+msgid "Volume of sound, in dB."
+msgstr "Lautstärke der Tonausgabe in dB."
+
+msgid "Emitted when the audio stops playing."
+msgstr "Wird ausgegeben, wenn der Ton aufhört zu spielen."
+
+msgid "The audio will be played only on the first channel."
+msgstr "Der Ton wird nur auf dem ersten Kanal wiedergegeben."
+
+msgid "The audio will be played on all surround channels."
+msgstr "Der Ton wird auf allen Surround-Kanälen wiedergegeben."
+
+msgid ""
+"The audio will be played on the second channel, which is usually the center."
+msgstr ""
+"Der Ton wird auf dem zweiten Kanal wiedergegeben, der normalerweise der "
+"Center-Kanal ist."
+
+msgid "Plays positional sound in 2D space."
+msgstr "Spielt Positionsgeräusche im 2D-Raum ab."
+
+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 ""
+"Gibt Audio wieder, das mit der Entfernung zum Hörer abgeschwächt wird.\n"
+"Standardmäßig wird der Ton von der Bildschirmmitte aus gehört. Dies kann "
+"geändert werden, indem man einen [AudioListener2D]-Knoten (Node) zur Szene "
+"hinzufügt und ihn durch Aufruf der [Methode AudioListener2D.make_current] "
+"aktiviert.\n"
+"Siehe auch [AudioStreamPlayer], um einen Ton nicht-positional abzuspielen.\n"
+"[b]Hinweis:[/b] Das Ausblenden eines [AudioStreamPlayer2D]-Knotens (Node) "
+"deaktiviert nicht seine Audioausgabe. Um die Audioausgabe eines "
+"[AudioStreamPlayer2D] vorübergehend zu deaktivieren, setze [member volume_db] "
+"auf einen sehr niedrigen Wert wie [code]-100[/code] (der für das menschliche "
+"Gehör nicht hörbar ist)."
+
+msgid "Returns the position in the [AudioStream]."
+msgstr "Gibt die Position im [AudioStream] zurück."
+
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer2D]."
+msgstr ""
+"Gibt das [AudioStreamPlayback]-Objekt zurück, das mit diesem "
+"[AudioStreamPlayer2D] verbunden ist."
+
+msgid ""
+"Queues the audio to play on the next physics frame, from the given position "
+"[param from_position], in seconds."
+msgstr ""
+"Stellt das Audio in eine Warteschlange, um es im nächsten Physik-Frame ab der "
+"angegebenen Position [param from_position] in Sekunden abzuspielen."
+
+msgid ""
+"Determines which [Area2D] 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 ""
+"Legt fest, welche [Area2D]-Ebenen den Klang für Hall- und Audiobus-Effekte "
+"beeinflussen. Bereiche können verwendet werden, um [AudioStream]s so "
+"umzuleiten, dass sie in einem bestimmten Audiobus abgespielt werden. Ein "
+"Beispiel hierfür ist ein \"Wasser\"-Bereich, in dem Klänge, die im Wasser "
+"gespielt werden, durch einen Audiobus umgeleitet werden, so dass sie wie "
+"unter Wasser klingen."
+
+msgid "The volume is attenuated over distance with this as an exponent."
+msgstr ""
+"Die Lautstärke wird über die Entfernung mit diesem Exponenten abgeschwächt."
+
+msgid "Maximum distance from which audio is still hearable."
+msgstr "Maximale Entfernung, aus ignore-duplicate:der der Ton noch hörbar ist."
+
+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 ""
+"Skaliert die Panoramastärke für diesen Knoten durch Multiplikation der Basis "
+"[member ProjectSettings.audio/general/2d_panning_strength] mit diesem Faktor. "
+"Bei höheren Werten wird das Audio stärker von links nach rechts geschwenkt "
+"als bei niedrigeren Werten."
+
+msgid "Base volume before attenuation."
+msgstr "Grundlautstärke vor Dämpfung."
+
+msgid "Plays positional sound in 3D space."
+msgstr "Spielt Positionsgeräusche im 3D-Raum ab."
+
+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 ""
+"Spielt Audio mit positionsabhängigen Klangeffekten ab, die auf der relativen "
+"Position des Zuhörers basieren. Zu den Positionseffekten gehören "
+"Entfernungsdämpfung, Richtwirkung und der Dopplereffekt. Für mehr Realismus "
+"wird ein Tiefpassfilter auf entfernte Klänge angewendet. Dieser kann "
+"deaktiviert werden, indem [member attenuation_filter_cutoff_hz] auf "
+"[code]20500[/code] gesetzt wird.\n"
+"Standardmäßig wird der Ton von der Kameraposition aus gehört. Dies kann "
+"geändert werden, indem man einen [AudioListener3D]-Knoten (Node) zur Szene "
+"hinzufügt und ihn durch Aufruf der [method AudioListener3D.make_current] "
+"aktiviert.\n"
+"Siehe auch [AudioStreamPlayer], um einen Ton nicht-positional abzuspielen.\n"
+"[b]Hinweis:[/b] Das Ausblenden eines [AudioStreamPlayer3D]-Knotens (Node) "
+"deaktiviert nicht seine Audioausgabe. Um die Audioausgabe eines "
+"[AudioStreamPlayer3D]-Knotens (Node) vorübergehend zu deaktivieren, setze "
+"[member volume_db] auf einen sehr niedrigen Wert wie [code]-100[/code] (der "
+"für das menschliche Gehör nicht hörbar ist)."
+
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer3D]."
+msgstr ""
+"Gibt das [AudioStreamPlayback]-Objekt zurück, das mit diesem "
+"[AudioStreamPlayer3D] verbunden ist."
+
+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 ""
+"Legt fest, welche [Area3D]-Ebenen den Klang für Hall- und Audiobus-Effekte "
+"beeinflussen. Bereiche können verwendet werden, um [AudioStream]s so "
+"umzuleiten, dass sie in einem bestimmten Audiobus abgespielt werden. Ein "
+"Beispiel hierfür ist ein \"Wasser\"-Bereich, in dem Sounds, die im Wasser "
+"gespielt werden, durch einen Audiobus umgeleitet werden, so dass sie wie "
+"unter Wasser klingen."
+
+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 ""
+"Die Cutoff-Frequenz des Dämpfungstiefpassfilters in Hz. Ein Ton oberhalb "
+"dieser Frequenz wird stärker abgeschwächt als ein Ton unterhalb dieser "
+"Frequenz. Um diesen Effekt zu deaktivieren, setzen Sie diesen Wert auf "
+"[code]20500[/code], da diese Frequenz oberhalb der menschlichen Hörgrenze "
+"liegt."
+
+msgid "Amount how much the filter affects the loudness, in decibels."
+msgstr "Betrag, wie stark der Filter die Lautstärke beeinflusst, in Dezibel."
+
+msgid ""
+"Decides if audio should get quieter with distance linearly, quadratically, "
+"logarithmically, or not be affected by distance, effectively disabling "
+"attenuation."
+msgstr ""
+"Legt fest, ob der Ton mit der Entfernung linear, quadratisch oder "
+"logarithmisch leiser werden soll oder ob er nicht von der Entfernung "
+"beeinflusst werden soll, wodurch die Dämpfung effektiv deaktiviert wird."
+
+msgid ""
+"If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added "
+"to scene tree."
+msgstr ""
+"Wenn [code]true[/code], wird Audio abgespielt, wenn der AudioStreamPlayer3D-"
+"Knoten (Node) zum Szenenbaum hinzugefügt wird."
+
+msgid ""
+"The bus on which this audio is playing.\n"
+"[b]Note:[/b] When setting this property, keep in mind that no validation is "
+"performed to see if the given name matches an existing bus. This is because "
+"audio bus layouts might be loaded after this property is set. If this given "
+"name can't be resolved at runtime, it will fall back to [code]\"Master\"[/"
+"code]."
+msgstr ""
+"Der Bus, auf dem dieses Audio abgespielt wird.\n"
+"[b]Hinweis:[/b] Beim Setzen dieser Eigenschaft ist zu beachten, dass keine "
+"Überprüfung erfolgt, ob der angegebene Name mit einem vorhandenen Bus "
+"übereinstimmt. Der Grund dafür ist, dass Audio-Bus-Layouts geladen werden "
+"können, nachdem diese Eigenschaft gesetzt wurde. Wenn der angegebene Name zur "
+"Laufzeit nicht aufgelöst werden kann, wird er auf [code]\"Master\"[/code] "
+"zurückgesetzt."
+
+msgid "Decides in which step the Doppler effect should be calculated."
+msgstr "Legt fest, in welchem Schritt der Dopplereffekt berechnet werden soll."
+
+msgid ""
+"Attenuation factor used if listener is outside of [member "
+"emission_angle_degrees] and [member emission_angle_enabled] is set, in "
+"decibels."
+msgstr ""
+"Dämpfungsfaktor in Dezibel, der verwendet wird, wenn der Hörer außerhalb von "
+"[member emission_angle_degrees] liegt und [member emission_angle_enabled] "
+"eingestellt ist."
+
+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 ""
+"Die Entfernung, ab ignore-duplicate:der der Ton nicht mehr gehört werden "
+"kann. Hat nur eine Wirkung, wenn der Wert größer als [code]0.0[/code] ist. "
+"[member max_distance] arbeitet mit [member unit_size] zusammen. Im Gegensatz "
+"zu [member unit_size], dessen Verhalten vom [member attenuation_model] "
+"abhängt, arbeitet [member max_distance] jedoch immer linear. Dies kann "
+"verwendet werden, um zu verhindern, dass der [AudioStreamPlayer3D] eine "
+"Audiomischung benötigt, wenn der Zuhörer weit entfernt ist, was CPU-"
+"Ressourcen spart."
+
+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 ""
+"Skaliert die Panoramastärke für diesen Knoten durch Multiplikation der Basis "
+"[member ProjectSettings.audio/general/3d_panning_strength] mit diesem Faktor. "
+"Bei höheren Werten wird das Audio stärker von links nach rechts geschwenkt "
+"als bei niedrigeren Werten."
+
+msgid "The [AudioStream] resource to be played."
+msgstr "Die [AudioStream]-Ressource, die abgespielt werden soll."
+
+msgid ""
+"The factor for the attenuation effect. Higher values make the sound audible "
+"over a larger distance."
+msgstr ""
+"Der Faktor für den Dämpfungseffekt. Höhere Werte lassen den Ton über eine "
+"größere Entfernung hörbar werden."
+
+msgid "The base sound level before attenuation, in decibels."
+msgstr "Der Grundschallpegel vor Dämpfung in Dezibel."
+
+msgid "Attenuation of loudness according to linear distance."
+msgstr "Abschwächung der Lautstärke in Abhängigkeit vom linearen Abstand."
+
+msgid "Attenuation of loudness according to squared distance."
+msgstr ""
+"Abschwächung der Lautstärke in Abhängigkeit von der quadrierten Entfernung."
+
+msgid "Attenuation of loudness according to logarithmic distance."
+msgstr ""
+"Abschwächung der Lautstärke in Abhängigkeit von der logarithmischen "
+"Entfernung."
+
+msgid ""
+"No attenuation of loudness according to distance. The sound will still be "
+"heard positionally, unlike an [AudioStreamPlayer]. [constant "
+"ATTENUATION_DISABLED] can be combined with a [member max_distance] value "
+"greater than [code]0.0[/code] to achieve linear attenuation clamped to a "
+"sphere of a defined size."
+msgstr ""
+"Keine Abschwächung der Lautstärke in Abhängigkeit von der Entfernung. Der Ton "
+"wird im Gegensatz zu einem [AudioStreamPlayer] immer noch positionsbezogen "
+"gehört. Die [Konstante ATTENUATION_DISABLED] kann mit einem [member "
+"max_distance]-Wert größer als [code]0.0[/code] kombiniert werden, um eine "
+"lineare Dämpfung zu erreichen, die auf eine Kugel definierter Größe begrenzt "
+"ist."
+
+msgid "Disables doppler tracking."
+msgstr "Deaktiviert die Dopplerverfolgung."
+
+msgid ""
+"Executes doppler tracking during process frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PROCESS])."
+msgstr ""
+"Führt die Dopplerverfolgung während der Prozessrahmen aus (siehe [Konstante "
+"Node.NOTIFICATION_INTERNAL_PROCESS])."
+
+msgid ""
+"Executes doppler tracking during physics frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])."
+msgstr ""
+"Führt die Doppler-Verfolgung während der Physik-Frames aus (siehe [Konstante "
+"Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS])."
+
+msgid ""
+"AudioStream that lets the user play custom streams at any time from code, "
+"simultaneously using a single player."
+msgstr ""
+"AudioStream, mit dem der Benutzer jederzeit benutzerdefinierte Streams aus "
+"dem Code abspielen kann, und zwar gleichzeitig mit einem einzigen Player."
+
+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, mit dem der Benutzer jederzeit benutzerdefinierte Streams aus "
+"dem Code abspielen kann, und zwar gleichzeitig mit einem einzigen Player.\n"
+"Die Wiedergabesteuerung erfolgt über die im Player festgelegte "
+"[AudioStreamPlaybackPolyphonic]-Instanz, die über die Methoden [method "
+"AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D."
+"get_stream_playback] oder [method AudioStreamPlayer3D.get_stream_playback] "
+"erhalten werden kann. Das Abrufen der Wiedergabeinstanz ist nur gültig, "
+"nachdem die [code]stream[/code]-Eigenschaft als [AudioStreamPolyphonic] in "
+"diesen Playern festgelegt wurde."
+
+msgid "Maximum amount of simultaneous streams that can be played."
+msgstr "Maximale Anzahl gleichzeitiger Streams, die abgespielt werden können."
+
+msgid "Wraps a pool of audio streams with pitch and volume shifting."
+msgstr ""
+"Umfasst einen Pool von Audiostreams mit Tonhöhen- und Lautstärkeverschiebung."
+
+msgid ""
+"Picks a random AudioStream from the pool, depending on the playback mode, and "
+"applies random pitch shifting and volume shifting during playback."
+msgstr ""
+"Wählt je nach Wiedergabemodus einen zufälligen AudioStream aus dem Pool aus "
+"und wendet während der Wiedergabe eine zufällige Tonhöhen- und "
+"Lautstärkeverschiebung an."
+
+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 ""
+"Einfügen eines Streams am angegebenen Index. Ist der Index kleiner als Null, "
+"erfolgt das Einfügen am Ende des zugrunde liegenden Pools."
+
+msgid "Move a stream from one index to another."
+msgstr "Verschieben eines Streams von einem Index zu einem anderen."
+
+msgid "Remove the stream at the specified index."
+msgstr "Entfernt den Stream am angegebenen Index."
+
+msgid "Set the AudioStream at the specified index."
+msgstr "Setzt den AudioStream auf den angegebenen Index."
+
+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 ""
+"Legt die Wahrscheinlichkeitsgewichtung des Streams mit dem angegebenen Index "
+"fest. Je höher dieser Wert ist, desto wahrscheinlicher ist es, dass der "
+"Zufallsgenerator diesen Stream bei der Zufallswiedergabe auswählt."
+
+msgid ""
+"Controls how this AudioStreamRandomizer picks which AudioStream to play next."
+msgstr ""
+"Steuert, wie dieser AudioStreamRandomizer den nächsten abzuspielenden "
+"AudioStream auswählt."
+
+msgid ""
+"The intensity of random pitch variation. A value of 1 means no variation."
+msgstr ""
+"Die Intensität der zufälligen Tonhöhenvariation. Ein Wert von 1 bedeutet "
+"keine Variation."
+
+msgid ""
+"The intensity of random volume variation. A value of 0 means no variation."
+msgstr ""
+"Die Intensität der zufälligen Volumenvariation. Ein Wert von 0 bedeutet keine "
+"Variation."
+
+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 ""
+"Wählen Sie einen Stream nach dem Zufallsprinzip entsprechend der für jeden "
+"Stream gewählten Wahrscheinlichkeitsgewichtung aus, aber vermeiden Sie nach "
+"Möglichkeit, denselben Stream zweimal hintereinander abzuspielen. Wenn nur 1 "
+"Sound im Pool vorhanden ist, wird immer derselbe Sound abgespielt, so dass "
+"Wiederholungen möglich sind."
+
+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 ""
+"Wählen Sie einen Stream nach dem Zufallsprinzip entsprechend der für jeden "
+"Stream gewählten Wahrscheinlichkeitsgewichtung. Wenn nur 1 Ton im Pool "
+"vorhanden ist, wird immer derselbe Ton gespielt."
+
+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 ""
+"Streams in der Reihenfolge abspielen, in der sie im Stream-Pool erscheinen. "
+"Wenn nur 1 Ton im Pool vorhanden ist, wird immer derselbe Ton gespielt."
+
+msgid "Stores audio data loaded from WAV files."
+msgstr "Speichert Audiodaten, die aus WAV-Dateien geladen wurden."
+
+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 speichert Tonbeispiele, die aus WAV-Dateien geladen werden. Um "
+"den gespeicherten Sound abzuspielen, verwenden Sie einen [AudioStreamPlayer] "
+"(für nicht positioniertes Audio) oder [AudioStreamPlayer2D]/"
+"[AudioStreamPlayer3D] (für positioniertes Audio). Der Ton kann in einer "
+"Schleife abgespielt werden.\n"
+"Diese Klasse kann auch verwendet werden, um dynamisch erzeugte PCM-Audiodaten "
+"zu speichern. Siehe auch [AudioStreamGenerator] für prozedurale "
+"Audioerzeugung."
+
+msgid ""
+"Saves the AudioStreamWAV as a WAV file to [param path]. Samples with IMA "
+"ADPCM format can't be saved.\n"
+"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to "
+"[param path] if it is missing."
+msgstr ""
+"Speichert den AudioStreamWAV als WAV-Datei in [param Pfad]. Samples im IMA "
+"ADPCM-Format können nicht gespeichert werden.\n"
+"[b]Hinweis:[/b] Die Erweiterung [code].wav[/code] wird automatisch an [param "
+"path] angehängt, wenn sie fehlt."
+
+msgid ""
+"Contains the audio data in bytes.\n"
+"[b]Note:[/b] This property expects signed PCM8 data. To convert unsigned PCM8 "
+"to signed PCM8, subtract 128 from each byte."
+msgstr ""
+"Enthält die Audiodaten in Bytes.\n"
+"[b]Hinweis:[/b] Diese Eigenschaft erwartet vorzeichenbehaftete PCM8-Daten. Um "
+"PCM8 ohne Vorzeichen in PCM8 mit Vorzeichen zu konvertieren, ziehen Sie 128 "
+"von jedem Byte ab."
+
+msgid "Audio format. See [enum Format] constants for values."
+msgstr "Audioformat. Siehe [enum Format] Konstanten für Werte."
+
+msgid ""
+"The loop start point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file if "
+"present."
+msgstr ""
+"Der Startpunkt der Schleife (in Anzahl der Samples, relativ zum Anfang des "
+"Samples). Diese Information wird automatisch aus der WAV-Datei importiert, "
+"falls vorhanden."
+
+msgid ""
+"The loop end point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file if "
+"present."
+msgstr ""
+"Der Endpunkt der Schleife (in Anzahl der Samples, relativ zum Anfang des "
+"Samples). Diese Information wird automatisch aus der WAV-Datei importiert, "
+"falls vorhanden."
+
+msgid ""
+"The loop mode. This information will be imported automatically from the WAV "
+"file if present. See [enum LoopMode] constants for values."
+msgstr ""
+"Der Schleifenmodus. Diese Information wird, falls vorhanden, automatisch aus "
+"der WAV-Datei importiert. Siehe [enum LoopMode] Konstanten für Werte."
+
+msgid ""
+"The sample rate for mixing this audio. Higher values require more storage "
+"space, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/"
+"url], there is no quality difference to human hearing when going past 40,000 "
+"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"using lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+"Die Samplerate für das Mischen dieser Audiodaten. Höhere Werte erfordern mehr "
+"Speicherplatz, führen aber zu einer besseren Qualität.\n"
+"In Spielen werden häufig folgende Sampleraten verwendet: [code]11025[/code], "
+"[code]16000[/code], [code]22050[/code], [code]32000[/code], [code]44100[/"
+"code], und [code]48000[/code].\n"
+"Nach dem [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon-Sampling-Theorem[/"
+"url] gibt es keinen Qualitätsunterschied zum menschlichen Gehör, wenn es über "
+"40.000 Hz hinausgeht (da die meisten Menschen nur bis ~20.000 Hz hören "
+"können, oft auch weniger). Wenn Sie tiefe Töne wie Stimmen verwenden, können "
+"niedrigere Abtastraten wie [code]32000[/code] oder [code]22050[/code] ohne "
+"Qualitätsverluste verwendet werden."
+
+msgid "If [code]true[/code], audio is stereo."
+msgstr "Wenn [code]true[/code], ist der Ton stereo."
+
+msgid "8-bit audio codec."
+msgstr "8-Bit-Audio-Codec."
+
+msgid "16-bit audio codec."
+msgstr "16-Bit-Audio-Codec."
+
+msgid "Audio is compressed using IMA ADPCM."
+msgstr "Audio wird mit IMA ADPCM komprimiert."
+
+msgid "Audio does not loop."
+msgstr "Audio wird nicht wiederholt."
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing forward only."
+msgstr ""
+"Audio spielt die Daten zwischen [member loop_begin] und [member loop_end] in "
+"einer Schleife ab, wobei nur vorwärts gespielt wird."
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing back and forth."
+msgstr ""
+"Audio führt die Daten zwischen [member loop_begin] und [member loop_end] in "
+"einer Schleife vor und zurück."
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing backward only."
+msgstr ""
+"Audio spielt die Daten zwischen [member loop_begin] und [member loop_end] in "
+"einer Schleife ab, wobei die Wiedergabe nur rückwärts erfolgt."
+
+msgid ""
+"A node that copies a region of the screen to a buffer for access in shader "
+"code."
+msgstr ""
+"Ein Knoten (Node), der einen Bereich des Bildschirms in einen Puffer für den "
+"Zugriff im Shader-Code kopiert."
+
+msgid ""
+"Node for back-buffering the currently-displayed screen. The region defined in "
+"the [BackBufferCopy] node is buffered with the content of the screen it "
+"covers, or the entire screen according to the [member copy_mode]. It can be "
+"accessed in shader scripts using the screen texture (i.e. a uniform sampler "
+"with [code]hint_screen_texture[/code]).\n"
+"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
+"anchors and margins won't apply to child [Control]-derived nodes. This can be "
+"problematic when resizing the window. To avoid this, add [Control]-derived "
+"nodes as [i]siblings[/i] to the [BackBufferCopy] node instead of adding them "
+"as children."
+msgstr ""
+"Knoten (Node) für die Rückpufferung des aktuell angezeigten Bildschirms. Der "
+"im [BackBufferCopy]-Knoten (Node) definierte Bereich wird mit dem Inhalt des "
+"Bildschirms gepuffert, den er abdeckt, oder mit dem gesamten Bildschirm, je "
+"nach [member copy_mode]. Es kann in Shader-Skripten mit der Bildschirmtextur "
+"zugegriffen werden (d.h. ein einheitlicher Sampler mit "
+"[code]hint_screen_texture[/code]).\n"
+"[b]Hinweis:[/b] Da dieser Knoten von [Node2D] (und nicht von [Control]) erbt, "
+"werden Anker und Ränder nicht auf untergeordnete, von [Control] abgeleitete "
+"Knoten (Node) angewendet. Dies kann bei der Größenänderung des Fensters "
+"problematisch sein. Um dies zu vermeiden, füge [Control]-abgeleitete Knoten "
+"(Nodes) als [i]Teilknoten[/i] zum [BackBufferCopy]-Knoten (Node) hinzu, "
+"anstatt sie als Kinder hinzuzufügen."
+
+msgid "Buffer mode. See [enum CopyMode] constants."
+msgstr "Buffer-Modus. Siehe [enum CopyMode] Konstanten."
+
+msgid ""
+"The area covered by the [BackBufferCopy]. Only used if [member copy_mode] is "
+"[constant COPY_MODE_RECT]."
+msgstr ""
+"Der Bereich, der von der [BackBufferCopy] abgedeckt wird. Wird nur verwendet, "
+"wenn [member copy_mode] die [Konstante COPY_MODE_RECT] ist."
+
+msgid "[BackBufferCopy] buffers a rectangular region."
+msgstr "[BackBufferCopy] speichert eine rechteckige Region zwischen."
+
+msgid "[BackBufferCopy] buffers the entire screen."
+msgstr "[BackBufferCopy] speichert den kompletten Bildschirm zwischen."
+
+msgid ""
+"[BaseButton] is an abstract base class for GUI buttons. It doesn't display "
+"anything by itself."
+msgstr ""
+"[BaseButton] ist eine abstrakte Basisklasse für GUI-Schaltflächen. Sie zeigt "
+"von sich aus nichts an."
+
+msgid ""
+"Called when the button is pressed. If you need to know the button's pressed "
+"state (and [member toggle_mode] is active), use [method _toggled] instead."
+msgstr ""
+"Wird aufgerufen, wenn die Schaltfläche gedrückt wird. Wenn man wissen muss, "
+"ob die Schaltfläche gedrückt ist (und [member toggle_mode] aktiv ist), "
+"verwendet man stattdessen [method _toggled]."
+
+msgid ""
+"Called when the button is toggled (only if [member toggle_mode] is active)."
+msgstr ""
+"Wird aufgerufen, wenn die Schaltfläche umgeschaltet wird (nur wenn [member "
+"toggle_mode] aktiv ist)."
+
+msgid ""
+"Returns the visual state used to draw the button. This is useful mainly when "
+"implementing your own draw code by either overriding _draw() or connecting to "
+"\"draw\" signal. The visual state of the button is defined by the [enum "
+"DrawMode] enum."
+msgstr ""
+"Gibt den visuellen Zustand zurück, der zum Zeichnen der Schaltfläche "
+"verwendet wird. Dies ist vor allem dann nützlich, wenn der eigene Zeichencode "
+"implementiert wird, indem man entweder _draw() überschreibt oder sich mit dem "
+"\"Draw\"-Signal verbindet. Der visuelle Status der Schaltfläche wird durch "
+"das [enum DrawMode] enum definiert."
+
+msgid ""
+"Returns [code]true[/code] if the mouse has entered the button and has not "
+"left it yet."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Maus die Schaltfläche betreten und "
+"noch nicht verlassen hat."
+
+msgid ""
+"Determines when the button is considered clicked, one of the [enum "
+"ActionMode] constants."
+msgstr ""
+"Bestimmt, wann die Schaltfläche als angeklickt gilt, eine der [enum "
+"ActionMode] Konstanten."
+
+msgid ""
+"The [ButtonGroup] associated with the button. Not to be confused with node "
+"groups.\n"
+"[b]Note:[/b] The button will be configured as a radio button if a "
+"[ButtonGroup] is assigned to it."
+msgstr ""
+"Die mit der Schaltfläche verbundene [ButtonGroup]. Nicht zu verwechseln mit "
+"Knotengruppen (Node Groups).\n"
+"[b]Hinweis:[/b] Die Schaltfläche wird als Optionsschaltfläche konfiguriert, "
+"wenn ihr eine [ButtonGroup] zugewiesen ist."
+
+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 ""
+"Binäre Maske, um auszuwählen, auf welche Maustasten diese Taste reagieren "
+"soll.\n"
+"Um sowohl Linksklick als auch Rechtsklick zuzulassen, verwendet man "
+"[code]MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT[/code]."
+
+msgid ""
+"The normal state (i.e. not pressed, not hovered, not toggled and enabled) of "
+"buttons."
+msgstr ""
+"Der normale Zustand (d. h. nicht gedrückt, nicht in der Schwebe gehalten, "
+"nicht umgeschaltet und aktiviert) von Buttons."
+
+msgid "The state of buttons are pressed."
+msgstr "Der Zustand der gedrückten Buttons."
+
+msgid "The state of buttons are disabled."
+msgstr "Der Status der Buttons ist deaktiviert."
+
+msgid "Require just a press to consider the button clicked."
+msgstr "Es genügt ein Druck, um den Button als angeklickt zu betrachten."
+
+msgid ""
+"Require a press and a subsequent release before considering the button "
+"clicked."
+msgstr ""
+"Ein Drücken und anschließendes Loslassen ist erforderlich, bevor der Button "
+"als geklickt gilt."
+
+msgid ""
+"This class serves as a default material with a wide variety of rendering "
+"features and properties without the need to write shader code. See the "
+"tutorial below for details."
+msgstr ""
+"Diese Klasse dient als Standardmaterial mit einer Vielzahl von Rendering-"
+"Funktionen und -Eigenschaften, ohne dass Shader-Code geschrieben werden muss. "
+"Siehe das Tutorial unten für Details."
+
+msgid "Standard Material 3D and ORM Material 3D"
+msgstr "Standardmaterial 3D und ORM-Material 3D"
+
+msgid "Returns [code]true[/code], if the specified [enum Feature] is enabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das angegebene [enum Feature] aktiviert "
+"ist."
+
+msgid ""
+"Returns [code]true[/code], if the specified flag is enabled. See [enum Flags] "
+"enumerator for options."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die spezifizerte Flagge aktiviert ist. "
+"Siehe die [enum Flags] Aufzählung für Optionen."
+
+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 ""
+"Wenn [code]true[/code], wird das angegebene [enum Feature] aktiviert. Viele "
+"Funktionen, die in [BaseMaterial3D]s verfügbar sind, müssen vor der "
+"Verwendung aktiviert werden. Auf diese Weise fallen die Kosten für die "
+"Verwendung des Features nur an, wenn es angegeben ist. Features können auch "
+"aktiviert werden, indem das entsprechende Mitglied auf [code]true[/code] "
+"gesetzt wird."
+
+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 ""
+"Die Grundfarbe des Materials.\n"
+"[b]Hinweis:[/b] Wenn [member detail_enabled] auf [code]true[/code] steht und "
+"eine [member detail_albedo]-Textur angegeben ist, wird [member albedo_color] "
+"die Detailtextur [i]nicht[/i] modulieren. Dies kann verwendet werden, um "
+"Teilbereiche eines Materials einzufärben, indem man keine Albedo-Textur "
+"angibt und stattdessen eine transparente [member detail_albedo]-Textur "
+"verwendet."
+
+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 ""
+"Textur, die mit [member albedo_color] multipliziert wird. Wird für die "
+"grundlegende Texturierung von Objekten verwendet.\n"
+"Wenn die Textur unerwartet zu dunkel oder zu hell erscheint, prüfen Sie "
+"[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 "
+"vertex_color_is_srgb].\n"
+"This should only be enabled when needed (typically when using a "
+"[ViewportTexture] as [member albedo_texture]). If [member "
+"albedo_texture_force_srgb] is [code]true[/code] when it shouldn't be, the "
+"texture will appear to be too dark. If [member albedo_texture_force_srgb] is "
+"[code]false[/code] when it shouldn't be, the texture will appear to be too "
+"bright."
+msgstr ""
+"Wenn [code]true[/code], wird eine Konvertierung des [member albedo_texture] "
+"vom sRGB-Farbraum in den linearen Farbraum erzwungen. Siehe auch [member "
+"vertex_color_is_srgb].\n"
+"Dies sollte nur bei Bedarf aktiviert werden (typischerweise bei Verwendung "
+"einer [ViewportTexture] als [member albedo_texture]). Wenn [member "
+"albedo_texture_force_srgb] [code]true[/code] ist, obwohl es nicht sein "
+"sollte, wird die Textur zu dunkel erscheinen. Wenn [member "
+"albedo_texture_force_srgb] [code]false[/code] ist, wenn es nicht sein sollte, "
+"wird die Textur zu hell erscheinen."
+
+msgid "Threshold at which antialiasing will be applied on the alpha channel."
+msgstr ""
+"Schwellenwert, bei dem das Antialiasing auf den Alphakanal angewendet wird."
+
+msgid "The type of alpha antialiasing to apply. See [enum AlphaAntiAliasing]."
+msgstr ""
+"Der Typ des anzuwendenden Alpha-Antialiasing. Siehe [enum AlphaAntiAliasing]."
+
+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 "
+"texture contains an alpha channel."
+msgstr ""
+"Die Stärke des Anisotropie-Effekts. Dieser Wert wird mit dem Alphakanal von "
+"[member anisotropy_flowmap] multipliziert, wenn dort eine Textur definiert "
+"ist und die Textur einen Alphakanal enthält."
+
+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 ""
+"Wenn [code]true[/code], wird die triplanare Abbildung für [code]UV[/code] im "
+"Weltraum und nicht im lokalen Objektraum berechnet. Siehe auch [member "
+"uv1_triplanar]."
+
+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 ""
+"Wenn [code]true[/code], wird die triplanare Abbildung für [code]UV2[/code] im "
+"globalen Raum und nicht im lokalen Objektraum berechnet. Siehe auch [member "
+"uv2_triplanar]."
+
+msgid ""
+"Returns [code]true[/code] if this basis and [param b] are approximately "
+"equal, by calling [method @GlobalScope.is_equal_approx] on all vector "
+"components."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn diese Basis und [param b] annähernd "
+"gleich sind, indem [Methode @GlobalScope.is_equal_approx] für alle "
+"Vektorkomponenten aufgerufen wird."
+
+msgid ""
+"Returns [code]true[/code] if this basis is finite, by calling [method "
+"@GlobalScope.is_finite] on all vector components."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn diese Basis endlich ist, indem [Methode "
+"@GlobalScope.is_finite] für alle Vektorkomponenten aufgerufen wird."
+
+msgid ""
+"Returns [code]true[/code] if the [Basis] matrices 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 ""
+"Gibt [code]true[/code] zurück, wenn die [Basis]-Matrizen nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid "Boolean matrix."
+msgstr "Boolesche Matrix."
+
+msgid "Returns the number of bitmap elements that are set to [code]true[/code]."
+msgstr ""
+"Gibt die Anzahl der Bitmap-Elemente zurück, die auf [code]true[/code] gesetzt "
+"sind."
+
+msgid "Retargeting 3D Skeletons"
+msgstr "Neuzuweisung von 3D-Skeletten"
+
+msgid ""
+"Returns [code]true[/code] if the left operand is [code]false[/code] and the "
+"right operand is [code]true[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der linke Operand [code]false[/code] und "
+"der rechte Operand [code]true[/code] ist."
+
+msgid "The button's text that will be displayed inside the button's area."
+msgstr "Die Beschriftung, die auf der Schaltfläche eingeblendet wird."
+
+msgid ""
+"Returns [code]true[/code] if the callable's object exists and has a valid "
+"method name assigned, or is a custom callable."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Callable-Objekt existiert und einen "
+"gültigen Methodennamen zugewiesen hat oder wenn es sich um ein "
+"benutzerdefiniertes Callable handelt."
+
+msgid "Unspecified position."
+msgstr "Nicht spezifizierte Position."
+
+msgid "Custom drawing in 2D"
+msgstr "benutzerdefiniertes Zeichnen in 2D"
+
+msgid ""
+"Z index. Controls the order in which the nodes render. A node with a higher Z "
+"index will display in front of others. Must be between [constant "
+"RenderingServer.CANVAS_ITEM_Z_MIN] and [constant RenderingServer."
+"CANVAS_ITEM_Z_MAX] (inclusive).\n"
+"[b]Note:[/b] Changing the Z index of a [Control] only affects the drawing "
+"order, not the order in which input events are handled. This can be useful to "
+"implement certain UI animations, e.g. a menu where hovered items are scaled "
+"and should overlap others."
+msgstr ""
+"Z-Index. Steuert die Reihenfolge, in der die Knoten gerendert werden. Ein "
+"Knoten (Node) mit einem höheren Z-Index wird vor den anderen angezeigt. Muss "
+"zwischen [Konstante RenderingServer.CANVAS_ITEM_Z_MIN] und [Konstante "
+"RenderingServer.CANVAS_ITEM_Z_MAX] (einschließlich) liegen.\n"
+"[b]Hinweis:[/b] Das Ändern des Z-Index eines [Steuerelements] wirkt sich nur "
+"auf die Zeichenreihenfolge aus, nicht auf die Reihenfolge, in der "
+"Eingabeereignisse behandelt werden. Dies kann nützlich sein, um bestimmte UI-"
+"Animationen zu implementieren, z. B. ein Menü, bei dem die Elemente, über die "
+"man den Mauszeiger bewegt, skaliert werden und andere überlappen sollten."
+
+msgid "Emitted when becoming hidden."
+msgstr "Gesendet wenn es versteckt wird."
+
+msgid "Emitted when the visibility (hidden/visible) changes."
+msgstr "Gesendet wenn die Sichtbarkeit (versteckt/sichtbar) sich verändert."
+
+msgid "The [CanvasItem]'s visibility has changed."
+msgstr "[CanvasItem] Sichtbar/Unsichtbar Modus geändert."
+
+msgid "A material for [CanvasItem]s."
+msgstr "Ein Material für [CanvasItem]."
+
+msgid "The manner in which material reacts to lighting."
+msgstr "Die Art wie ein Material auf Licht reagiert."
+
+msgid "The circle's radius."
+msgstr "Radius des Kreises."
+
+msgid "A class information repository."
+msgstr "Ein Klassen-Informations-Repository."
+
+msgid ""
+"Returns whether [param class] (or its ancestry if [param no_inheritance] is "
+"[code]false[/code]) has a method called [param method] or not."
+msgstr ""
+"Gibt zurück, ob [param class] (oder ihre Vorfahren, wenn [param "
+"no_inheritance] [code]false[/code] ist) eine Methode namens [param method] "
+"hat oder nicht."
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the caret location."
+msgstr ""
+"Gibt den vollständigen Text mit dem Zeichen [code]0xFFFF[/code] an der "
+"Einfügemarke zurück."
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the cursor location."
+msgstr ""
+"Gibt den vollständigen Text mit dem Zeichen [code]0xFFFF[/code] an der "
+"Zeigerposition zurück."
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the specified location."
+msgstr ""
+"Gibt den vollständigen Text mit dem Zeichen [code]0xFFFF[/code] an der "
+"angegebenen Stelle zurück."
+
+msgid ""
+"Returns [code]true[/code] if the keyword exists, else [code]false[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Schlüsselwort existiert, sonst "
+"[code]false[/code]."
+
+msgid ""
+"Returns the [code]one_way_collision_margin[/code] of the shape owner "
+"identified by given [param owner_id]."
+msgstr ""
+"Gibt den [code]one_way_collision_margin[/code] des durch [param owner_id] "
+"identifizierten Form-Eigentümers zurück."
+
+msgid ""
+"The physics layers this CollisionObject2D is in. Collision objects can exist "
+"in one or more of 32 different layers. See also [member collision_mask].\n"
+"[b]Note:[/b] 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 ""
+"Die physikalischen Ebenen, in denen sich dieses CollisionObject2D befindet. "
+"Kollisionsobjekte können in einem oder mehreren von 32 verschiedenen Layern "
+"existieren. Siehe auch [member collision_mask].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Ebenen befindet, die Objekt A abtastet. Siehe "
+"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
+"and-masks]Collision layers and masks[/url] in der Dokumentation für weitere "
+"Informationen."
+
+msgid ""
+"The physics layers this CollisionObject2D scans. Collision objects can scan "
+"one or more of 32 different layers. See also [member collision_layer].\n"
+"[b]Note:[/b] 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 ""
+"Die physikalischen Ebenen, die dieses CollisionObject2D abtastet. "
+"Kollisionsobjekte können einen oder mehrere von 32 verschiedenen Layern "
+"scannen. Siehe auch [member collision_layer].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Ebenen befindet, die Objekt A abtastet. Siehe "
+"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
+"and-masks]Collision layers and masks[/url] in der Dokumentation für weitere "
+"Informationen."
+
+msgid "Returns the shape owner's [Transform3D]."
+msgstr "Gibt den [Transform3D] des Shape-Owners zurück."
+
+msgid "Sets the [Transform3D] of the given shape owner."
+msgstr "Setzt den [Transform3D] des angegebenen Form-Owners."
+
+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 ""
+"Die physikalischen Ebenen, in denen sich dieses Kollisionsobjekt3D "
+"[b]befindet[/b]. Kollisionsobjekte können in einem oder mehreren von 32 "
+"verschiedenen Layern existieren. Siehe auch [member collision_mask].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Ebenen befindet, die Objekt A abtastet. Siehe "
+"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
+"and-masks]Collision layers and masks[/url] in der Dokumentation für weitere "
+"Informationen."
+
+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 ""
+"Die physikalischen Ebenen, die dieses CollisionObject3D [b]scannt[/b]. "
+"Kollisionsobjekte können einen oder mehrere von 32 verschiedenen Layern "
+"scannen. Siehe auch [member collision_layer].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Ebenen befindet, die Objekt A abtastet. Siehe "
+"[url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-"
+"and-masks]Collision layers and masks[/url] in der Dokumentation für weitere "
+"Informationen."
+
+msgid "Physics introduction"
+msgstr "Einführung in die Physik"
+
+msgid ""
+"Returns [code]true[/code] if this color and [param to] are approximately "
+"equal, by running [method @GlobalScope.is_equal_approx] on each component."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn diese Farbe und [param to] annähernd "
+"gleich sind, indem [method @GlobalScope.is_equal_approx] auf jeder Komponente "
+"ausgeführt wird."
+
+msgid "The color's blue component, typically on the range of 0 to 1."
+msgstr "Der Blauanteil der Farbe, normalerweise im Bereich von 0 bis 1."
+
+msgid "The color's green component, typically on the range of 0 to 1."
+msgstr "Der Grünanteil der Farbe, normalerweise im Bereich von 0 bis 1."
+
+msgid "The HSV hue of this color, on the range 0 to 1."
+msgstr "Der HSV-Farbton dieser Farbe, im Bereich von 0 bis 1."
+
+msgid "The color's red component, typically on the range of 0 to 1."
+msgstr "Der Rotanteil der Farbe, normalerweise im Bereich von 0 bis 1."
+
+msgid "The HSV saturation of this color, on the range 0 to 1."
+msgstr "Die HSV-Sättigung dieser Farbe, im Bereich von 0 bis 1."
+
+msgid "The HSV value (brightness) of this color, on the range 0 to 1."
+msgstr "Der HSV-Wert (Helligkeit) dieser Farbe, im Bereich von 0 bis 1."
+
+msgid "Alice blue color."
+msgstr "Aliceblau Farbe."
+
+msgid "Aqua color."
+msgstr "Aqua Farbe."
+
+msgid "Aquamarine color."
+msgstr "Aquamarin Farbe."
+
+msgid "Azure color."
+msgstr "Azurblau Farbe."
+
+msgid "Beige color."
+msgstr "Beige Farbe."
+
+msgid "Bisque color."
+msgstr "Biskuit Farbe."
+
+msgid "Blue color."
+msgstr "Blaue Farbe."
+
+msgid "Blue violet color."
+msgstr "Blauviolette Farbe."
+
+msgid "Brown color."
+msgstr "Braune Farbe."
+
+msgid "Cadet blue color."
+msgstr "Kadettblaue Farbe."
+
+msgid "Chartreuse color."
+msgstr "Chartreuse Farbe."
+
+msgid "Chocolate color."
+msgstr "Schokolade Farbe."
+
+msgid "Coral color."
+msgstr "Korallenrote Farbe."
+
+msgid "Crimson color."
+msgstr "Karminrote Farbe."
+
+msgid "Cyan color."
+msgstr "Cyan Farbe."
+
+msgid "Dark blue color."
+msgstr "Dunkelblaue Farbe."
+
+msgid "Dark cyan color."
+msgstr "Dunkelcyan Farben."
+
+msgid "Dark goldenrod color."
+msgstr "Dunkle goldgelbe Farbe."
+
+msgid "Dark gray color."
+msgstr "Dunkelgraue Farbe."
+
+msgid "Dark green color."
+msgstr "Dunkelgrüne Farbe."
+
+msgid "Dark khaki color."
+msgstr "Dunkel Khaki Farbe."
+
+msgid "Dark magenta color."
+msgstr "Dunkle Magenta Farbe."
+
+msgid "Dark olive green color."
+msgstr "Dunkle olivgrüne Farbe."
+
+msgid "Dark orange color."
+msgstr "Dunkelorange Farbe."
+
+msgid "Dark orchid color."
+msgstr "Dunkle Orchidee Farbe."
+
+msgid "Dark red color."
+msgstr "Dunkelrote Farbe."
+
+msgid "Dark salmon color."
+msgstr "Dunkle lachsfarbene Farbe."
+
+msgid "Dark sea green color."
+msgstr "Dunkle meergrüne Farbe."
+
+msgid "Dark slate blue color."
+msgstr "Dunkle schieferblaue Farbe."
+
+msgid "Dark slate gray color."
+msgstr "Dunkle schiefergraue Farbe."
+
+msgid "Dark turquoise color."
+msgstr "Dunkeltürkise Farbe."
+
+msgid "Dark violet color."
+msgstr "Dunkelviolette Farbe."
+
+msgid "Deep pink color."
+msgstr "Tiefrosa Farbe."
+
+msgid "Deep sky blue color."
+msgstr "Tiefe himmelblaue Farbe."
+
+msgid "Dim gray color."
+msgstr "Gedämpfte graue Farbe."
+
+msgid "Dodger blue color."
+msgstr "Dodgerblaue Farbe."
+
+msgid "Firebrick color."
+msgstr "Feuerstein Farbe."
+
+msgid "Floral white color."
+msgstr "Florale weiße Farbe."
+
+msgid "Forest green color."
+msgstr "Waldgrüne Farbe."
+
+msgid "Fuchsia color."
+msgstr "Fuchsia Farbe."
+
+msgid "Gainsboro color."
+msgstr "Gainsboro Farbe."
+
+msgid "Ghost white color."
+msgstr "Geisterweiße Farbe."
+
+msgid "Gold color."
+msgstr "Goldene Farbe."
+
+msgid "Goldenrod color."
+msgstr "Goldrute Farbe."
+
+msgid "Gray color."
+msgstr "Graue Farbe."
+
+msgid "Green color."
+msgstr "Grüne Farbe."
+
+msgid "Green yellow color."
+msgstr "Grün-gelbe Farbe."
+
+msgid "Honeydew color."
+msgstr "Honigtau Farbe."
+
+msgid "Hot pink color."
+msgstr "Heiße rosa Farbe."
+
+msgid "Indian red color."
+msgstr "Indisch rote Farbe."
+
+msgid "Indigo color."
+msgstr "Indigo Farbe."
+
+msgid "Ivory color."
+msgstr "Elfenbein Farbe."
+
+msgid "Khaki color."
+msgstr "Khaki Farbe."
+
+msgid "Lavender color."
+msgstr "Lavendel Farbe."
+
+msgid "Lavender blush color."
+msgstr "Lavendelrote Farbe."
+
+msgid "Lawn green color."
+msgstr "Rasengrüne Farbe."
+
+msgid "Lemon chiffon color."
+msgstr "Zitrone Chiffon Farbe."
+
+msgid "Light blue color."
+msgstr "Hellblaue Farbe."
+
+msgid "Light coral color."
+msgstr "Helle korallenrote Farbe."
+
+msgid "Light cyan color."
+msgstr "Helle Cyan Farbe."
+
+msgid "Light goldenrod color."
+msgstr "Helle Goldrute Farbe."
+
+msgid "Light gray color."
+msgstr "Hellgraue Farbe."
+
+msgid "Light green color."
+msgstr "Hellgrüne Farbe."
+
+msgid "Light pink color."
+msgstr "Hellrosa Farbe."
+
+msgid "Light salmon color."
+msgstr "Helle lachsfarbene Farbe."
+
+msgid "Light sea green color."
+msgstr "Helle meergrüne Farbe."
+
+msgid "Light sky blue color."
+msgstr "Helle himmelblaue Farbe."
+
+msgid "Light slate gray color."
+msgstr "Helle schiefergraue Farbe."
+
+msgid "Light steel blue color."
+msgstr "Helle stahlblaue Farbe."
+
+msgid "Light yellow color."
+msgstr "Hellgelbe Farbe."
+
+msgid "Lime color."
+msgstr "Limette Farbe."
+
+msgid "Lime green color."
+msgstr "Limonengrüne Farbe."
+
+msgid "Linen color."
+msgstr "Leinen Farbe."
+
+msgid "Magenta color."
+msgstr "Magenta Farbe."
+
+msgid "Maroon color."
+msgstr "Kastanienbraune Farbe."
+
+msgid "Medium aquamarine color."
+msgstr "Mittlere Aquamarin Farbe."
+
+msgid "Medium blue color."
+msgstr "Mittelblaue Farbe."
+
+msgid "Medium orchid color."
+msgstr "Mittlere Orchideen Farbe."
+
+msgid "Medium purple color."
+msgstr "Mittlere violette Farbe."
+
+msgid "Medium sea green color."
+msgstr "Mittlere meergrüne Farbe."
+
+msgid "Medium slate blue color."
+msgstr "Mittlere schieferblaue Farbe."
+
+msgid "Medium spring green color."
+msgstr "Mittlere frühlingsgrüne Farbe."
+
+msgid "Medium turquoise color."
+msgstr "Mittlere türkise Farbe."
+
+msgid "Medium violet red color."
+msgstr "Mittlere violettrote Farbe."
+
+msgid "Midnight blue color."
+msgstr "Mitternachtsblaue Farbe."
+
+msgid "Mint cream color."
+msgstr "Mint-Creme Farbe."
+
+msgid "Misty rose color."
+msgstr "Neblige rosa Farbe."
+
+msgid "Moccasin color."
+msgstr "Mokassin Farbe."
+
+msgid "Navajo white color."
+msgstr "Navajo weiße Farbe."
+
+msgid "Navy blue color."
+msgstr "Marineblaue Farbe."
+
+msgid "Old lace color."
+msgstr "Alte Spitze Farbe."
+
+msgid "Olive color."
+msgstr "Olive Farbe."
+
+msgid "Olive drab color."
+msgstr "Olivgrüne Farbe."
+
+msgid "Orange color."
+msgstr "Orange Farbe."
+
+msgid "Orange red color."
+msgstr "Orangerote Farbe."
+
+msgid "Orchid color."
+msgstr "Orchidee Farbe."
+
+msgid "Pale goldenrod color."
+msgstr "Blasse Goldrute Farbe."
+
+msgid "Pale green color."
+msgstr "Blassgrüne Farbe."
+
+msgid "Pale turquoise color."
+msgstr "Blasse türkise Farbe."
+
+msgid "Pale violet red color."
+msgstr "Blass violettrote Farbe."
+
+msgid "Papaya whip color."
+msgstr "Papaya-Peitsche Farbe."
+
+msgid "Peach puff color."
+msgstr "Pfirsich Puff Farbe."
+
+msgid "Peru color."
+msgstr "Peru Farbe."
+
+msgid "Pink color."
+msgstr "Rosa Farbe."
+
+msgid "Plum color."
+msgstr "Pflaume Farbe."
+
+msgid "Powder blue color."
+msgstr "Pulverblaue Farbe."
+
+msgid "Purple color."
+msgstr "Violette Farbe."
+
+msgid "Rebecca purple color."
+msgstr "Rebecca violette Farbe."
+
+msgid "Red color."
+msgstr "Rote Farbe."
+
+msgid "Rosy brown color."
+msgstr "Rosigbraune Farbe."
+
+msgid "Royal blue color."
+msgstr "Königsblaue Farbe."
+
+msgid "Saddle brown color."
+msgstr "Sattelbraune Farbe."
+
+msgid "Salmon color."
+msgstr "Lachsfarbige Farbe."
+
+msgid "Sandy brown color."
+msgstr "Sandige braune Farbe."
+
+msgid "Sea green color."
+msgstr "Meeresgrüne Farbe."
+
+msgid "Seashell color."
+msgstr "Muschel Farbe."
+
+msgid "Sienna color."
+msgstr "Siena Farbe."
+
+msgid "Silver color."
+msgstr "Silberne Farbe."
+
+msgid "Sky blue color."
+msgstr "Himmelblaue Farbe."
+
+msgid "Slate blue color."
+msgstr "Schieferblaue Farbe."
+
+msgid "Slate gray color."
+msgstr "Schiefergraue Farbe."
+
+msgid "Snow color."
+msgstr "Schnee Farbe."
+
+msgid "Spring green color."
+msgstr "Frühlingsgrüne Farbe."
+
+msgid "Steel blue color."
+msgstr "Stahlblaue Farbe."
+
+msgid "Tan color."
+msgstr "Hellbraune Farbe."
+
+msgid "Teal color."
+msgstr "Blaugrüne Farbe."
+
+msgid "Thistle color."
+msgstr "Distel Farbe."
+
+msgid "Tomato color."
+msgstr "Tomaten Farbe."
+
+msgid "Turquoise color."
+msgstr "Türkise Farbe."
+
+msgid "Violet color."
+msgstr "Violette Farbe."
+
+msgid "Web gray color."
+msgstr "Web graue Farbe."
+
+msgid "Web green color."
+msgstr "Web grüne Farbe."
+
+msgid "Web maroon color."
+msgstr "Web kastanienbraune Farbe."
+
+msgid "Web purple color."
+msgstr "Web violette Farbe."
+
+msgid "Wheat color."
+msgstr "Weizen Farbe."
+
+msgid "White color."
+msgstr "Weiße Farbe."
+
+msgid "White smoke color."
+msgstr "Rauchweiße Farbe."
+
+msgid "Yellow color."
+msgstr "Gelbe Farbe."
+
+msgid "Yellow green color."
+msgstr "Gelbgrüne Farbe."
+
+msgid ""
+"Adds the given color to a list of color presets. The presets are displayed in "
+"the color picker and the user will be able to select them.\n"
+"[b]Note:[/b] The presets list is only for [i]this[/i] color picker."
+msgstr ""
+"Fügt die angegebene Farbe zu einer Liste von Farbvorlagen hinzu. Die Vorlagen "
+"werden in der Farbauswahl angezeigt und der Benutzer kann sie auswählen.\n"
+"[b]Hinweis:[/b] Die Liste der Vorlagen gilt nur für [i]diesen[/i] Farbwähler."
+
+msgid ""
+"Removes the given color from the list of color presets of this color picker."
+msgstr ""
+"Entfernt die angegebene Farbe aus der Liste der Farbvorlagen für diesen "
+"Farbwähler."
+
+msgid "Returns the list of colors in the presets of the color picker."
+msgstr "Gibt die Liste der Farben in den Vorlagen des Farbwählers zurück."
+
+msgid "The currently selected color."
+msgstr "Die aktuell ausgewählte Farbe."
+
+msgid ""
+"If [code]true[/code], the color will apply only after the user releases the "
+"mouse button, otherwise it will apply immediately even in mouse motion event "
+"(which can cause performance issues)."
+msgstr ""
+"Wenn [code]true[/code], wird die Farbe erst angewendet, wenn der Benutzer die "
+"Maustaste loslässt, andernfalls wird sie auch bei Mausbewegungen sofort "
+"angewendet (was zu Leistungsproblemen führen kann)."
+
+msgid "Emitted when the color is changed."
+msgstr "Wird ausgegeben, wenn die Farbe geändert wird."
+
+msgid "Emitted when a preset is added."
+msgstr "Wird ausgegeben, wenn eine Vorlage hinzugefügt wird."
+
+msgid "Emitted when a preset is removed."
+msgstr "Wird ausgegeben, wenn eine Vorlage entfernt wird."
+
+msgid "Allows editing the color with Hue/Saturation/Value sliders."
+msgstr ""
+"Ermöglicht die Bearbeitung der Farbe mit den Schiebereglern Farbton/Sättigung/"
+"Wert."
+
+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 ""
+"Ermöglicht es, dass die Werte der R-, G- und B-Komponenten über 1,0 "
+"hinausgehen, was für bestimmte spezielle Operationen, die dies erfordern, "
+"verwendet werden kann (z. B. Abtönen ohne Abdunkeln oder Rendern von Sprites "
+"in HDR)."
+
+msgid "The width of the hue selection slider."
+msgstr "Die Breite des Schiebereglers für die Farbauswahl."
+
+msgid "The margin around the [ColorPicker]."
+msgstr "Der Rand um den [ColorPicker]."
+
+msgid "The height of the saturation-value selection box."
+msgstr "Die Höhe des Auswahlfeldes für den Sättigungswert."
+
+msgid "The width of the saturation-value selection box."
+msgstr "Die Breite des Auswahlfeldes für den Sättigungswert."
+
+msgid "The icon for the \"Add Preset\" button."
+msgstr "Das Symbol für die Schaltfläche \" Vorlage hinzufügen\"."
+
+msgid "Custom texture for the hue selection slider on the right."
+msgstr ""
+"Benutzerdefinierte Textur für den Schieberegler zur Farbauswahl auf der "
+"rechten Seite."
+
+msgid ""
+"The indicator used to signalize that the color value is outside the 0-1 range."
+msgstr ""
+"Der Indikator, der signalisiert, dass der Farbwert außerhalb des Bereichs 0-1 "
+"liegt."
+
+msgid "The icon for the screen color picker button."
+msgstr "Das Symbol für die Schaltfläche des Bildschirmfarbwählers."
+
+msgid ""
+"Returns the [ColorPicker] that this node toggles.\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 CanvasItem.visible] property."
+msgstr ""
+"Gibt den [ColorPicker] aus, den dieser Node umschaltet.\n"
+"[b]Warnung:[/b] Dies ist ein erforderlicher interner Node, sein Entfernen und "
+"Freigeben kann zu einem Absturz führen. Wenn Sie ihn oder eines seiner Kinder "
+"ausblenden möchten, verwenden Sie deren Eigenschaft [member CanvasItem."
+"visible]."
+
+msgid ""
+"If [code]true[/code], the alpha channel in the displayed [ColorPicker] will "
+"be visible."
+msgstr ""
+"Wenn [code]true[/code], wird der Alphakanal im angezeigten [ColorPicker] "
+"sichtbar sein."
+
+msgid "Emitted when the color changes."
+msgstr "Wird ausgegeben, wenn sich die Farbe ändert."
+
+msgid ""
+"Emitted when the [ColorPicker] is created (the button is pressed for the "
+"first time)."
+msgstr ""
+"Wird ausgegeben, wenn der [ColorPicker] erstellt wird (wenn die Schaltfläche "
+"zum ersten Mal gedrückt wird)."
+
+msgid "Emitted when the [ColorPicker] is closed."
+msgstr "Wird ausgegeben, wenn der [ColorPicker] geschlossen wird."
+
+msgid "Control node gallery"
+msgstr "Galerie der Kontrollknoten (Kontroll-Nodes)"
+
+msgid "Multiple resolutions"
+msgstr "Mehrere Auflösungen"
+
+msgid ""
+"Creates a local override for a theme constant 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_constant_override].\n"
+"See also [method get_theme_constant]."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für eine Themenkonstante mit dem "
+"angegebenen [param name]. Lokale Überschreibungen haben immer Vorrang, wenn "
+"Themenelemente für das Steuerelement abgerufen werden. Eine Überschreibung "
+"kann mit [method remove_theme_constant_override] entfernt werden.\n"
+"Siehe auch [Methode get_theme_constant]."
+
+msgid ""
+"Creates a local override for a theme [Font] 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_font_override].\n"
+"See also [method get_theme_font]."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für ein Thema [Font] mit dem angegebenen "
+"[Parametername]. Lokale Überschreibungen haben immer Vorrang, wenn "
+"Themenelemente für das Steuerelement abgerufen werden. Eine Überschreibung "
+"kann mit [method remove_theme_font_override] entfernt werden.\n"
+"Siehe auch [method get_theme_font]."
+
+msgid ""
+"Creates a local override for a theme font size 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_font_size_override].\n"
+"See also [method get_theme_font_size]."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für eine Design-Schriftgröße mit dem "
+"angegebenen [param name]. Lokale Überschreibungen haben immer Vorrang, wenn "
+"Themenelemente für das Steuerelement abgerufen werden. Eine Überschreibung "
+"kann mit [method remove_theme_font_size_override] entfernt werden.\n"
+"Siehe auch [Methode get_theme_font_size]."
+
+msgid ""
+"Creates a local override for a theme icon 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_icon_override].\n"
+"See also [method get_theme_icon]."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für ein Themensymbol mit dem angegebenen "
+"[param name]. Lokale Überschreibungen haben immer Vorrang, wenn "
+"Themenelemente für das Steuerelement abgerufen werden. Eine Überschreibung "
+"kann mit [method remove_theme_icon_override] entfernt werden.\n"
+"Siehe auch [methode get_theme_icon]."
+
+msgid "Returns the parent control node."
+msgstr "Gibt das übergeordnete Control Node zurück."
+
+msgid ""
+"Returns a constant from the first matching [Theme] in the tree if that "
+"[Theme] has a constant item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt eine Konstante aus dem ersten übereinstimmenden [Thema] im Baum zurück, "
+"wenn dieses [Thema] ein konstantes Element mit dem angegebenen [param name] "
+"und [param theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns the default base scale value from the first matching [Theme] in the "
+"tree if that [Theme] has a valid [member Theme.default_base_scale] value.\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt den Wert der Standard-Basisskala des ersten passenden [Themas] im Baum "
+"zurück, wenn dieses [Thema] einen gültigen [member Theme.default_base_scale] "
+"Wert hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns the default font from the first matching [Theme] in the tree if that "
+"[Theme] has a valid [member Theme.default_font] value.\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt die Standardschriftart des ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] einen gültigen [member Theme.default_font] Wert hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns the default font size value from the first matching [Theme] in the "
+"tree if that [Theme] has a valid [member Theme.default_font_size] value.\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt den Wert für die Standard-Schriftgröße aus dem ersten passenden [Theme] "
+"im Baum zurück, wenn dieses [Theme] einen gültigen [member Theme."
+"default_font_size]-Wert hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns a [Font] from the first matching [Theme] in the tree if that [Theme] "
+"has a font item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt eine [Schriftart] aus dem ersten passenden [Thema] im Baum zurück, wenn "
+"dieses [Thema] ein Schriftelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns a font size from the first matching [Theme] in the tree if that "
+"[Theme] has a font size item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt eine Schriftgröße aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein Schriftgrößenelement mit dem angegebenen [param name] und "
+"[param theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns an icon from the first matching [Theme] in the tree if that [Theme] "
+"has an icon item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt ein Symbol aus dem ersten passenden [Thema] im Baum zurück, wenn dieses "
+"[Thema] ein Symbolelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns a [StyleBox] from the first matching [Theme] in the tree if that "
+"[Theme] has a stylebox item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt eine [StyleBox] aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein Stylebox-Element mit dem angegebenen [param name] und "
+"[param theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a color item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Farbelement mit dem angegebenen [param name] und [param theme_type] "
+"hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme [Color] "
+"with the specified [param name] in this [Control] node.\n"
+"See [method add_theme_color_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für ein "
+"Thema [Farbe] mit dem angegebenen [param name] in diesem [Control]-Knoten "
+"gibt.\n"
+"Siehe [Methode add_theme_color_override]."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a constant item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein konstantes Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme constant "
+"with the specified [param name] in this [Control] node.\n"
+"See [method add_theme_constant_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für eine "
+"Themenkonstante mit dem angegebenen [param name] in diesem [Control]-Knoten "
+"gibt.\n"
+"Siehe [Methode add_theme_constant_override]."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a font item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Schriftelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme [Font] "
+"with the specified [param name] in this [Control] node.\n"
+"See [method add_theme_font_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für ein "
+"Thema [Font] mit dem angegebenen [param name] in diesem [Control]-Knoten "
+"(Node) gibt.\n"
+"Siehe [Methode add_theme_font_override]."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a font size item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] in der Struktur "
+"gibt, das ein Schriftgrad-Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme font size "
+"with the specified [param name] in this [Control] node.\n"
+"See [method add_theme_font_size_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für eine "
+"Themenschriftgröße mit dem angegebenen [param name] in diesem [Control]-"
+"Knoten (Node) gibt.\n"
+"Siehe [Methode add_theme_font_size_override]."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"an icon item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Thema] im Baum gibt, "
+"das ein Symbolelement mit dem angegebenen [param name] und [param theme_type] "
+"hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme icon with "
+"the specified [param name] in this [Control] node.\n"
+"See [method add_theme_icon_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für ein "
+"Themensymbol mit dem angegebenen [param name] in diesem [Control]-Knoten "
+"(Node) gibt.\n"
+"Siehe [Methode add_theme_icon_override]."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a stylebox item with the specified [param name] and [param theme_type].\n"
+"See [method get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Stylebox-Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a local override for a theme [StyleBox] "
+"with the specified [param name] in this [Control] node.\n"
+"See [method add_theme_stylebox_override]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es eine lokale Überschreibung für ein "
+"Thema [StyleBox] mit dem angegebenen [param name] in diesem [Control]-Knoten "
+"(Node) gibt.\n"
+"Siehe [Methode add_theme_stylebox_override]."
+
+msgid ""
+"The physics layers this area is in.\n"
+"Collidable objects can exist in any of 32 different layers. These layers work "
+"like a tagging system, and are not visual. A collidable can use these layers "
+"to select with which objects it can collide, using the collision_mask "
+"property.\n"
+"A contact is detected if object A is in any of the layers that object B "
+"scans, or object B is in any layer scanned by object A. See [url=$DOCS_URL/"
+"tutorials/physics/physics_introduction.html#collision-layers-and-"
+"masks]Collision layers and masks[/url] in the documentation for more "
+"information."
+msgstr ""
+"Die physikalischen Ebenen, in denen sich dieser Bereich befindet.\n"
+"Kollidierbare Objekte können in jeder der 32 verschiedenen Ebenen existieren. "
+"Diese Ebenen funktionieren wie ein Tagging-System und sind nicht sichtbar. "
+"Ein kollidierbares Objekt kann anhand dieser Ebenen auswählen, mit welchen "
+"Objekten es kollidieren kann, indem es die Eigenschaft collision_mask "
+"verwendet.\n"
+"Ein Kontakt wird erkannt, wenn sich Objekt A in einer der Ebenen befindet, "
+"die von Objekt B gescannt werden, oder wenn sich Objekt B in einer von Objekt "
+"A gescannten Ebene befindet. Weitere Informationen finden Sie in der "
+"Dokumentation unter [url=$DOCS_URL/tutorials/physics/physics_introduction."
+"html#collision-layers-and-masks]Kollisionsschichten und Masken[/url]."
+
+msgid ""
+"The physics layers this CSG shape scans for collisions. Only effective if "
+"[member use_collision] is [code]true[/code]. 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 ""
+"Die Physik-Ebenen dieser CSG-Form werden auf Kollisionen untersucht. Nur "
+"wirksam, wenn [member use_collision] [code]true[/code] ist. Weitere "
+"Informationen finden Sie in der Dokumentation unter [url=$DOCS_URL/tutorials/"
+"physics/physics_introduction.html#collision-layers-and-masks]Kollisionsebenen "
+"und Masken[/url]."
+
+msgid "Constructs an empty [Dictionary]."
+msgstr "Konstruiert ein leeres [Dictionary]."
+
+msgid "File system"
+msgstr "Dateisystem"
+
+msgid ""
+"Returns OS theme accent color. Returns [code]Color(0, 0, 0, 0)[/code], if "
+"accent color is unknown.\n"
+"[b]Note:[/b] This method is implemented on macOS and Windows."
+msgstr ""
+"Gibt die Akzentfarbe des OS-Themas zurück. Gibt [code]Farbe(0, 0, 0, 0)[/"
+"code] zurück, wenn die Akzentfarbe unbekannt ist.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf macOS und Windows implementiert."
+
+msgid ""
+"Returns the accelerator of the item at index [param idx]. Accelerators are "
+"special combinations of keys that activate the item, no matter which control "
+"is focused.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Beschleuniger des Elements bei Index [param idx] zurück. "
+"Beschleuniger sind spezielle Tastenkombinationen, die das Element aktivieren, "
+"unabhängig davon, welches Steuerelement fokussiert ist.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the callback of the item at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Rückruf des Elements bei Index [param idx] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns number of items in the global menu with ID [param menu_root].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt die Anzahl der Einträge im globalen Menü mit der ID [param menu_root] "
+"zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the icon of the item at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt das Symbol des Elements mit dem Index [param idx] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the horizontal offset of the item at the given [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den horizontalen Versatz des Elements am angegebenen [param idx] "
+"zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the index of the item with the specified [param tag]. Index is "
+"automatically assigned to each item by the engine. Index can not be set "
+"manually.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Index des Elements mit dem angegebenen [param tag] zurück. Der Index "
+"wird jedem Element automatisch von der Engine zugewiesen. Der Index kann "
+"nicht manuell festgelegt werden.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the index of the item with the specified [param text]. Index is "
+"automatically assigned to each item by the engine. Index can not be set "
+"manually.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Index des Elements mit dem angegebenen [param text] zurück. Der "
+"Index wird jedem Element automatisch von der Engine zugewiesen. Der Index "
+"kann nicht manuell festgelegt werden.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the callback of the item accelerator at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Callback des Elementbeschleunigers bei Index [param idx] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns number of states of a multistate item. See [method "
+"global_menu_add_multistate_item] for details.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt die Anzahl der Zustände eines mehrstufigen Elements zurück. Siehe "
+"[method global_menu_add_multistate_item] für Details.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the state of a multistate item. See [method "
+"global_menu_add_multistate_item] for details.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Status eines Multistate-Elements zurück. Siehe [method "
+"global_menu_add_multistate_item] für Details.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the submenu ID of the item at index [param idx]. See [method "
+"global_menu_add_submenu_item] for more info on how to add a submenu.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt die Untermenü-ID des Eintrags mit dem Index [param idx] zurück. Siehe "
+"[method global_menu_add_submenu_item] für weitere Informationen über das "
+"Hinzufügen eines Untermenüs.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the metadata of the specified item, which might be of any type. You "
+"can set it with [method global_menu_set_item_tag], which provides a simple "
+"way of assigning context data to items.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt die Metadaten des angegebenen Elements zurück, die von beliebigem Typ "
+"sein können. Sie können sie mit der [Methode global_menu_set_item_tag] "
+"setzen, die eine einfache Möglichkeit bietet, den Elementen Kontextdaten "
+"zuzuweisen.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the text of the item at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Text des Elements bei Index [param idx] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the tooltip associated with the specified index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt den Tooltip zurück, der mit dem angegebenen Index [param idx] verknüpft "
+"ist.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code] if the item at index [param idx] is checkable in "
+"some way, i.e. if it has a checkbox or radio button.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] in "
+"irgendeiner Weise ankreuzbar ist, d.h. wenn es ein Kontrollkästchen oder eine "
+"Optionsschaltfläche hat.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code] if the item at index [param idx] is checked.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] geprüft "
+"wird.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code] if the item at index [param idx] is disabled. When "
+"it is disabled it can't be selected, or its action invoked.\n"
+"See [method global_menu_set_item_disabled] for more info on how to disable an "
+"item.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] "
+"deaktiviert ist. Wenn es deaktiviert ist, kann es nicht ausgewählt oder seine "
+"Aktion aufgerufen werden.\n"
+"Siehe [method global_menu_set_item_disabled] für weitere Informationen über "
+"das Deaktivieren eines Elements.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code] if the item at index [param idx] has radio button-"
+"style checkability.\n"
+"[b]Note:[/b] This is purely cosmetic; you must add the logic for checking/"
+"unchecking items in radio groups.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] im Stil "
+"einer Optionsschaltfläche überprüfbar ist.\n"
+"[b]Hinweis:[/b] Dies ist rein kosmetisch; Sie müssen die Logik für die "
+"Prüfung/Deaktivierung von Elementen in Optionsgruppen hinzufügen.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Removes the item at index [param idx] from the global menu [param "
+"menu_root].\n"
+"[b]Note:[/b] The indices of items after the removed item will be shifted by "
+"one.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Entfernt den Eintrag bei Index [param idx] aus dem globalen Menü [param "
+"menu_root].\n"
+"[b]Hinweis:[/b] Die Indizes der Einträge nach dem entfernten Eintrag werden "
+"um eins verschoben.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets whether the item at index [param idx] has a checkbox. If [code]false[/"
+"code], sets the type of the item to plain text.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Legt fest, ob das Element bei Index [param idx] ein Kontrollkästchen hat. "
+"Wenn [code]false[/code], wird der Typ des Elements auf reinen Text gesetzt.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the checkstate status of the item at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt den Prüfstatus des Elements bei Index [param idx].\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Enables/disables the item at index [param idx]. When it is disabled, it can't "
+"be selected and its action can't be invoked.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Aktiviert/deaktiviert das Element mit dem Index [param idx]. Wenn es "
+"deaktiviert ist, kann es nicht ausgewählt werden und seine Aktion kann nicht "
+"aufgerufen werden.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Replaces the [Texture2D] icon of the specified [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS.\n"
+"[b]Note:[/b] This method is not supported by macOS \"_dock\" menu items."
+msgstr ""
+"Ersetzt das [Texture2D]-Symbol des angegebenen [param idx].\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert.\n"
+"[b]Hinweis:[/b] Diese Methode wird nicht von macOS \"_dock\" Menüpunkten "
+"unterstützt."
+
+msgid ""
+"Sets the horizontal offset of the item at the given [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt den horizontalen Versatz des Elements am angegebenen [param idx].\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets number of state of a multistate item. See [method "
+"global_menu_add_multistate_item] for details.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Legt die Anzahl der Zustände eines mehrstufigen Elements fest. Siehe [method "
+"global_menu_add_multistate_item] für Details.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the state of a multistate item. See [method "
+"global_menu_add_multistate_item] for details.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt den Status eines Multistate-Elements. Siehe [method "
+"global_menu_add_multistate_item] für Details.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the submenu of the item at index [param idx]. The submenu is the ID of a "
+"global menu root that would be shown when the item is clicked.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt das Untermenü des Eintrags mit dem Index [param idx]. Das Untermenü ist "
+"die ID eines globalen Menüstamms, der angezeigt wird, wenn der Eintrag "
+"angeklickt wird.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the metadata of an item, which may be of any type. You can later get it "
+"with [method global_menu_get_item_tag], which provides a simple way of "
+"assigning context data to items.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Legt die Metadaten eines Eintrags fest, der von beliebigem Typ sein kann. Sie "
+"können sie später mit der [Methode global_menu_get_item_tag] abrufen, die "
+"eine einfache Möglichkeit bietet, den Elementen Kontextdaten zuzuweisen.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the text of the item at index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt den Text des Elements bei Index [param idx].\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Sets the [String] tooltip of the item at the specified index [param idx].\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Setzt den [String]-Tooltip des Elements am angegebenen Index [param idx].\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns the composition string contained within the [url=https://en.wikipedia."
+"org/wiki/Input_method]Input Method Editor[/url] window.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt die im Fenster [url=https://en.wikipedia.org/wiki/Input_method]Input "
+"Method Editor[/url] enthaltene Kompositionszeichenfolge zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code] if OS is using dark mode.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, macOS, Windows, and "
+"Linux (X11)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Betriebssystem den Dark Mode "
+"verwendet.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, macOS, Windows und Linux "
+"(X11) implementiert."
+
+msgid ""
+"Returns [code]true[/code] if OS supports dark mode.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, macOS, Windows, and "
+"Linux (X11)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Betriebssystem den dunklen Modus "
+"unterstützt.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, macOS, Windows und Linux "
+"(X11) implementiert."
+
+msgid ""
+"Returns active keyboard layout index.\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Gibt den Index des aktiven Tastaturlayouts zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Converts a physical (US QWERTY) [param keycode] to one in the active keyboard "
+"layout.\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Konvertiert einen physischen (US QWERTY) [param keycode] in einen im aktiven "
+"Tastaturlayout.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Converts a physical (US QWERTY) [param keycode] to localized label printed on "
+"the key in the active keyboard layout.\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Konvertiert einen physischen (US QWERTY) [param keycode] in eine lokalisierte "
+"Beschriftung, die auf die Taste im aktiven Tastaturlayout gedruckt wird.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns the number of keyboard layouts.\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Gibt die Anzahl der Tastaturlayouts zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns the ISO-639/BCP-47 language code of the keyboard layout at position "
+"[param index].\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Gibt den ISO-639/BCP-47-Sprachcode des Tastaturlayouts an der Position [param "
+"index] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns the localized name of the keyboard layout at position [param index].\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Gibt den lokalisierten Namen des Tastaturlayouts an der Position [param "
+"index] zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Sets the active keyboard layout.\n"
+"[b]Note:[/b] This method is implemented on Linux (X11), macOS and Windows."
+msgstr ""
+"Legt das aktive Tastaturlayout fest.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns current active tablet driver name.\n"
+"[b]Note:[/b] This method is implemented only on Windows."
+msgstr ""
+"Gibt den Namen des aktuell aktiven Tablett-Treibers zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter Windows implementiert."
+
+msgid ""
+"Returns the total number of available tablet drivers.\n"
+"[b]Note:[/b] This method is implemented only on Windows."
+msgstr ""
+"Gibt die Gesamtzahl der verfügbaren Tablet-Treiber zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter Windows implementiert."
+
+msgid ""
+"Returns the tablet driver name for the given index.\n"
+"[b]Note:[/b] This method is implemented only on Windows."
+msgstr ""
+"Gibt den Namen des Tablet-Treibers für den angegebenen Index zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter Windows implementiert."
+
+msgid ""
+"Set active tablet driver name.\n"
+"[b]Note:[/b] This method is implemented only on Windows."
+msgstr ""
+"Name des aktiven Tablett-Treibers festlegen.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter Windows implementiert."
+
+msgid ""
+"Returns an [PackedStringArray] of voice identifiers for the [param "
+"language].\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
+"macOS, and Windows.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
+"[code]true[/code] to use text-to-speech."
+msgstr ""
+"Gibt ein [PackedStringArray] von Sprachkennungen für die [param-Sprache] "
+"zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Web, Linux (X11), macOS "
+"und Windows implementiert.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/general/text_to_speech] sollte "
+"[code]true[/code] sein, um Text-to-Speech zu verwenden."
+
+msgid ""
+"Returns [code]true[/code] if the synthesizer is in a paused state.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
+"macOS, and Windows.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
+"[code]true[/code] to use text-to-speech."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sich der Synthesizer in einem pausierten "
+"Zustand befindet.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Web, Linux (X11), macOS "
+"und Windows implementiert.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/general/text_to_speech] sollte "
+"[code]true[/code] sein, um Text-to-Speech zu verwenden."
+
+msgid ""
+"Returns [code]true[/code] if the synthesizer is generating speech, or have "
+"utterance waiting in the queue.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
+"macOS, and Windows.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
+"[code]true[/code] to use text-to-speech."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Synthesizer Sprache erzeugt oder eine "
+"Äußerung in der Warteschlange wartet.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Web, Linux (X11), macOS "
+"und Windows implementiert.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/general/text_to_speech] sollte "
+"[code]true[/code] sein, um Text-to-Speech zu verwenden."
+
+msgid ""
+"Puts the synthesizer into a paused state.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
+"macOS, and Windows.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
+"[code]true[/code] to use text-to-speech."
+msgstr ""
+"Versetzt den Synthesizer in einen pausierten Zustand.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Web, Linux (X11), macOS "
+"und Windows implementiert.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/general/text_to_speech] sollte "
+"[code]true[/code] sein, um Text-to-Speech zu verwenden."
+
+msgid ""
+"Resumes the synthesizer if it was paused.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
+"macOS, and Windows.\n"
+"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
+"[code]true[/code] to use text-to-speech."
+msgstr ""
+"Setzt den Synthesizer fort, wenn er pausiert wurde.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Web, Linux (X11), macOS "
+"und Windows implementiert.\n"
+"[b]Hinweis:[/b] [member ProjectSettings.audio/general/text_to_speech] sollte "
+"[code]true[/code] sein, um Text-to-Speech zu verwenden."
+
+msgid ""
+"Returns internal structure pointers for use in plugins.\n"
+"[b]Note:[/b] This method is implemented on Android, Linux (X11), macOS and "
+"Windows."
+msgstr ""
+"Gibt interne Strukturzeiger zur Verwendung in Plugins zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, Linux (X11), macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns [code]true[/code] if the given window can be maximized (the maximize "
+"button is enabled)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das angegebene Fenster maximiert werden "
+"kann (die Schaltfläche Maximieren ist aktiviert)."
+
+msgid ""
+"Returns [code]true[/code], if double-click on a window title should maximize "
+"it.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Doppelklick auf einen Fenstertitel "
+"diesen maximieren soll.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid ""
+"Returns [code]true[/code], if double-click on a window title should minimize "
+"it.\n"
+"[b]Note:[/b] This method is implemented only on macOS."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Doppelklick auf einen Fenstertitel "
+"diesen minimieren soll.\n"
+"[b]Hinweis:[/b] Diese Methode ist nur unter macOS implementiert."
+
+msgid "Exporting for Android"
+msgstr "Exportieren für Android"
+
+msgid ""
+"If [code]true[/code], [code]arm64[/code] binaries are included into exported "
+"project."
+msgstr ""
+"Wenn [code]true[/code], werden [code]arm64[/code] Binärdateien in das "
+"exportierte Projekt aufgenommen."
+
+msgid ""
+"If [code]true[/code], [code]arm32[/code] binaries are included into exported "
+"project."
+msgstr ""
+"Wenn [code]true[/code], werden [code]arm32[/code] Binärdateien in das "
+"exportierte Projekt aufgenommen."
+
+msgid ""
+"If [code]true[/code], [code]x86_32[/code] binaries are included into exported "
+"project."
+msgstr ""
+"Wenn [code]true[/code], werden [code]x86_32[/code] Binärdateien in das "
+"exportierte Projekt aufgenommen."
+
+msgid ""
+"If [code]true[/code], [code]x86_64[/code] binaries are included into exported "
+"project."
+msgstr ""
+"Wenn [code]true[/code], werden [code]x86_64[/code] Binärdateien in das "
+"exportierte Projekt aufgenommen."
+
+msgid "Export format for Gradle build."
+msgstr "Exportformat für Gradle-Build."
+
+msgid "Application category for the Play Store."
+msgstr "Anwendungskategorie für den Play Store."
+
+msgid "Name of the application."
+msgstr "Name der Anwendung."
+
+msgid "Deprecated in API level 16."
+msgstr "Veraltet in API-Level 16."
+
+msgid "Allows an application to read the user's personal profile data."
+msgstr ""
+"Ermöglicht es einer Anwendung, die persönlichen Profildaten des Benutzers zu "
+"lesen."
+
+msgid "Deprecated in API level 15."
+msgstr "Veraltet in API-Level 15."
+
+msgid "Allows an application to request authtokens from the AccountManager."
+msgstr ""
+"Ermöglicht es einer Anwendung, Authtoken vom AccountManager anzufordern."
+
+msgid "Exporter for iOS."
+msgstr "Exporter für iOS."
+
+msgid "Exporting for iOS"
+msgstr "Exportieren für iOS"
+
+msgid "Supported device family."
+msgstr "Unterstützte Gerätefamilie."
+
+msgid "A custom background color of the storyboard launch screen."
+msgstr ""
+"Eine benutzerdefinierte Hintergrundfarbe des Startbildschirms des Storyboards."
+
+msgid "Exporter for Linux/BSD."
+msgstr "Exporter für Linux/BSD."
+
+msgid "Exporting for Linux"
+msgstr "Exportieren für Linux"
+
+msgid "Exporter for macOS."
+msgstr "Exporter für macOS."
+
+msgid "Exporting for macOS"
+msgstr "Exportieren für macOS"
+
+msgid "Running Godot apps on macOS"
+msgstr "Ausführen von Godot-Anwendungen unter macOS"
+
+msgid "Application distribution target."
+msgstr "Ziel der Anwendungsverteilung."
+
+msgid "macOS SDK name used to build application executable."
+msgstr ""
+"macOS SDK-Name, der zum Erstellen der ausführbaren Anwendungsdatei verwendet "
+"wird."
+
+msgid "Exporter for the Web."
+msgstr "Exporter für das Web."
+
+msgid "Exporting for the Web"
+msgstr "Exportieren für das Web"
+
+msgid "Web documentation index"
+msgstr "Index der Webdokumentation"
+
+msgid ""
+"The canvas resize policy determines how the canvas should be resized by Godot."
+msgstr ""
+"Die Richtlinie zur Größenänderung der Zeichenfläche (Canvas) legt fest, wie "
+"die Größe der Zeichenfläche (Canvas) durch Godot geändert werden soll."
+
+msgid "Exporter for Windows."
+msgstr "Exporter für Windows."
+
+msgid "Exporting for Windows"
+msgstr "Exportieren für Windows"
+
+msgid ""
+"Returns [code]true[/code] if the class specified by [param class_name] is "
+"disabled. When disabled, the class won't appear in the Create New Node dialog."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param class_name] angegebene "
+"Klasse deaktiviert ist. Wenn sie deaktiviert ist, erscheint die Klasse nicht "
+"im Dialogfeld \"Neuen Knoten (Node) erstellen\"."
+
+msgid ""
+"Returns [code]true[/code] if the [param feature] is disabled. When a feature "
+"is disabled, it will disappear from the editor entirely."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das [param feature] deaktiviert ist. Wenn "
+"eine Funktion deaktiviert ist, verschwindet sie vollständig aus dem Editor."
+
+msgid ""
+"Returns the index of the directory with name [param name] or [code]-1[/code] "
+"if not found."
+msgstr ""
+"Gibt den Index des Verzeichnisses mit dem Namen [param name] zurück oder "
+"[code]-1[/code], falls nicht gefunden."
+
+msgid ""
+"Returns the index of the file with name [param name] or [code]-1[/code] if "
+"not found."
+msgstr ""
+"Gibt den Index der Datei mit dem Namen [param name] zurück oder [code]-1[/"
+"code], falls nicht gefunden."
+
+msgid ""
+"Returns [code]true[/code] if the file at index [param idx] imported properly."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Datei am Index [param idx] korrekt "
+"importiert wurde."
+
+msgid "Returns the editor's [EditorSettings] instance."
+msgstr "Gibt die [EditorSettings] Instanz des Editors zurück."
+
+msgid "Returns the editor's [EditorFileSystem] instance."
+msgstr "Gibt die [EditorFileSystem]-Instanz des Editors zurück."
+
+msgid "Returns the editor's [EditorSelection] instance."
+msgstr "Gibt die [EditorSelection]-Instanz des Editors zurück."
+
+msgid ""
+"Returns [code]true[/code] if a scene is currently being played, [code]false[/"
+"code] otherwise. Paused scenes are considered as being played."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn eine Szene gerade abgespielt wird, sonst "
+"[code]false[/code]. Pausierte Szenen werden als abgespielt betrachtet."
+
+msgid ""
+"Returns [code]true[/code] if the specified [param plugin] is enabled. The "
+"plugin name is the same as its directory name."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das angegebene [param plugin] aktiviert "
+"ist. Der Name des Plugins ist derselbe wie sein Verzeichnisname."
+
+msgid "File paths in Godot projects"
+msgstr "Dateipfade in Godot-Projekten"
+
+msgid ""
+"Returns [code]true[/code] if the setting specified by [param name] exists, "
+"[code]false[/code] otherwise."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param name] angegebene "
+"Einstellung existiert, andernfalls [code]false[/code]."
+
+msgid "Emitted after any editor setting has changed."
+msgstr "Gesendet wenn das Rechteck Element geändert wurde."
+
+msgid ""
+"Returns [code]true[/code] if the peer is currently active (i.e. the "
+"associated [ENetConnection] is still valid)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Peer gerade aktiv ist (d.h. die "
+"zugehörige [ENetConnection] ist noch gültig)."
+
+msgid ""
+"Returns [code]true[/code] if a singleton with given [param name] exists in "
+"global scope."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Singleton mit dem angegebenen [param "
+"name] im globalen Bereich existiert."
+
+msgid ""
+"The bloom's intensity. If set to a value higher than [code]0[/code], this "
+"will make glow visible in areas darker than the [member glow_hdr_threshold]."
+msgstr ""
+"Die Intensität des Bloom-Effekts. Wenn höher eingestellt als [code]0[/code], "
+"macht es den Glow sichtbar in dunklen Bereichen, die den [member "
+"glow_hdr_threshold]-Wert unterschreiten."
+
+msgid ""
+"Returns [code]true[/code], if file [code]hidden[/code] attribute is set.\n"
+"[b]Note:[/b] This method is implemented on iOS, BSD, macOS, and Windows."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Dateiattribut [code]hidden[/code] "
+"gesetzt ist.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf iOS, BSD, macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns [code]true[/code], if file [code]read only[/code] attribute is set.\n"
+"[b]Note:[/b] This method is implemented on iOS, BSD, macOS, and Windows."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Dateiattribut [code]read only[/code] "
+"gesetzt ist.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf iOS, BSD, macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns file UNIX permissions.\n"
+"[b]Note:[/b] This method is implemented on iOS, Linux/BSD, and macOS."
+msgstr ""
+"Gibt die UNIX-Berechtigungen für Dateien zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf iOS, Linux/BSD und macOS implementiert."
+
+msgid ""
+"Returns the next [Variant] value from the file. If [param allow_objects] is "
+"[code]true[/code], decoding objects is allowed.\n"
+"Internally, this uses the same decoding mechanism as the [method @GlobalScope."
+"bytes_to_var] method.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats such as remote code execution."
+msgstr ""
+"Gibt den nächsten [Variant]-Wert aus der Datei zurück. Wenn [param "
+"allow_objects] [code]true[/code] ist, ist die Dekodierung von Objekten "
+"erlaubt.\n"
+"Intern wird der gleiche Dekodierungsmechanismus verwendet wie bei der Methode "
+"[method @GlobalScope.bytes_to_var].\n"
+"[b]Warnung:[/b] Deserialisierte Objekte können Code enthalten, der ausgeführt "
+"wird. Verwenden Sie diese Option nicht, wenn das serialisierte Objekt aus "
+"nicht vertrauenswürdigen Quellen stammt, um potenzielle "
+"Sicherheitsbedrohungen wie Remotecodeausführung zu vermeiden."
+
+msgid ""
+"Sets file UNIX permissions.\n"
+"[b]Note:[/b] This method is implemented on iOS, Linux/BSD, and macOS."
+msgstr ""
+"Legt UNIX-Berechtigungen für Dateien fest.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf iOS, Linux/BSD und macOS implementiert."
+
+msgid ""
+"Uses the [url=https://facebook.github.io/zstd/]Zstandard[/url] compression "
+"method."
+msgstr ""
+"Verwendet das [url=https://facebook.github.io/zstd/]Zstandard[/url] "
+"Kompressionsverfahren."
+
+msgid "Uses the [url=https://www.gzip.org/]gzip[/url] compression method."
+msgstr ""
+"Verwendet das [url=https://www.gzip.org/]gzip[/url] Kompressionsverfahren."
+
+msgid ""
+"Returns [code]true[/code] if both floats are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"@GlobalScope.is_equal_approx] or [method @GlobalScope.is_zero_approx] "
+"instead, which are more reliable.\n"
+"[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other "
+"numbers. Therefore, the results from this operator may not be accurate if "
+"NaNs are included."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn beide Gleitkommazahlen genau gleich "
+"sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fehlern bei der Fließkommagenauigkeit sollten "
+"Sie stattdessen [method @GlobalScope.is_equal_approx] oder [method "
+"@GlobalScope.is_zero_approx] verwenden, die zuverlässiger sind.\n"
+"[b]Hinweis:[/b] Die [Konstante @GDScript.NAN] verhält sich nicht so wie "
+"andere Zahlen. Daher sind die Ergebnisse dieses Operators möglicherweise "
+"nicht genau, wenn NaNs enthalten sind."
+
+msgid "Removes all font sizes from the cache entry"
+msgstr "Entfernt alle Schriftgrößen aus dem Cache-Eintrag"
+
+msgid ""
+"Returns [code]true[/code] if [param point] is inside the circle or if it's "
+"located exactly [i]on[/i] the circle's boundary, otherwise returns "
+"[code]false[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param point] innerhalb des Kreises liegt "
+"oder wenn er genau [i]auf[/i] der Kreisgrenze liegt, andernfalls [code]false[/"
+"code]."
+
+msgid ""
+"Returns [code]true[/code] if [param point] is inside [param polygon] or if "
+"it's located exactly [i]on[/i] polygon's boundary, otherwise returns "
+"[code]false[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [param Punkt] innerhalb von [param "
+"Polygon] liegt oder wenn er genau [i]auf[/i] der Polygongrenze liegt, "
+"andernfalls [code]false[/code]."
+
+msgid "Cubic interpolation."
+msgstr "Kubische Interpolation."
+
+msgid "Emitted when the user presses [kbd]Ctrl + C[/kbd]."
+msgstr "Wird ausgegeben, wenn der Benutzer [kbd]Strg + C[/kbd] drückt."
+
+msgid "Emitted when the user presses [kbd]Ctrl + V[/kbd]."
+msgstr "Wird ausgegeben, wenn der Benutzer [kbd]Strg + V[/kbd] drückt."
+
+msgid ""
+"Returns [code]true[/code] if left (input) side of the slot with the given "
+"[param slot_index] is enabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die linke (Eingabe-)Seite des Slots mit "
+"dem angegebenen [param slot_index] aktiviert ist."
+
+msgid ""
+"Returns [code]true[/code] if right (output) side of the slot with the given "
+"[param slot_index] is enabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die rechte (Ausgabe-)Seite des Slots mit "
+"dem angegebenen [param slot_index] aktiviert ist."
+
+msgid "Using gridmaps"
+msgstr "Verwendung von Gridmaps"
+
+msgid "Making HTTP requests"
+msgstr "HTTP-Anfragen stellen"
+
+msgid "Cancels the current request."
+msgstr "Bricht die aktuelle Anforderung ab."
+
+msgid "Maximum number of allowed redirects."
+msgstr "Maximale Anzahl zulässiger Weiterleitungen."
+
+msgid "Request successful."
+msgstr "Anforderung erfolgreich."
+
+msgid "Request failed while connecting."
+msgstr "Anfrage beim Verbindungsaufbau fehlgeschlagen."
+
+msgid "Image datatype."
+msgstr "Bild-Datentyp."
+
+msgid "Importing images"
+msgstr "Importieren von Bildern"
+
+msgid "Flips the image horizontally."
+msgstr "Spiegelt das Bild horizontal."
+
+msgid "Flips the image vertically."
+msgstr "Spiegelt das Bild vertikal."
+
+msgid ""
+"The [Input] singleton handles key presses, mouse buttons and movement, "
+"gamepads, and input actions. Actions and their events can be set in the "
+"[b]Input Map[/b] tab in [b]Project > Project Settings[/b], or with the "
+"[InputMap] class.\n"
+"[b]Note:[/b] [Input]'s methods reflect the global input state and are not "
+"affected by [method Control.accept_event] or [method Viewport."
+"set_input_as_handled], as those methods only deal with the way input is "
+"propagated in the [SceneTree]."
+msgstr ""
+"Das Singleton [Input] verarbeitet Tastendrücke, Maustasten und -bewegungen, "
+"Gamepads und Eingabeaktionen. Aktionen und ihre Ereignisse können auf der "
+"Registerkarte [b]Input Map[/b] in [b]Projekt > Projekteinstellungen[/b] oder "
+"mit der Klasse [InputMap] festgelegt werden.\n"
+"[b]Hinweis:[/b] Die Methoden von [Input] spiegeln den globalen Eingabestatus "
+"wider und werden nicht von [method Control.accept_event] oder [method "
+"Viewport.set_input_as_handled] beeinflusst, da diese Methoden nur die Art und "
+"Weise betreffen, wie Eingaben im [SceneTree] weitergegeben werden."
+
+msgid ""
+"Returns [code]true[/code] when the user has [i]started[/i] pressing the "
+"action event in the current frame or physics tick. It will only return "
+"[code]true[/code] on the frame or tick that the user pressed down the "
+"button.\n"
+"This is useful for code that needs to run only once when an action is "
+"pressed, instead of every frame while it's pressed.\n"
+"If [param exact_match] is [code]false[/code], it ignores additional input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Returning [code]true[/code] does not imply that the action is "
+"[i]still[/i] pressed. An action can be pressed and released again rapidly, "
+"and [code]true[/code] will still be returned so as not to miss input.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_just_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Benutzer [i]begonnen hat[/i], das "
+"Aktionsereignis im aktuellen Frame oder Physik-Tick zu drücken. Es wird nur "
+"[code]true[/code] in dem Frame oder Tick zurückgegeben, in dem der Benutzer "
+"die Taste gedrückt hat.\n"
+"Dies ist nützlich für Code, der nur einmal ausgeführt werden muss, wenn eine "
+"Aktion gedrückt wird, anstatt bei jedem Frame, während sie gedrückt wird.\n"
+"Wenn [param exact_match] [code]false[/code] ist, werden zusätzliche "
+"Eingabemodifikatoren für [InputEventKey]- und [InputEventMouseButton]-"
+"Ereignisse sowie die Richtung für [InputEventJoypadMotion]-Ereignisse "
+"ignoriert.\n"
+"[b]Hinweis:[/b] Die Rückgabe von [code]true[/code] bedeutet nicht, dass die "
+"Aktion [i]noch[/i] gedrückt ist. Eine Aktion kann schnell gedrückt und wieder "
+"losgelassen werden, und [code]true[/code] wird trotzdem zurückgegeben, um "
+"keine Eingabe zu verpassen.\n"
+"[b]Hinweis:[/b] Aufgrund von Tastatur-Ghosting kann [method "
+"is_action_just_pressed] auch dann [code]false[/code] zurückgeben, wenn eine "
+"der Tasten der Aktion gedrückt ist. Siehe [url=$DOCS_URL/tutorials/inputs/"
+"input_examples.html#keyboard-events]Eingabebeispiele[/url] in der "
+"Dokumentation für weitere Informationen."
+
+msgid ""
+"Returns [code]true[/code] if you are pressing the action event.\n"
+"If [param exact_match] is [code]false[/code], it ignores additional input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn Sie das Aktionsereignis drücken.\n"
+"Wenn [param exact_match] [code]false[/code] ist, werden zusätzliche "
+"Eingabemodifikatoren für die Ereignisse [InputEventKey] und "
+"[InputEventMouseButton] sowie die Richtung für die Ereignisse "
+"[InputEventJoypadMotion] ignoriert.\n"
+"[b]Hinweis:[/b] Aufgrund von Tastatur-Ghosting kann [method "
+"is_action_pressed] [code]false[/code] zurückgeben, auch wenn eine der Tasten "
+"der Aktion gedrückt ist. Siehe [url=$DOCS_URL/tutorials/inputs/input_examples."
+"html#keyboard-events]Eingabebeispiele[/url] in der Dokumentation für weitere "
+"Informationen."
+
+msgid ""
+"Returns [code]true[/code] if you are pressing the Latin key in the current "
+"keyboard layout. You can pass a [enum Key] constant.\n"
+"[method is_key_pressed] is only recommended over [method "
+"is_physical_key_pressed] in non-game applications. This ensures that shortcut "
+"keys behave as expected depending on the user's keyboard layout, as keyboard "
+"shortcuts are generally dependent on the keyboard layout in non-game "
+"applications. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_key_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn Sie die lateinische Taste in der "
+"aktuellen Tastaturbelegung drücken. Sie können eine [enum Key]-Konstante "
+"übergeben.\n"
+"Die [method is_key_pressed] wird gegenüber der [method "
+"is_physical_key_pressed] nur in Nicht-Spiel-Anwendungen empfohlen. Damit wird "
+"sichergestellt, dass sich Tastenkombinationen je nach Tastaturlayout des "
+"Benutzers wie erwartet verhalten, da Tastenkombinationen in Nicht-Spiel-"
+"Anwendungen in der Regel vom Tastaturlayout abhängig sind. Im Zweifelsfall "
+"verwenden Sie [method is_physical_key_pressed].\n"
+"[b]Hinweis:[/b] Aufgrund von Tastatur-Ghosting kann [method is_key_pressed] "
+"[code]false[/code] zurückgeben, auch wenn eine der Tasten der Aktion gedrückt "
+"ist. Siehe [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-"
+"events]Eingabebeispiele[/url] in der Dokumentation für weitere Informationen."
+
+msgid ""
+"Returns [code]true[/code] if you are pressing the key in the physical "
+"location on the 101/102-key US QWERTY keyboard. You can pass a [enum Key] "
+"constant.\n"
+"[method is_physical_key_pressed] is recommended over [method is_key_pressed] "
+"for in-game actions, as it will make [kbd]W[/kbd]/[kbd]A[/kbd]/[kbd]S[/kbd]/"
+"[kbd]D[/kbd] layouts work regardless of the user's keyboard layout. [method "
+"is_physical_key_pressed] will also ensure that the top row number keys work "
+"on any keyboard layout. If in doubt, use [method is_physical_key_pressed].\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_physical_key_pressed] may "
+"return [code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn Sie die Taste an der physischen Position "
+"auf der US-QWERTY-Tastatur mit 101/102 Tasten drücken. Sie können eine [enum "
+"Key]-Konstante übergeben.\n"
+"Die [method is_physical_key_pressed] wird gegenüber der [method "
+"is_key_pressed] für Aktionen im Spiel empfohlen, da sie die [kbd]W[/kbd]/"
+"[kbd]A[/kbd]/[kbd]S[/kbd]/[kbd]D[/kbd]-Layouts unabhängig vom Tastaturlayout "
+"des Benutzers funktionieren lässt. Mit [method is_physical_key_pressed] wird "
+"auch sichergestellt, dass die Zifferntasten in der obersten Reihe auf jedem "
+"Tastaturlayout funktionieren. Im Zweifelsfall sollten Sie [method "
+"is_physical_key_pressed] verwenden.\n"
+"[b]Hinweis:[/b] Aufgrund von Tastatur-Ghosting kann [method "
+"is_physical_key_pressed] [code]false[/code] zurückgeben, auch wenn eine der "
+"Tasten der Aktion gedrückt ist. Siehe [url=$DOCS_URL/tutorials/inputs/"
+"input_examples.html#keyboard-events]Eingabebeispiele[/url] in der "
+"Dokumentation für weitere Informationen."
+
+msgid ""
+"Returns [code]true[/code] if the given action is being pressed (and is not an "
+"echo event for [InputEventKey] events, unless [param allow_echo] is "
+"[code]true[/code]). Not relevant for events of type [InputEventMouseMotion] "
+"or [InputEventScreenDrag].\n"
+"If [param exact_match] is [code]false[/code], it ignores additional input "
+"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
+"direction for [InputEventJoypadMotion] events.\n"
+"[b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return "
+"[code]false[/code] even if one of the action's keys is pressed. See "
+"[url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input "
+"examples[/url] in the documentation for more information."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die angegebene Aktion gedrückt wird (und "
+"ist kein Echo-Ereignis für [InputEventKey]-Ereignisse, außer wenn [param "
+"allow_echo] [code]true[/code] ist). Nicht relevant für Ereignisse des Typs "
+"[InputEventMouseMotion] oder [InputEventScreenDrag].\n"
+"Wenn [param exact_match] [code]false[/code] ist, werden zusätzliche "
+"Eingabemodifikatoren für die Ereignisse [InputEventKey] und "
+"[InputEventMouseButton] sowie die Richtung für die Ereignisse "
+"[InputEventJoypadMotion] ignoriert.\n"
+"[b]Hinweis:[/b] Aufgrund von Tastatur-Ghosting kann [method "
+"is_action_pressed] [code]false[/code] zurückgeben, auch wenn eine der Tasten "
+"der Aktion gedrückt ist. Siehe [url=$DOCS_URL/tutorials/inputs/input_examples."
+"html#keyboard-events]Eingabebeispiele[/url] in der Dokumentation für weitere "
+"Informationen."
+
+msgid ""
+"Returns [code]true[/code] if this input event is released. Not relevant for "
+"events of type [InputEventMouseMotion] or [InputEventScreenDrag]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn dieses Eingabeereignis ausgelöst wird. "
+"Nicht relevant für Ereignisse des Typs [InputEventMouseMotion] oder "
+"[InputEventScreenDrag]."
+
+msgid ""
+"Returns [code]true[/code] when using the eraser end of a stylus pen.\n"
+"[b]Note:[/b] This property is implemented on Linux, macOS and Windows."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Radiergummiende eines Stylus-Stifts "
+"verwendet wird.\n"
+"[b]Hinweis:[/b] Diese Eigenschaft ist unter Linux, macOS und Windows "
+"implementiert."
+
+msgid ""
+"Constructs a new [int] from a [bool]. [code]true[/code] is converted to "
+"[code]1[/code] and [code]false[/code] is converted to [code]0[/code]."
+msgstr ""
+"Konstruiert ein neues [int] aus einem [bool]. [code]true[/code] wird in "
+"[code]1[/code] und [code]false[/code] wird in [code]0[/code] umgewandelt."
+
+msgid ""
+"Multiplies each component of the [Vector2] by the [int].\n"
+"[codeblock]\n"
+"print(2 * Vector2(1, 4)) # Prints (2, 8)\n"
+"[/codeblock]"
+msgstr ""
+"Multipliziert jede Komponente des [Vector2] mit dem [int].\n"
+"[Codeblock]\n"
+"print(2 * Vector2(1, 4)) # Druckt (2, 8)\n"
+"[/codeblock]"
+
+msgid ""
+"Divides the two [int]s. The result is an [int]. This will truncate the "
+"[float], discarding anything after the floating point.\n"
+"[codeblock]\n"
+"print(6 / 2) # Prints 3\n"
+"print(5 / 3) # Prints 1\n"
+"[/codeblock]"
+msgstr ""
+"Teilt die beiden [int]s. Das Ergebnis ist ein [int]. Dadurch wird [float] "
+"abgeschnitten, wobei alles nach dem Fließkomma verworfen wird.\n"
+"[codeblock]\n"
+"print(6 / 2) # Gibt 3 zurück\n"
+"print(5 / 3) # Gibt 1 zurück\n"
+"[/codeblock]"
+
+msgid ""
+"Performs the bitwise [code]NOT[/code] operation on the [int]. Due to "
+"[url=https://en.wikipedia.org/wiki/Two%27s_complement]2's complement[/url], "
+"it's effectively equal to [code]-(int + 1)[/code].\n"
+"[codeblock]\n"
+"print(~4) # Prints -5\n"
+"print(~(-7)) # Prints 6\n"
+"[/codeblock]"
+msgstr ""
+"Führt die bitweise [code]NOT[/code]-Operation an [int] durch. Aufgrund des "
+"[url=https://en.wikipedia.org/wiki/Two%27s_complement]2er-Komplements[/url] "
+"ist dies effektiv gleich [code]-(int + 1)[/code].\n"
+"[codeblock]\n"
+"print(~4) # Gibt -5 zurück\n"
+"print(~(-7)) # Gibt 6 zurück\n"
+"[/codeblock]"
+
+msgid "Returns the moving object's travel before collision."
+msgstr "Gibt den Weg des bewegten Objekts vor der Kollision zurück."
+
+msgid ""
+"If [code]true[/code], the Label only shows the text that fits inside its "
+"bounding rectangle and will clip text horizontally."
+msgstr ""
+"Wenn [code]An[/code], zeigt das Label nur den Text, der in sein "
+"Begrenzungsrechteck passt an und schneidet den restlichen Text ab."
+
+msgid "Limits the lines of text the node shows on screen."
+msgstr "Begrenzt die Textzeilen, die das Node auf dem Bildschirm anzeigt."
+
+msgid "The text to display on screen."
+msgstr "Der Text, der auf dem Bildschirm angezeigt werden soll."
+
+msgid "If [code]true[/code], all the text displays as UPPERCASE."
+msgstr ""
+"Wenn [code]An[/code] , wird der gesamte Text in GROSSBUCHSTABEN angezeigt."
+
+msgid "3D text"
+msgstr "3D-Text"
+
+msgid "The light will affect objects in the selected layers."
+msgstr "Das Licht wirkt sich auf Objekte in den ausgewählten Ebenen aus."
+
+msgid "Using Lightmap global illumination"
+msgstr "Verwenden der globalen Lightmap-Beleuchtung"
+
+msgid "Lightmap baking was successful."
+msgstr "Das Backen der Lightmap war erfolgreich."
+
+msgid ""
+"Lightmap baking failed as there is no lightmapper available in this Godot "
+"build."
+msgstr ""
+"Das Backen von Lightmaps ist fehlgeschlagen, da in diesem Godot-Build kein "
+"Lightmapper verfügbar ist."
+
+msgid "Generic 3D position hint for editing."
+msgstr "Generischer 3D-Positionshinweis für die Bearbeitung."
+
+msgid ""
+"Returns a decoded [Variant] corresponding to the Base64-encoded string [param "
+"base64_str]. If [param allow_objects] is [code]true[/code], decoding objects "
+"is allowed.\n"
+"Internally, this uses the same decoding mechanism as the [method @GlobalScope."
+"bytes_to_var] method.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats such as remote code execution."
+msgstr ""
+"Gibt eine dekodierte [Variante] zurück, die der Base64-kodierten Zeichenkette "
+"[param base64_str] entspricht. Wenn [param allow_objects] [code]true[/code] "
+"ist, ist die Dekodierung von Objekten erlaubt.\n"
+"Intern wird der gleiche Dekodierungsmechanismus verwendet wie bei der Methode "
+"[method @GlobalScope.bytes_to_var].\n"
+"[b]Warnung:[/b] Deserialisierte Objekte können Code enthalten, der ausgeführt "
+"wird. Verwenden Sie diese Option nicht, wenn das serialisierte Objekt aus "
+"nicht vertrauenswürdigen Quellen stammt, um potenzielle "
+"Sicherheitsbedrohungen wie Remotecodeausführung zu vermeiden."
+
+msgid ""
+"Returns a Base64-encoded string of the [Variant] [param variant]. If [param "
+"full_objects] is [code]true[/code], encoding objects is allowed (and can "
+"potentially include code).\n"
+"Internally, this uses the same encoding mechanism as the [method @GlobalScope."
+"var_to_bytes] method."
+msgstr ""
+"Gibt eine Base64-kodierte Zeichenkette der [Variante] [param variant] zurück. "
+"Wenn [param full_objects] [code]true[/code] ist, ist die Kodierung von "
+"Objekten erlaubt (und kann potenziell Code enthalten).\n"
+"Intern wird dabei derselbe Kodierungsmechanismus wie bei der Methode [method "
+"@GlobalScope.var_to_bytes] verwendet."
+
+msgid "Returns menu item title."
+msgstr "Gibt den Titel des Menüelements zurück."
+
+msgid "Returns menu item tooltip."
+msgstr "Gibt den Tooltip des Menüpunkts zurück."
+
+msgid "The horizontal space between menu items."
+msgstr "Der horizontale Abstand zwischen Menüelementen."
+
+msgid "Sets a hint to be used for lightmap resolution."
+msgstr ""
+"Legt einen Hinweis fest, der für die Lightmap-Auflösung verwendet werden soll."
+
+msgid ""
+"[PackedInt32Array] of integers used as indices referencing vertices, colors, "
+"normals, tangents, and textures. All of those arrays must have the same "
+"number of elements as the vertex array. No index can be beyond the vertex "
+"array size. When this index array is present, it puts the function into "
+"\"index mode,\" where the index selects the [i]i[/i]'th vertex, normal, "
+"tangent, color, UV, etc. This means if you want to have different normals or "
+"colors along an edge, you have to duplicate the vertices.\n"
+"For triangles, the index array is interpreted as triples, referring to the "
+"vertices of each triangle. For lines, the index array is in pairs indicating "
+"the start and end of each line."
+msgstr ""
+"[PackedInt32Array] von Integerwerten, die als Indizes verwendet werden und "
+"auf Vertices, Farben, Normalen, Tangenten und Texturen verweisen. Alle diese "
+"Arrays müssen die gleiche Anzahl von Elementen haben wie das Vertex-Array. "
+"Kein Index kann über die Größe des Vertex-Arrays hinausgehen. Wenn dieses "
+"Index-Array vorhanden ist, versetzt es die Funktion in den \"Index-Modus\", "
+"in dem der Index den [i]i[/i]-ten Vertices, die Normale, die Tangente, die "
+"Farbe, die UV, usw. auswählt. Das bedeutet, wenn Sie verschiedene Normalen "
+"oder Farben entlang einer Kante haben wollen, müssen Sie die Vertices "
+"duplizieren.\n"
+"Bei Dreiecken wird das Index-Array als Tripel interpretiert, das sich auf die "
+"Vertices der einzelnen Dreiecke bezieht. Bei Linien besteht das Index-Array "
+"aus Paaren, die den Anfang und das Ende jeder Linie angeben."
+
+msgid "Represents the size of the [enum ArrayType] enum."
+msgstr "Stellt die Größe der Aufzählung [enum ArrayType] dar."
+
+msgid ""
+"Returns the number of blend shapes available. Produces an error if [member "
+"mesh] is [code]null[/code]."
+msgstr ""
+"Gibt die Anzahl der verfügbaren Mischformen zurück. Erzeugt einen Fehler, "
+"wenn [member mesh] [code]null[/code] ist."
+
+msgid "Returns the [Transform3D] of a specific instance."
+msgstr "Gibt den [Transform3D] einer bestimmten Instanz zurück."
+
+msgid "Returns the [Transform2D] of a specific instance."
+msgstr "Gibt den [Transform2D] einer bestimmten Instanz zurück."
+
+msgid "Sets the [Transform3D] for a specific instance."
+msgstr "Legt den [Transform3D] für eine bestimmte Instanz fest."
+
+msgid "Sets the [Transform2D] for a specific instance."
+msgstr "Legt den [Transform2D] für eine bestimmte Instanz fest."
+
+msgid "Returns [code]true[/code] if there is a [member multiplayer_peer] set."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein [member multiplayer_peer] gesetzt ist."
+
+msgid "Using NavigationAgents"
+msgstr "Verwenden von NavigationAgents"
+
+msgid "Using NavigationLinks"
+msgstr "Verwenden von NavigationLinks"
+
+msgid "Using NavigationMeshes"
+msgstr "Verwenden von NavigationMeshes"
+
+msgid "Using NavigationObstacles"
+msgstr "Verwenden von NavigationObstacles"
+
+msgid ""
+"Sets the [RID] of the navigation map this NavigationObstacle node should use "
+"and also updates the [code]obstacle[/code] on the NavigationServer."
+msgstr ""
+"Legt die [RID] der Navigationsmap fest, die dieser NavigationObstacle-Knoten "
+"(Node) verwenden soll, und aktualisiert außerdem das [code]obstacle[/code] "
+"auf dem NavigationServer."
+
+msgid "Using NavigationRegions"
+msgstr "Verwendung von NavigationRegions"
+
+msgid "Using NavigationServer"
+msgstr "Verwendung des NavigationServer"
+
+msgid ""
+"If [param enabled] is [code]true[/code], the specified [param agent] uses "
+"avoidance."
+msgstr ""
+"Wenn [param enabled] [code]true[/code] ist, verwendet der angegebene [param "
+"agent] das Vermeidungsverfahren."
+
+msgid "Set the agent's [code]avoidance_layers[/code] bitmask."
+msgstr "Setzen Sie die Bitmaske [code]avoidance_layers[/code] des Agenten."
+
+msgid ""
+"If [param enabled] is [code]true[/code], the specified [param link] will "
+"contribute to its current navigation map."
+msgstr ""
+"Wenn [param enabled] [code]true[/code] ist, trägt der angegebene [param link] "
+"zu seiner aktuellen Navigationsmap bei."
+
+msgid ""
+"If [param enabled] is [code]true[/code], the provided [param obstacle] "
+"affects avoidance using agents."
+msgstr ""
+"Wenn [param enabled] [code]true[/code] ist, wirkt sich der angegebene [param "
+"obstacle] auf die Vermeidung durch Agenten aus."
+
+msgid "Set the obstacles's [code]avoidance_layers[/code] bitmask."
+msgstr ""
+"Legt die Bitmaske [code]avoidance_layers[/code] für die Hindernisse fest."
+
+msgid ""
+"If [param enabled] is [code]true[/code] the specified [param region] will "
+"contribute to its current navigation map."
+msgstr ""
+"Wenn [param enabled] [code]true[/code] ist, trägt die angegebene [param "
+"region] zu ihrer aktuellen Navigationsmap bei."
+
+msgid "Sets the global transformation for the region."
+msgstr "Legt die globale Transformation für die Region fest."
+
+msgid ""
+"Returns [code]true[/code] if the node is folded (collapsed) in the Scene "
+"dock. This method is only intended for use with editor tooling."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Knoten (Node) im Szenendock "
+"eingeklappt (eingeklappt) ist. Diese Methode ist nur für die Verwendung mit "
+"Editorwerkzeugen vorgesehen."
+
+msgid ""
+"Returns [code]true[/code] if the node is ready, i.e. it's inside scene tree "
+"and all its children are initialized.\n"
+"[method request_ready] resets it back to [code]false[/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Knoten bereit ist, d.h. er befindet "
+"sich im Szenenbaum und alle seine Kinder sind initialisiert.\n"
+"Die [Methode request_ready] setzt ihn auf [code]false[/code] zurück."
+
+msgid "Global position."
+msgstr "Gobale Position."
+
+msgid "Global rotation in radians."
+msgstr "Globale Rotation im Bogenmaß."
+
+msgid "Global scale."
+msgstr "Globaler Maßstab."
+
+msgid "Object class introduction"
+msgstr "Einführung der Objektklasse"
+
+msgid ""
+"Returns the object's [Script] instance, or [code]null[/code] if no script is "
+"attached."
+msgstr ""
+"Gibt die [Script]-Instanz des Objekts zurück, oder [code]null[/code], wenn "
+"kein Script angehängt ist."
+
+msgid "Add an action set."
+msgstr "Eine Aktionsmenge hinzufügen."
+
+msgid "Add an interaction profile."
+msgstr "Ein Interaktionsprofil hinzufügen."
+
+msgid ""
+"Returns the ID of the selected item, or [code]-1[/code] if no item is "
+"selected."
+msgstr ""
+"Gibt die ID des ausgewählten Elements zurück, oder [code]-1[/code], wenn kein "
+"Element ausgewählt ist."
+
+msgid "Returns [code]true[/code] if the item at index [param idx] is disabled."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] "
+"deaktiviert ist."
+
+msgid ""
+"Returns [code]true[/code] if the item at index [param idx] is marked as a "
+"separator."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Element bei Index [param idx] als "
+"Trennzeichen markiert ist."
+
+msgid ""
+"Returns list of font family names available.\n"
+"[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and "
+"Windows."
+msgstr ""
+"Gibt die Liste der verfügbaren Schriftfamiliennamen zurück.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf Android, iOS, Linux, macOS und Windows "
+"implementiert."
+
+msgid ""
+"Returns [code]true[/code] if application is running in the sandbox.\n"
+"[b]Note:[/b] This method is implemented on macOS and Linux."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Anwendung in der Sandbox läuft.\n"
+"[b]Hinweis:[/b] Diese Methode ist auf macOS und Linux implementiert."
+
+msgid ""
+"Initializes the singleton for the system MIDI driver.\n"
+"[b]Note:[/b] This method is implemented on Linux, macOS and Windows."
+msgstr ""
+"Initialisiert das Singleton für den System-MIDI-Treiber.\n"
+"[b]Hinweis:[/b] Diese Methode ist unter Linux, macOS und Windows "
+"implementiert."
+
+msgid "Constructs an empty [PackedByteArray]."
+msgstr "Konstruiert ein leeres [PackedByteArray]."
+
+msgid ""
+"Inserts a new element at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]idx == size()[/code])."
+msgstr ""
+"Fügt ein neues Element an der übergebenen Position ein. Die Position muss "
+"innerhalb des Arrays oder eins dahinter liegen([code]index == size()[/code])."
+
+msgid "Appends an element at the end of the array."
+msgstr "Fügt ein Element am Ende des Arrays hinzu."
+
+msgid "Removes an element from the array by index."
+msgstr "Entfernt das Element der Arrays dessen Position übergeben wurde."
+
+msgid ""
+"Sets the size of the array. If the array is grown, reserves elements at the "
+"end of the array. If the array is shrunk, truncates the array to the new size."
+msgstr ""
+"Legt die Größe des Arrays fest. Sollte das Array dadurch wachsen, werden neue "
+"Elemente am Ende des Arrays reserviert. Sollte es schrumpfen, werden Elemente "
+"am Ende entsprechend weggeschnitten."
+
+msgid "Constructs an empty [PackedColorArray]."
+msgstr "Konstruiert ein leeres [PackedColorArray]."
+
+msgid "Constructs an empty [PackedFloat32Array]."
+msgstr "Konstruiert ein leeres [PackedFloat32Array]."
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search. Optionally, a [param before] specifier can be passed. If [code]false[/"
+"code], the returned index comes after all existing entries of the value in "
+"the array.\n"
+"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
+"unexpected behavior.\n"
+"[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other "
+"numbers. Therefore, the results from this method may not be accurate if NaNs "
+"are included."
+msgstr ""
+"Findet den Index eines vorhandenen Wertes (oder den Einfügeindex, der die "
+"Sortierreihenfolge beibehält, wenn der Wert noch nicht im Array vorhanden "
+"ist) mit Hilfe der binären Suche. Optional kann ein [param before]-"
+"Spezifizierer übergeben werden. Wenn [code]false[/code], kommt der "
+"zurückgegebene Index nach allen vorhandenen Einträgen des Wertes im Array.\n"
+"[b]Hinweis:[/b] Der Aufruf der [Methode bsearch] auf einem unsortierten Array "
+"führt zu unerwartetem Verhalten.\n"
+"[b]Hinweis:[/b] Die [Konstante @GDScript.NAN] verhält sich nicht so wie "
+"andere Zahlen. Daher sind die Ergebnisse dieser Methode möglicherweise nicht "
+"genau, wenn NaNs enthalten sind."
+
+msgid ""
+"Searches the array for a value and returns its index or [code]-1[/code] if "
+"not found. Optionally, the initial search index can be passed.\n"
+"[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other "
+"numbers. Therefore, the results from this method may not be accurate if NaNs "
+"are included."
+msgstr ""
+"Durchsucht das Array nach einem Wert und gibt dessen Index oder [code]-1[/"
+"code] zurück, wenn er nicht gefunden wurde. Optional kann auch der "
+"anfängliche Suchindex übergeben werden.\n"
+"[b]Hinweis:[/b] Die [Konstante @GDScript.NAN] verhält sich nicht so wie "
+"andere Zahlen. Daher sind die Ergebnisse dieser Methode möglicherweise nicht "
+"genau, wenn NaNs enthalten sind."
+
+msgid ""
+"Searches the array in reverse order. Optionally, a start search index can be "
+"passed. If negative, the start index is considered relative to the end of the "
+"array.\n"
+"[b]Note:[/b] [constant @GDScript.NAN] doesn't behave the same as other "
+"numbers. Therefore, the results from this method may not be accurate if NaNs "
+"are included."
+msgstr ""
+"Durchsucht das Array in umgekehrter Reihenfolge. Optional kann ein Start-"
+"Suchindex übergeben werden. Ist dieser negativ, wird der Startindex relativ "
+"zum Ende des Arrays betrachtet.\n"
+"[b]Hinweis:[/b] Die [Konstante @GDScript.NAN] verhält sich nicht so wie "
+"andere Zahlen. Daher sind die Ergebnisse dieser Methode möglicherweise nicht "
+"genau, wenn NaNs enthalten sind."
+
+msgid "Constructs an empty [PackedFloat64Array]."
+msgstr "Konstruiert ein leeres [PackedFloat64Array]."
+
+msgid "Constructs an empty [PackedInt32Array]."
+msgstr "Konstruiert ein leeres [PackedInt32Array]."
+
+msgid "Constructs an empty [PackedInt64Array]."
+msgstr "Konstruiert ein leeres [PackedInt64Array]."
+
+msgid "Constructs an empty [PackedStringArray]."
+msgstr "Konstruiert ein leeres [PackedStringArray]."
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search. Optionally, a [param before] specifier can be passed. If [code]false[/"
+"code], the returned index comes after all existing entries of the value in "
+"the array.\n"
+"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
+"unexpected behavior.\n"
+"[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the "
+"same as other vectors. Therefore, the results from this method may not be "
+"accurate if NaNs are included."
+msgstr ""
+"Findet den Index eines vorhandenen Wertes (oder den Einfügeindex, der die "
+"Sortierreihenfolge beibehält, wenn der Wert noch nicht im Array vorhanden "
+"ist) mit Hilfe der binären Suche. Optional kann ein [param before]-"
+"Spezifizierer übergeben werden. Wenn [code]false[/code], kommt der "
+"zurückgegebene Index nach allen vorhandenen Einträgen des Wertes im Array.\n"
+"[b]Hinweis:[/b] Der Aufruf der [Methode bsearch] auf einem unsortierten Array "
+"führt zu unerwartetem Verhalten.\n"
+"[b]Hinweis:[/b] Vektoren mit [Konstante @GDScript.NAN]-Elementen verhalten "
+"sich nicht gleich wie andere Vektoren. Daher sind die Ergebnisse dieser "
+"Methode möglicherweise nicht genau, wenn NaNs enthalten sind."
+
+msgid ""
+"Searches the array for a value and returns its index or [code]-1[/code] if "
+"not found. Optionally, the initial search index can be passed.\n"
+"[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the "
+"same as other vectors. Therefore, the results from this method may not be "
+"accurate if NaNs are included."
+msgstr ""
+"Durchsucht das Array nach einem Wert und gibt dessen Index oder [code]-1[/"
+"code] zurück, wenn er nicht gefunden wurde. Optional kann auch der "
+"anfängliche Suchindex übergeben werden.\n"
+"[b]Hinweis:[/b] Vektoren mit [Konstante @GDScript.NAN]-Elementen verhalten "
+"sich nicht gleich wie andere Vektoren. Daher sind die Ergebnisse dieser "
+"Methode möglicherweise nicht genau, wenn NaNs enthalten sind."
+
+msgid "Inserts a [Vector2] at the end."
+msgstr "Fügt ein [Vector2] am Ende hinzu."
+
+msgid ""
+"Searches the array in reverse order. Optionally, a start search index can be "
+"passed. If negative, the start index is considered relative to the end of the "
+"array.\n"
+"[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the "
+"same as other vectors. Therefore, the results from this method may not be "
+"accurate if NaNs are included."
+msgstr ""
+"Durchsucht das Array in umgekehrter Reihenfolge. Optional kann ein Start-"
+"Suchindex übergeben werden. Ist dieser negativ, wird der Startindex relativ "
+"zum Ende des Arrays betrachtet.\n"
+"[b]Hinweis:[/b] Vektoren mit [Konstante @GDScript.NAN]-Elementen verhalten "
+"sich nicht gleich wie andere Vektoren. Daher sind die Ergebnisse dieser "
+"Methode möglicherweise nicht genau, wenn NaNs enthalten sind."
+
+msgid "Changes the [Vector2] at the given index."
+msgstr "Ändert den [Vector2] am übergeben Index."
+
+msgid "Inserts a [Vector3] at the end."
+msgstr "Fügt ein [Vector3] am Ende hinzu."
+
+msgid "Changes the [Vector3] at the given index."
+msgstr "Ändert den [Vector3] am übergeben Index."
+
+msgid ""
+"Gets a Variant. If [param allow_objects] is [code]true[/code], decoding "
+"objects is allowed.\n"
+"Internally, this uses the same decoding mechanism as the [method @GlobalScope."
+"bytes_to_var] method.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats such as remote code execution."
+msgstr ""
+"Ruft eine Variante ab. Wenn [param allow_objects] [code]true[/code] ist, ist "
+"die Dekodierung von Objekten erlaubt.\n"
+"Intern wird dabei derselbe Dekodierungsmechanismus wie bei der Methode "
+"[method @GlobalScope.bytes_to_var] verwendet.\n"
+"[b]Warnung:[/b] Deserialisierte Objekte können Code enthalten, der ausgeführt "
+"wird. Verwenden Sie diese Option nicht, wenn das serialisierte Objekt aus "
+"nicht vertrauenswürdigen Quellen stammt, um potenzielle "
+"Sicherheitsbedrohungen wie Remotecodeausführung zu vermeiden."
+
+msgid ""
+"Sends a [Variant] as a packet. If [param full_objects] is [code]true[/code], "
+"encoding objects is allowed (and can potentially include code).\n"
+"Internally, this uses the same encoding mechanism as the [method @GlobalScope."
+"var_to_bytes] method."
+msgstr ""
+"Sendet eine [Variante] als Paket. Wenn [param full_objects] [code]true[/code] "
+"ist, ist die Kodierung von Objekten erlaubt (und kann potenziell Code "
+"enthalten).\n"
+"Intern wird dabei derselbe Kodierungsmechanismus wie bei der Methode [method "
+"@GlobalScope.var_to_bytes] verwendet."
+
+msgid ""
+"If [code]true[/code], the [PhysicalBone2D] will keep the transform of the "
+"bone it is bound to when simulating physics."
+msgstr ""
+"Wenn [code]true[/code], behält der [PhysicalBone2D] die Transformation des "
+"Bones bei, an den er gebunden ist, wenn Physik simuliert wird."
+
+msgid "Sets the body's transform."
+msgstr "Legt die Transformation des Körpers fest."
+
+msgid "Sets the joint's transform."
+msgstr "Legt die Transformation des Gelenks fest."
+
+msgid ""
+"Returns the local transform matrix of the shape with the given index in the "
+"area's array of shapes."
+msgstr ""
+"Gibt die lokale Transformationsmatrix der Form mit dem angegebenen Index im "
+"Array der Formen des Bereichs zurück."
+
+msgid "Returns the transform matrix of the area."
+msgstr "Gibt die Transformationsmatrix des Bereichs zurück."
+
+msgid ""
+"Sets the local transform matrix of the area's shape with the given index."
+msgstr ""
+"Setzt die lokale Transformationsmatrix der Form des Bereichs mit dem "
+"angegebenen Index."
+
+msgid "Sets the transform matrix of the area."
+msgstr "Legt die Transformationsmatrix des Bereichs fest."
+
+msgid ""
+"Sets the local transform matrix of the body's shape with the given index."
+msgstr ""
+"Legt die lokale Transformationsmatrix der Form des Körpers mit dem "
+"angegebenen Index fest."
+
+msgid ""
+"Sets the currently focused item as the given [param index].\n"
+"Passing [code]-1[/code] as the index makes so that no item is focused."
+msgstr ""
+"Setzt das aktuell fokussierte Element auf den angegebenen [param index].\n"
+"Die Übergabe von [code]-1[/code] als Index bewirkt, dass kein Element "
+"fokussiert ist."
+
+msgid "Constructs a Projection as a copy of the given [Transform3D]."
+msgstr "Konstruiert eine Projektion als Kopie des angegebenen [Transform3D]."
+
+msgid ""
+"Enables [url=https://github.com/facebook/zstd/releases/tag/v1.3.2]long-"
+"distance matching[/url] in Zstandard."
+msgstr ""
+"Aktiviert [url=https://github.com/facebook/zstd/releases/tag/v1.3.2]long-"
+"distance matching[/url] in Zstandard."
+
+msgid ""
+"Constructs a quaternion that will rotate around the given axis by the "
+"specified angle. The axis must be a normalized vector."
+msgstr ""
+"Konstruiert ein Quaternion, das sich um die angegebene Achse um den "
+"angegebenen Winkel dreht. Die Achse muss ein normalisierter Vektor sein."
+
+msgid "Constructs a quaternion from the given [Basis]."
+msgstr "Konstruiert ein Quaternion aus der gegebenen [Basis]."
+
+msgid ""
+"Performs a spherical cubic interpolation between quaternions [param pre_a], "
+"this vector, [param b], and [param post_b], by the given amount [param "
+"weight]."
+msgstr ""
+"Führt eine sphärische kubische Interpolation zwischen Quaternionen [param "
+"pre_a], diesem Vektor, [param b] und [param post_b] um den angegebenen Betrag "
+"[param weight] durch."
+
+msgid ""
+"Returns [code]true[/code] if the quaternions 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 ""
+"Gibt [code]true[/code] zurück, wenn die Quaternionen nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid ""
+"Returns [code]true[/code] if the quaternions are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Quaternionen genau gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid "The attachment's data format."
+msgstr "Das Datenformat des Anhangs."
+
+msgid ""
+"Returns a copy of this rectangle expanded to align the edges with the given "
+"[param to] point, if necessary.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var rect = Rect2(0, 0, 5, 2)\n"
+"\n"
+"rect = rect.expand(Vector2(10, 0)) # rect is Rect2(0, 0, 10, 2)\n"
+"rect = rect.expand(Vector2(-5, 5)) # rect is Rect2(-5, 0, 10, 5)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var rect = new Rect2(0, 0, 5, 2);\n"
+"\n"
+"rect = rect.Expand(new Vector2(10, 0)); // rect is Rect2(0, 0, 10, 2)\n"
+"rect = rect.Expand(new Vector2(-5, 5)); // rect is Rect2(-5, 0, 10, 5)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine Kopie dieses Rechtecks zurück, die so erweitert ist, dass die "
+"Kanten am angegebenen [param to]-Punkt ausgerichtet sind, falls "
+"erforderlich.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var rect = Rect2(0, 0, 5, 2)\n"
+"\n"
+"rect = rect.expand(Vector2(10, 0)) # rect ist Rect2(0, 0, 10, 2)\n"
+"rect = rect.expand(Vector2(-5, 5)) # rect ist Rect2(-5, 0, 10, 5)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var rect = new Rect2(0, 0, 5, 2);\n"
+"\n"
+"rect = rect.Expand(new Vector2(10, 0)); // rect ist Rect2(0, 0, 10, 2)\n"
+"rect = rect.Expand(new Vector2(-5, 5)); // rect ist Rect2(-5, 0, 10, 5)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns [code]true[/code] if the [member position] or [member size] of both "
+"rectangles 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 ""
+"Gibt [code]true[/code] zurück, wenn die [member position] oder [member size] "
+"der beiden Rechtecke nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid ""
+"Returns [code]true[/code] if both [member position] and [member size] of the "
+"rectangles are exactly equal, respectively.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn sowohl [member position] als auch [member "
+"size] der Rechtecke genau gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid ""
+"Returns a copy of this rectangle expanded to align the edges with the given "
+"[param to] point, if necessary.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var rect = Rect2i(0, 0, 5, 2)\n"
+"\n"
+"rect = rect.expand(Vector2i(10, 0)) # rect is Rect2i(0, 0, 10, 2)\n"
+"rect = rect.expand(Vector2i(-5, 5)) # rect is Rect2i(-5, 0, 10, 5)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var rect = new Rect2I(0, 0, 5, 2);\n"
+"\n"
+"rect = rect.Expand(new Vector2I(10, 0)); // rect is Rect2I(0, 0, 10, 2)\n"
+"rect = rect.Expand(new Vector2I(-5, 5)); // rect is Rect2I(-5, 0, 10, 5)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Gibt eine Kopie dieses Rechtecks zurück, die so erweitert ist, dass die "
+"Kanten am angegebenen [param to]-Punkt ausgerichtet sind, falls "
+"erforderlich.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var rect = Rect2i(0, 0, 5, 2)\n"
+"\n"
+"rect = rect.expand(Vector2i(10, 0)) # rect ist Rect2i(0, 0, 10, 2)\n"
+"rect = rect.expand(Vector2i(-5, 5)) # rect ist Rect2i(-5, 0, 10, 5)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var rect = new Rect2I(0, 0, 5, 2);\n"
+"\n"
+"rect = rect.Expand(new Vector2I(10, 0)); // rect ist Rect2I(0, 0, 10, 2)\n"
+"rect = rect.Expand(new Vector2I(-5, 5)); // rect ist Rect2I(-5, 0, 10, 5)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the center point of the rectangle. This is the same as [code]position "
+"+ (size / 2)[/code].\n"
+"[b]Note:[/b] If the [member size] is odd, the result will be rounded towards "
+"[member position]."
+msgstr ""
+"Gibt den Mittelpunkt des Rechtecks zurück. Dies ist dasselbe wie "
+"[code]position + (size / 2)[/code].\n"
+"[b]Hinweis:[/b] Wenn die [Größe des Elements] ungerade ist, wird das Ergebnis "
+"auf [Position des Elements] gerundet."
+
+msgid "Using compute shaders"
+msgstr "Verwendung von Compute-Shadern"
+
+msgid "Returns the [Transform3D] of the specified instance."
+msgstr "Gibt das [Transform3D] der angegebenen Instanz zurück."
+
+msgid "Returns the [Transform3D] set for a specific bone of this skeleton."
+msgstr ""
+"Gibt das [Transform3D] zurück, das für einen bestimmten Knochen dieses "
+"Skeletts gesetzt ist."
+
+msgid "Returns the [Transform2D] set for a specific bone of this skeleton."
+msgstr ""
+"Gibt das [Transform2D] zurück, das für einen bestimmten Knochen dieses "
+"Skeletts gesetzt ist."
+
+msgid "2D particles."
+msgstr "2D-Partikel."
+
+msgid "3D Particle trails"
+msgstr "3D-Partikelspuren"
+
+msgid ""
+"If [code]true[/code], the RigidBody2D will emit signals when it collides with "
+"another body.\n"
+"[b]Note:[/b] By default the maximum contacts reported is set to 0, meaning "
+"nothing will be recorded, see [member max_contacts_reported]."
+msgstr ""
+"Wenn [code]true[/code], wird der RigidBody2D Signale aussenden, wenn er mit "
+"einem anderen Körper kollidiert.\n"
+"[b]Hinweis:[/b] Standardmäßig ist die maximale Anzahl der gemeldeten Kontakte "
+"auf 0 gesetzt, was bedeutet, dass nichts aufgezeichnet wird, siehe [member "
+"max_contacts_reported]."
+
+msgid ""
+"If [code]true[/code], the RigidBody3D will emit signals when it collides with "
+"another body.\n"
+"[b]Note:[/b] By default the maximum contacts reported is set to 0, meaning "
+"nothing will be recorded, see [member max_contacts_reported]."
+msgstr ""
+"Wenn [code]true[/code], wird der RigidBody3D Signale aussenden, wenn er mit "
+"einem anderen Körper kollidiert.\n"
+"[b]Hinweis:[/b] Standardmäßig ist die maximale Anzahl der gemeldeten Kontakte "
+"auf 0 gesetzt, was bedeutet, dass nichts aufgezeichnet wird, siehe [member "
+"max_contacts_reported]."
+
+msgid ""
+"Returns whether the property identified by the given [param path] is "
+"configured to be synchronized on process.\n"
+"[i]Deprecated.[/i] Use [method property_get_replication_mode] instead."
+msgstr ""
+"Gibt zurück, ob die durch den angegebenen [param path] identifizierte "
+"Eigenschaft so konfiguriert ist, dass sie bei einem Prozess synchronisiert "
+"wird.\n"
+"[i]Veraltet[/i] Verwenden Sie stattdessen die [Methode "
+"property_get_replication_mode]."
+
+msgid ""
+"Returns whether the property identified by the given [param path] is "
+"configured to be reliably synchronized when changes are detected on process.\n"
+"[i]Deprecated.[/i] Use [method property_get_replication_mode] instead."
+msgstr ""
+"Gibt zurück, ob die durch den angegebenen [param path] identifizierte "
+"Eigenschaft so konfiguriert ist, dass sie zuverlässig synchronisiert wird, "
+"wenn Änderungen am Prozess erkannt werden.\n"
+"[i]Veraltet[/i] Verwenden Sie stattdessen die [Methode "
+"property_get_replication_mode]."
+
+msgid ""
+"Sets whether the property identified by the given [param path] is configured "
+"to be synchronized on process.\n"
+"[i]Deprecated.[/i] Use [method property_set_replication_mode] with [constant "
+"REPLICATION_MODE_ALWAYS] instead."
+msgstr ""
+"Legt fest, ob die durch den angegebenen [param path] identifizierte "
+"Eigenschaft so konfiguriert ist, dass sie bei einem Prozess synchronisiert "
+"wird.\n"
+"[i]Veraltet[/i] Verwenden Sie stattdessen [Methode "
+"property_set_replication_mode] mit der [Konstante REPLICATION_MODE_ALWAYS]."
+
+msgid ""
+"Sets whether the property identified by the given [param path] is configured "
+"to be reliably synchronized when changes are detected on process.\n"
+"[i]Deprecated.[/i] Use [method property_set_replication_mode] with [constant "
+"REPLICATION_MODE_ON_CHANGE] instead."
+msgstr ""
+"Legt fest, ob die Eigenschaft, die durch den angegebenen [param path] "
+"identifiziert wird, so konfiguriert ist, dass sie zuverlässig synchronisiert "
+"wird, wenn Änderungen im Prozess erkannt werden.\n"
+"[i]Veraltet[/i] Verwenden Sie stattdessen die [Methode "
+"property_set_replication_mode] mit der [Konstante REPLICATION_MODE_ON_CHANGE]."
+
+msgid "SceneTree"
+msgstr "SceneTree"
+
+msgid "One-shot timer."
+msgstr "Einmaliger Timer."
+
+msgid ""
+"The physics layers this SoftBody3D [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 ""
+"Die physikalischen Ebenen, in denen sich dieses SoftBody3D [b]befindet[/b]. "
+"Kollisionsobjekte können in einem oder mehreren von 32 verschiedenen Layern "
+"existieren. Siehe auch [member collision_mask].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Schichten befindet, die Objekt A abtastet. "
+"Siehe [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-"
+"layers-and-masks]Collision layers and masks[/url] in der Dokumentation für "
+"weitere Informationen."
+
+msgid ""
+"The physics layers this SoftBody3D [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 ""
+"Die physikalischen Ebenen, die SoftBody3D [b]scannt[/b]. Kollisionsobjekte "
+"können eine oder mehrere von 32 verschiedenen Ebenen scannen. Siehe auch "
+"[member collision_layer].\n"
+"[b]Hinweis:[/b] Objekt A kann einen Kontakt mit Objekt B nur dann erkennen, "
+"wenn sich Objekt B in einer der Schichten befindet, die Objekt A abtastet. "
+"Siehe [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-"
+"layers-and-masks]Collision layers and masks[/url] in der Dokumentation für "
+"weitere Informationen."
+
+msgid "Returns the spring arm's current length."
+msgstr "Gibt die aktuelle Länge des Federarms zurück."
+
+msgid ""
+"A static 2D physics body. It can't be moved by external forces or contacts, "
+"but can be moved manually by other means such as code, [AnimationMixer]s "
+"(with [member AnimationMixer.callback_mode_process] set to [constant "
+"AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform2D].\n"
+"When [StaticBody2D] is moved, it is teleported to its new position without "
+"affecting other physics bodies in its path. If this is not desired, use "
+"[AnimatableBody2D] instead.\n"
+"[StaticBody2D] is useful for completely static objects like floors and walls, "
+"as well as moving surfaces like conveyor belts and circular revolving "
+"platforms (by using [member constant_linear_velocity] and [member "
+"constant_angular_velocity])."
+msgstr ""
+"Ein statischer 2D-Physik-Körper. Er kann nicht durch externe Kräfte oder "
+"Kontakte bewegt werden, kann aber manuell durch andere Mittel wie Code, "
+"[AnimationMixer] (mit [member AnimationMixer.callback_mode_process] auf "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS] gesetzt) "
+"und [RemoteTransform2D] bewegt werden.\n"
+"Wenn [StaticBody2D] verschoben wird, wird er an seine neue Position "
+"teleportiert, ohne andere physikalische Körper in seinem Pfad zu "
+"beeinflussen. Wenn dies nicht erwünscht ist, verwenden Sie stattdessen "
+"[AnimatableBody2D].\n"
+"[StaticBody2D] ist nützlich für völlig statische Objekte wie Böden und Wände "
+"sowie für sich bewegende Oberflächen wie Förderbänder und kreisförmig "
+"drehende Plattformen (durch Verwendung von [member constant_linear_velocity] "
+"und [member constant_angular_velocity])."
+
+msgid ""
+"A static 3D physics body. It can't be moved by external forces or contacts, "
+"but can be moved manually by other means such as code, [AnimationMixer]s "
+"(with [member AnimationMixer.callback_mode_process] set to [constant "
+"AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform3D].\n"
+"When [StaticBody3D] is moved, it is teleported to its new position without "
+"affecting other physics bodies in its path. If this is not desired, use "
+"[AnimatableBody3D] instead.\n"
+"[StaticBody3D] is useful for completely static objects like floors and walls, "
+"as well as moving surfaces like conveyor belts and circular revolving "
+"platforms (by using [member constant_linear_velocity] and [member "
+"constant_angular_velocity])."
+msgstr ""
+"Ein statischer 3D-Physik-Körper. Er kann nicht durch externe Kräfte oder "
+"Kontakte bewegt werden, kann aber manuell durch andere Mittel wie Code, "
+"[AnimationMixer] (mit [member AnimationMixer.callback_mode_process] auf "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS] gesetzt) "
+"und [RemoteTransform3D] bewegt werden.\n"
+"Wenn [StaticBody3D] verschoben wird, wird er an seine neue Position "
+"teleportiert, ohne andere physikalische Körper in seinem Pfad zu "
+"beeinflussen. Wenn dies nicht erwünscht ist, verwenden Sie stattdessen "
+"[AnimatableBody3D].\n"
+"[StaticBody3D] ist nützlich für völlig statische Objekte wie Böden und Wände "
+"sowie für sich bewegende Oberflächen wie Förderbänder und kreisförmig "
+"drehende Plattformen (durch Verwendung von [member constant_linear_velocity] "
+"und [member constant_angular_velocity])."
+
+msgid ""
+"Gets a Variant from the stream. If [param allow_objects] is [code]true[/"
+"code], decoding objects is allowed.\n"
+"Internally, this uses the same decoding mechanism as the [method @GlobalScope."
+"bytes_to_var] method.\n"
+"[b]Warning:[/b] Deserialized objects can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats such as remote code execution."
+msgstr ""
+"Ruft eine Variante aus dem Stream ab. Wenn [param allow_objects] [code]true[/"
+"code] ist, ist die Dekodierung von Objekten erlaubt.\n"
+"Intern wird dabei derselbe Dekodierungsmechanismus wie bei der Methode "
+"[method @GlobalScope.bytes_to_var] verwendet.\n"
+"[b]Warnung:[/b] Deserialisierte Objekte können Code enthalten, der ausgeführt "
+"wird. Verwenden Sie diese Option nicht, wenn das serialisierte Objekt aus "
+"nicht vertrauenswürdigen Quellen stammt, um potenzielle "
+"Sicherheitsbedrohungen wie Remotecodeausführung zu vermeiden."
+
+msgid ""
+"Puts a Variant into the stream. If [param full_objects] is [code]true[/code] "
+"encoding objects is allowed (and can potentially include code).\n"
+"Internally, this uses the same encoding mechanism as the [method @GlobalScope."
+"var_to_bytes] method."
+msgstr ""
+"Fügt eine Variante in den Stream ein. Wenn [param full_objects] [code]true[/"
+"code] ist, ist die Kodierung von Objekten erlaubt (und kann potenziell Code "
+"enthalten).\n"
+"Intern wird dabei derselbe Kodierungsmechanismus wie bei der Methode [method "
+"@GlobalScope.var_to_bytes] verwendet."
+
+msgid ""
+"If [code]true[/code], the sub-viewport will be automatically resized to the "
+"control's size.\n"
+"[b]Note:[/b] If [code]true[/code], this will prohibit changing [member "
+"SubViewport.size] of its children manually."
+msgstr ""
+"Wenn [code]true[/code], wird die Größe des Unteransichtsfensters automatisch "
+"an die Größe des Steuerelements angepasst.\n"
+"[b]Hinweis:[/b] Wenn [code]true[/code], wird die manuelle Änderung von "
+"[member SubViewport.size] seiner Kinder verhindert."
+
+msgid ""
+"The style of the currently hovered tab.\n"
+"[b]Note:[/b] This style will be drawn with the same width as [theme_item "
+"tab_unselected] at minimum."
+msgstr ""
+"Der Stil des aktuell schwebenden Tabs.\n"
+"[b]Hinweis:[/b] Dieser Style wird mindestens mit der gleichen Breite wie "
+"[theme_item tab_unselected] gezeichnet."
+
+msgid "Stops listening."
+msgstr "Zuhören stoppen."
+
+msgid "Returns [code]true[/code] if a \"redo\" action is available."
+msgstr "Gibt [code]true[/code] zurück, wenn eine \"redo\" Aktion möglich ist."
+
+msgid "Returns [code]true[/code] if an \"undo\" action is available."
+msgstr "Gibt [code]true[/code] zurück, wenn eine \"undo\" Aktion möglich ist."
+
+msgid "Emitted when a new interface has been added."
+msgstr "Wird ausgesendet, wenn eine neue Schnittstelle hinzugefügt wurde."
+
+msgid "Emitted when an interface is removed."
+msgstr "Wird ausgesendet, wenn eine Schnittstelle entfernt wird."
+
+msgid ""
+"Returns [code]true[/code] if the [Color] property defined by [param name] and "
+"[param theme_type] exists.\n"
+"Returns [code]false[/code] if it doesn't exist. Use [method set_color] to "
+"define it."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param name] und [param "
+"theme_type] definierte Eigenschaft [Color] existiert.\n"
+"Gibt [code]false[/code] zurück, wenn sie nicht vorhanden ist. Verwenden Sie "
+"[method set_color], um sie zu definieren."
+
+msgid ""
+"Returns [code]true[/code] if the constant property defined by [param name] "
+"and [param theme_type] exists.\n"
+"Returns [code]false[/code] if it doesn't exist. Use [method set_constant] to "
+"define it."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param name] und [param "
+"theme_type] definierte konstante Eigenschaft existiert.\n"
+"Gibt [code]false[/code] zurück, wenn sie nicht vorhanden ist. Verwenden Sie "
+"[method set_constant], um sie zu definieren."
+
+msgid ""
+"Returns [code]true[/code] if [member default_font] has a valid value.\n"
+"Returns [code]false[/code] if it doesn't."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn [member default_font] einen gültigen Wert "
+"hat.\n"
+"Gibt [code]false[/code] zurück, wenn er nicht gültig ist."
+
+msgid ""
+"Returns [code]true[/code] if the icon property defined by [param name] and "
+"[param theme_type] exists.\n"
+"Returns [code]false[/code] if it doesn't exist. Use [method set_icon] to "
+"define it."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param name] und [param "
+"theme_type] definierte Symboleigenschaft existiert.\n"
+"Gibt [code]false[/code] zurück, wenn sie nicht vorhanden ist. Verwenden Sie "
+"[method set_icon], um es zu definieren."
+
+msgid ""
+"Returns [code]true[/code] if the [StyleBox] property defined by [param name] "
+"and [param theme_type] exists.\n"
+"Returns [code]false[/code] if it doesn't exist. Use [method set_stylebox] to "
+"define it."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die durch [param name] und [param "
+"theme_type] definierte Eigenschaft [StyleBox] existiert.\n"
+"Gibt [code]false[/code] zurück, wenn sie nicht vorhanden ist. Verwenden Sie "
+"[method set_stylebox], um sie zu definieren."
+
+msgid "Always visible."
+msgstr "Immer sichtbar."
+
+msgid "Constructs the transform from a given angle (in radians) and position."
+msgstr ""
+"Konstruiert die Transformation aus einem gegebenen Winkel (in Radiant) und "
+"einer Position."
+
+msgid ""
+"Constructs the transform from a given angle (in radians), scale, skew (in "
+"radians) and position."
+msgstr ""
+"Konstruiert die Transformation aus einem gegebenen Winkel (im Bogenmaß), "
+"Maßstab, Neigung (im Bogenmaß) und Position."
+
+msgid ""
+"Returns [code]true[/code] if the transforms 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 ""
+"Gibt [code]true[/code] zurück, wenn die Transformationen nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen [method is_equal_approx] verwenden, das zuverlässiger ist."
+
+msgid "The custom minimum height."
+msgstr "Die benutzerdefinierte kleinstmögliche Höhe."
+
+msgid "If [code]true[/code], folding is disabled for this TreeItem."
+msgstr ""
+"Wenn [code]true[/code], ist das einklappen für dieses TreeItem deaktiviert."
+
+msgid "Cell contains a string."
+msgstr "Zelle enthält eine Zeichenkette."
+
+msgid "Cell contains an icon."
+msgstr "Zelle enthält ein Symbol."
+
+msgid "Internal mesh type."
+msgstr "Interner Mesh Typ."
+
+msgid "Mesh type used internally for collision calculations."
+msgstr "Mesh Typ welcher intern für Kollisionsberechnungen benutzt wird."
+
+msgid ""
+"Returns [code]true[/code] if a packet with a new address/port combination was "
+"received on the socket."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn ein Paket mit einer neuen Kombination aus "
+"Adresse und Port auf dem Socket empfangen wurde."
+
+msgid "Redo the last action."
+msgstr "Die letzte Aktion wiederholen."
+
+msgid "Undo the last action."
+msgstr "Die letzte Aktion rückgängig machen."
+
+msgid "Called when [method undo] or [method redo] was called."
+msgstr ""
+"Wird aufgerufen, wenn [method undo] oder [method redo] aufgerufen wurde."
+
+msgid "Clears the list of discovered devices."
+msgstr "Leert die Liste der entdeckten Geräte."
+
+msgid "Invalid gateway."
+msgstr "ungültiges Gateway."
+
+msgid "Invalid port."
+msgstr "ungültiger Port."
+
+msgid "Invalid protocol."
+msgstr "ungültiges Protokoll."
+
+msgid "Invalid duration."
+msgstr "ungültige Zeitdauer."
+
+msgid "Invalid arguments."
+msgstr "ungültiges Argument."
+
+msgid "Invalid response."
+msgstr "ungültige Antwort."
+
+msgid "Invalid parameter."
+msgstr "ungültiger Parameter."
+
+msgid "HTTP error."
+msgstr "HTTP Fehler."
+
+msgid "Socket error."
+msgstr "Socket Fehler."
+
+msgid "Unknown error."
+msgstr "unbekannter Fehler."
+
+msgid "Service type."
+msgstr "Service Typ."
+
+msgid "OK."
+msgstr "OK."
+
+msgid "Disconnected."
+msgstr "getrennt."
+
+msgid "Unknown device."
+msgstr "unbekanntes Gerät."
+
+msgid "Variant class introduction"
+msgstr "Einführung der Variantklasse"
+
+msgid ""
+"A 2-element structure that can be used to represent 2D coordinates or any "
+"other pair of numeric values.\n"
+"It uses floating-point coordinates. By default, these floating-point values "
+"use 32-bit precision, unlike [float] which is always 64-bit. If double "
+"precision is needed, compile the engine with the option "
+"[code]precision=double[/code].\n"
+"See [Vector2i] for its integer counterpart.\n"
+"[b]Note:[/b] In a boolean context, a Vector2 will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector2(0, 0)[/code]. Otherwise, a Vector2 will "
+"always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 2-Element-Struktur, die zur Darstellung von 2D-Koordinaten oder jedem "
+"anderen Paar numerischer Werte verwendet werden kann.\n"
+"Sie verwendet Fließkomma-Koordinaten. Standardmäßig verwenden diese "
+"Fließkommawerte 32-Bit-Präzision, im Gegensatz zu [float], das immer 64-Bit "
+"hat. Wenn doppelte Genauigkeit erforderlich ist, kompilieren Sie die Engine "
+"mit der Option [code]precision=double[/code].\n"
+"Siehe [Vector2i] für sein ganzzahliges Gegenstück.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector2 zu [code]false[/"
+"code] ausgewertet, wenn er gleich [code]Vector2(0, 0)[/code] ist. Andernfalls "
+"wird ein Vector2 immer als [code]true[/code] ausgewertet."
+
+msgid ""
+"Returns a new vector with all components in absolute values (i.e. positive)."
+msgstr ""
+"Erzeugt einen neuen Vektor mit allen Komponenten als Beträge (also positiv)."
+
+msgid ""
+"Returns the aspect ratio of this vector, the ratio of [member x] to [member "
+"y]."
+msgstr "Gibt das Verhältnis von [member x] zu [member y] zurück."
+
+msgid ""
+"Returns a new vector with all components rounded up (towards positive "
+"infinity)."
+msgstr ""
+"Gibt einen neuen Vektor zurück, bei dem alle Komponenten aufgerundet sind "
+"(gegen positive Unendlichkeit)."
+
+msgid ""
+"Returns a new vector with all components rounded down (towards negative "
+"infinity)."
+msgstr ""
+"Gibt einen neuen Vektor zurück, bei dem alle Komponenten abgerundet sind "
+"(gegen negativ unendlich)."
+
+msgid "Returns the length (magnitude) of this vector."
+msgstr "Gibt die Länge (Betrag) dieses Vektors zurück."
+
+msgid ""
+"Returns the squared length (squared magnitude) of this vector.\n"
+"This method runs faster than [method length], so prefer it if you need to "
+"compare vectors or need the squared distance for some formula."
+msgstr ""
+"Gibt die quadrierte Länge des Vektors zurück. \n"
+"Diese Funktion ist schneller als [method length] also bevorzuge sie, wenn du "
+"Vektoren vergleichst oder die quadrierte Distanz für eine Formel brauchst."
+
+msgid ""
+"Returns the result of scaling the vector to unit length. Equivalent to "
+"[code]v / v.length()[/code]. See also [method is_normalized].\n"
+"[b]Note:[/b] This function may return incorrect values if the input vector "
+"length is near zero."
+msgstr ""
+"Gibt das Ergebnis der Skalierung des Vektors auf Einheitslänge zurück. "
+"Äquivalent zu [code]v / v.length()[/code]. Siehe auch [method "
+"is_normalized].\n"
+"[b]Hinweis:[/b] Diese Funktion kann falsche Werte zurückgeben, wenn die Länge "
+"des Eingabevektors nahe Null ist."
+
+msgid ""
+"The vector's X component. Also accessible by using the index position [code]"
+"[0][/code]."
+msgstr ""
+"Die x-Komponente des Vektors. Ebenfalls verfügbar unter der Indexposition "
+"[code][0][/code]."
+
+msgid ""
+"The vector's Y component. Also accessible by using the index position [code]"
+"[1][/code]."
+msgstr ""
+"Die y-Komponente des Vektors. Ebenfalls verfügbar unter der Indexposition "
+"[code][1][/code]."
+
+msgid "Zero vector, a vector with all components set to [code]0[/code]."
+msgstr ""
+"Nullvektor, ein Vektor, bei dem alle Komponenten auf [code]0[/code] "
+"festgelegt sind."
+
+msgid "One vector, a vector with all components set to [code]1[/code]."
+msgstr ""
+"Einser Vektor, ein Vektor bei dem alle Komponenten auf [code]1[/code] gesetzt "
+"sind."
+
+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.\n"
+"[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the "
+"same as other vectors. Therefore, the results from this operator may not be "
+"accurate if NaNs are included."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Vektoren nicht gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen die [method is_equal_approx] verwenden, die zuverlässiger ist.\n"
+"[b]Hinweis:[/b] Vektoren mit [konstanten @GDScript.NAN]-Elementen verhalten "
+"sich nicht wie andere Vektoren. Daher sind die Ergebnisse dieses Operators "
+"möglicherweise nicht genau, wenn NaNs enthalten sind."
+
+msgid ""
+"Returns [code]true[/code] if the vectors are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable.\n"
+"[b]Note:[/b] Vectors with [constant @GDScript.NAN] elements don't behave the "
+"same as other vectors. Therefore, the results from this operator may not be "
+"accurate if NaNs are included."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Vektoren genau gleich sind.\n"
+"[b]Hinweis:[/b] Aufgrund von Fließkomma-Präzisionsfehlern sollten Sie "
+"stattdessen die [method is_equal_approx] verwenden, die zuverlässiger ist.\n"
+"[b]Hinweis:[/b] Vektoren mit [konstanten @GDScript.NAN]-Elementen verhalten "
+"sich nicht wie andere Vektoren. Daher sind die Ergebnisse dieses Operators "
+"möglicherweise nicht genau, wenn NaNs enthalten sind."
+
+msgid ""
+"A 2-element structure that can be used to represent 2D grid coordinates or "
+"any other pair of integers.\n"
+"It uses integer coordinates and is therefore preferable to [Vector2] when "
+"exact precision is required. Note that the values are limited to 32 bits, and "
+"unlike [Vector2] this cannot be configured with an engine build option. Use "
+"[int] or [PackedInt64Array] if 64-bit values are needed.\n"
+"[b]Note:[/b] In a boolean context, a Vector2i will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector2i(0, 0)[/code]. Otherwise, a Vector2i "
+"will always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 2-Element-Struktur, die zur Darstellung von 2D-Gitterkoordinaten oder "
+"jedem anderen Paar von Ganzzahlen verwendet werden kann.\n"
+"Sie verwendet Integer-Koordinaten und ist daher [Vector2] vorzuziehen, wenn "
+"exakte Präzision erforderlich ist. Beachten Sie, dass die Werte auf 32 Bit "
+"begrenzt sind und im Gegensatz zu [Vector2] nicht mit einer Engine-Build-"
+"Option konfiguriert werden können. Verwenden Sie [int] oder "
+"[PackedInt64Array], wenn 64-Bit-Werte benötigt werden.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector2i zu [code]false[/"
+"code] ausgewertet, wenn er gleich [code]Vector2i(0, 0)[/code] ist. "
+"Andernfalls wird ein Vector2i immer als [code]true[/code] ausgewertet."
+
+msgid ""
+"A 3-element structure that can be used to represent 3D coordinates or any "
+"other triplet of numeric values.\n"
+"It uses floating-point coordinates. By default, these floating-point values "
+"use 32-bit precision, unlike [float] which is always 64-bit. If double "
+"precision is needed, compile the engine with the option "
+"[code]precision=double[/code].\n"
+"See [Vector3i] for its integer counterpart.\n"
+"[b]Note:[/b] In a boolean context, a Vector3 will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector3(0, 0, 0)[/code]. Otherwise, a Vector3 "
+"will always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 3-Elemente-Struktur, die zur Darstellung von 3D-Koordinaten oder "
+"beliebigen anderen numerischen Werten verwendet werden kann.\n"
+"Sie verwendet Fließkomma-Koordinaten. Standardmäßig verwenden diese "
+"Fließkommawerte eine 32-Bit-Präzision, im Gegensatz zu [float], das immer 64-"
+"Bit ist. Wenn doppelte Genauigkeit erforderlich ist, kompilieren Sie die "
+"Engine mit der Option [code]precision=double[/code].\n"
+"Siehe [Vector3i] für sein ganzzahliges Gegenstück.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector3 zu [code]false[/"
+"code] ausgewertet, wenn er gleich [code]Vector3(0, 0, 0)[/code] ist. "
+"Andernfalls wird ein Vector3 immer als [code]true[/code] ausgewertet."
+
+msgid ""
+"Returns the vector \"bounced off\" from a plane defined by the given normal."
+msgstr "Gibt den Vektor reflektiert an der Ebene des Normalenvektors zurück."
+
+msgid "Up unit vector."
+msgstr "Hoch-Einheitsvektor."
+
+msgid "Down unit vector."
+msgstr "Runter-Einheitsvektor."
+
+msgid ""
+"A 3-element structure that can be used to represent 3D grid coordinates or "
+"any other triplet of integers.\n"
+"It uses integer coordinates and is therefore preferable to [Vector3] when "
+"exact precision is required. Note that the values are limited to 32 bits, and "
+"unlike [Vector3] this cannot be configured with an engine build option. Use "
+"[int] or [PackedInt64Array] if 64-bit values are needed.\n"
+"[b]Note:[/b] In a boolean context, a Vector3i will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector3i(0, 0, 0)[/code]. Otherwise, a Vector3i "
+"will always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 3-Element-Struktur, die zur Darstellung von 3D-Gitterkoordinaten oder "
+"beliebigen anderen Tripletts von Ganzzahlen verwendet werden kann.\n"
+"Sie verwendet Integer-Koordinaten und ist daher [Vector3] vorzuziehen, wenn "
+"exakte Präzision erforderlich ist. Beachten Sie, dass die Werte auf 32 Bit "
+"begrenzt sind und im Gegensatz zu [Vector3] kann diese Struktur nicht mit "
+"einer Engine-Build-Option konfiguriert werden. Verwenden Sie [int] oder "
+"[PackedInt64Array], wenn 64-Bit-Werte benötigt werden.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector3i zu [code]false[/"
+"code] ausgewertet, wenn er gleich [code]Vector3i(0, 0, 0)[/code] ist. "
+"Andernfalls wird ein Vector3i immer als [code]true[/code] ausgewertet."
+
+msgid ""
+"A 4-element structure that can be used to represent 4D coordinates or any "
+"other quadruplet of numeric values.\n"
+"It uses floating-point coordinates. By default, these floating-point values "
+"use 32-bit precision, unlike [float] which is always 64-bit. If double "
+"precision is needed, compile the engine with the option "
+"[code]precision=double[/code].\n"
+"See [Vector4i] for its integer counterpart.\n"
+"[b]Note:[/b] In a boolean context, a Vector4 will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector4(0, 0, 0, 0)[/code]. Otherwise, a Vector4 "
+"will always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 4-Element-Struktur, die zur Darstellung von 4D-Koordinaten oder anderen "
+"Vierergruppen von numerischen Werten verwendet werden kann.\n"
+"Sie verwendet Fließkomma-Koordinaten. Standardmäßig verwenden diese "
+"Fließkommawerte eine 32-Bit-Präzision, im Gegensatz zu [float], das immer 64-"
+"Bit hat. Wenn doppelte Genauigkeit erforderlich ist, kompilieren Sie die "
+"Engine mit der Option [code]precision=double[/code].\n"
+"Siehe [Vector4i] für sein ganzzahliges Gegenstück.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector4 zu [code]false[/"
+"code] ausgewertet, wenn er gleich [code]Vector4(0, 0, 0, 0)[/code] ist. "
+"Andernfalls wird ein Vector4 immer als [code]true[/code] ausgewertet."
+
+msgid ""
+"A 4-element structure that can be used to represent 4D grid coordinates or "
+"any other quadruplet of integers.\n"
+"It uses integer coordinates and is therefore preferable to [Vector4] when "
+"exact precision is required. Note that the values are limited to 32 bits, and "
+"unlike [Vector4] this cannot be configured with an engine build option. Use "
+"[int] or [PackedInt64Array] if 64-bit values are needed.\n"
+"[b]Note:[/b] In a boolean context, a Vector4i will evaluate to [code]false[/"
+"code] if it's equal to [code]Vector4i(0, 0, 0, 0)[/code]. Otherwise, a "
+"Vector3i will always evaluate to [code]true[/code]."
+msgstr ""
+"Eine 4-Element-Struktur, die zur Darstellung von 4D-Gitterkoordinaten oder "
+"jedem anderen Quadrupel von Ganzzahlen verwendet werden kann.\n"
+"Sie verwendet Integer-Koordinaten und ist daher [Vector4] vorzuziehen, wenn "
+"exakte Präzision erforderlich ist. Beachten Sie, dass die Werte auf 32 Bit "
+"begrenzt sind und im Gegensatz zu [Vector4] nicht mit einer Engine-Build-"
+"Option konfiguriert werden können. Verwenden Sie [int] oder "
+"[PackedInt64Array], wenn 64-Bit-Werte benötigt werden.\n"
+"[b]Hinweis:[/b] In einem booleschen Kontext wird ein Vector4i als "
+"[code]false[/code] ausgewertet, wenn er gleich [code]Vector4i(0, 0, 0, 0)[/"
+"code] ist. Andernfalls wird ein Vector3i immer als [code]true[/code] "
+"ausgewertet."
+
+msgid "Playing videos"
+msgstr "Abspielen von Videos"
+
+msgid ""
+"Constrains a value to lie between [code]min[/code] and [code]max[/code] "
+"values."
+msgstr ""
+"Schränkt einen Wert ein, der zwischen den Werten [code]min[/code] und "
+"[code]max[/code] liegen muss."
+
+msgid "Converts HSV vector to RGB equivalent."
+msgstr "Wandelt HSV-Vektor in RGB-Gegenwert um."
+
+msgid "Converts RGB vector to HSV equivalent."
+msgstr "Wandelt RGB-Vektor in HSV-Gegenwert um."
+
+msgid "Sum of absolute derivative in [code]x[/code] and [code]y[/code]."
+msgstr "Summe der absoluten Ableitung in [code]x[/code] und [code]y[/code]."
+
+msgid ""
+"The distance fade effect fades out each pixel based on its distance to "
+"another object."
+msgstr ""
+"Der Distanzausblendeffekt blendet jeden Pixel basierend auf dem Abstand zu "
+"einem anderen Objekt aus."
+
+msgid ""
+"Finds the nearest integer that is greater than or equal to the parameter. "
+"Translates to [code]ceil(x)[/code] in the Godot Shader Language."
+msgstr ""
+"Findet die nächstgelegene Integer Zahl, die größer oder gleich dem Parameter "
+"ist. Wird in der Godot Shader Sprache mit [code]ceil(x)[/code] übersetzt."
+
+msgid ""
+"Returns the inverse of the square root of the parameter. Translates to "
+"[code]inversesqrt(x)[/code] in the Godot Shader Language."
+msgstr ""
+"Gibt die Inverse der Quadratwurzel des Parameters zurück. Wird in der Godot "
+"Shader Sprache mit [code]inversesqrt(x)[/code] übersetzt."
+
+msgid ""
+"Returns the base 2 logarithm of the parameter. Translates to [code]log2(x)[/"
+"code] in the Godot Shader Language."
+msgstr ""
+"Gibt den Logarithmus zur Basis 2 des Parameters zurück. Wird in der Godot "
+"Shader Sprache mit [code]log2(x)[/code] übersetzt."
+
+msgid "Sums two numbers using [code]a + b[/code]."
+msgstr "Addiert zwei Zahlen mit [code]a + b[/code]."
+
+msgid "Multiplies two numbers using [code]a * b[/code]."
+msgstr "Multipliziert zwei Zahlen mit [code]a * b[/code]."
+
+msgid "Divides two numbers using [code]a / b[/code]."
+msgstr "Dividiert zwei Zahlen mit [code]a / b[/code]."
+
+msgid ""
+"Returns the greater of two numbers. Translates to [code]max(a, b)[/code] in "
+"the Godot Shader Language."
+msgstr ""
+"Gibt die größere von zwei Zahlen zurück. Wird in der Godot Shader Sprache mit "
+"[code]max(a, b)[/code] übersetzt."
+
+msgid ""
+"Returns the lesser of two numbers. Translates to [code]min(a, b)[/code] in "
+"the Godot Shader Language."
+msgstr ""
+"Gibt den kleineren Wert von zwei Zahlen zurück. Wird in der Godot Shader "
+"Sprache mit [code]min(a, b)[/code] übersetzt."
+
+msgid ""
+"Returns falloff based on the dot product of surface normal and view direction "
+"of camera (pass associated inputs to it)."
+msgstr ""
+"Gibt den Abfall abgeleitet aus dem Skalarprodukt zwischen Flächennormale und "
+"Kamerablickrichtung zurück (zugeordnete Eingänge müssen übergeben werden)."
+
+msgid ""
+"The proximity fade effect fades out each pixel based on its distance to "
+"another object."
+msgstr ""
+"Der Nahausblendeffekt blendet jeden Pixel basierend auf dem Abstand zu einem "
+"anderen Objekt aus."
+
+msgid "Multiplies transform [code]a[/code] by the transform [code]b[/code]."
+msgstr ""
+"Multipliziert die Transformation [code]a[/code] mit der Transformation "
+"[code]b[/code]."
+
+msgid "Multiplies transform [code]b[/code] by the transform [code]a[/code]."
+msgstr ""
+"Multipliziert die Transformation [code]b[/code] mit der Transformation "
+"[code]a[/code]."
+
+msgid "Multiplies transform [code]a[/code] by the vector [code]b[/code]."
+msgstr ""
+"Multipliziert die Transformation [code]a[/code] mit dem Vektor [code]b[/code]."
+
+msgid "Multiplies vector [code]b[/code] by the transform [code]a[/code]."
+msgstr ""
+"Multipliziert den Vektor [code]b[/code] mit der Transformation [code]a[/code]."
+
+msgid "Clamps the value between [code]0.0[/code] and [code]1.0[/code]."
+msgstr ""
+"Bindet den Wert im Zahlenbereich von [code]0.0[/code] und [code]1.0[/code]."
+
+msgid "Returns the opposite value of the parameter."
+msgstr "Gibt den inversen Wert des Parameters zurück."
+
+msgid "Returns [code]1/vector[/code]."
+msgstr "Gibt [code]1/vector[/code] zurück."
+
+msgid "Returns the absolute value of the parameter."
+msgstr "Gibt den absoluten Betrag des Parameters zurück."
+
+msgid "Returns the arc-cosine of the parameter."
+msgstr "Gibt den Arkuskosinus des Parameters zurück."
+
+msgid "Returns the inverse hyperbolic cosine of the parameter."
+msgstr "Gibt den inversen hyperbolischen Kosinus des Parameters zurück."
+
+msgid "Returns the arc-sine of the parameter."
+msgstr "Gibt den Arkussinus des Parameters zurück."
+
+msgid "Returns the inverse hyperbolic sine of the parameter."
+msgstr "Gibt den inversen hyperbolischen Sinus des Parameters zurück."
+
+msgid "Returns the arc-tangent of the parameter."
+msgstr "Gibt den Arkustangens des Parameters zurück."
+
+msgid "Returns the inverse hyperbolic tangent of the parameter."
+msgstr "Gibt den inversen hyperbolischen Tangens des Parameters zurück."
+
+msgid ""
+"Finds the nearest integer that is greater than or equal to the parameter."
+msgstr "Gibt den nächsten Integer größer/gleich des Parameters zurück."
+
+msgid "Returns the cosine of the parameter."
+msgstr "Gibt den Kosinus des Parameters zurück."
+
+msgid "Returns the hyperbolic cosine of the parameter."
+msgstr "Gibt den hyperbolischen Kosinus des Parameters zurück."
+
+msgid "Converts a quantity in radians to degrees."
+msgstr "Wandelt einen Wert von Bogenmaß zu Grad um."
+
+msgid "Base-e Exponential."
+msgstr "Basis-e exponentiell."
+
+msgid "Base-2 Exponential."
+msgstr "Basis-2 exponentiell."
+
+msgid "Finds the nearest integer less than or equal to the parameter."
+msgstr "Gibt den nächsten Integer kleiner/gleich des Parameters zurück."
+
+msgid "Computes the fractional part of the argument."
+msgstr "Berechnet den Bruchteil des Parameters."
+
+msgid "Returns the inverse of the square root of the parameter."
+msgstr "Gibt die inverse Quadratwurzel des Parameters zurück."
+
+msgid "Natural logarithm."
+msgstr "Natürlicher Logarithmus."
+
+msgid "Base-2 logarithm."
+msgstr "Basis-2 Logarithmus."
+
+msgid "Converts a quantity in degrees to radians."
+msgstr "Wandelt einen Wert von Grad zu Bogenmaß um."
+
+msgid "Finds the nearest integer to the parameter."
+msgstr "Gibt den nächsten Integer des Parameters zurück."
+
+msgid "Finds the nearest even integer to the parameter."
+msgstr "Gibt den nächsten geraden Integer des Parameter zurück."
+
+msgid "Returns the sine of the parameter."
+msgstr "Gibt den Sinus des Parameters zurück."
+
+msgid "Returns the hyperbolic sine of the parameter."
+msgstr "Gibt den hyperbolischen Sinus des Parameters zurück."
+
+msgid "Returns the square root of the parameter."
+msgstr "Gibt die Quadratwurzel des Parameters zurück."
+
+msgid "Returns the tangent of the parameter."
+msgstr "Gibt den Tangens des Parameters zurück."
+
+msgid "Returns the hyperbolic tangent of the parameter."
+msgstr "Gibt den hyperbolischen Tangens des Parameters zurück."
+
+msgid "Returns [code]1.0 - vector[/code]."
+msgstr "Gibt [code]1.0 - vector[/code] zurück."
+
+msgid "The operator to be used. See [enum Operator] for options."
+msgstr "Der operator, der benutzt wird. Siehe [enum Operator] für Optionen."
+
+msgid "Adds two vectors."
+msgstr "Addiert zwei Vektoren."
+
+msgid "Subtracts a vector from a vector."
+msgstr "Subtrahiert Vektor von Vektor."
+
+msgid "Multiplies two vectors."
+msgstr "Multipliziert zwei Vektoren."
+
+msgid "Divides vector by vector."
+msgstr "Teilt Vektor durch Vektor."
+
+msgid "Returns the remainder of the two vectors."
+msgstr "Gibt den Rest einer Division zweier Vektoren zurück."
+
+msgid "Calculates the cross product of two vectors."
+msgstr "Berechnet das Kreuzprodukt zweier Vektoren."
+
+msgid "Returns the arc-tangent of the parameters."
+msgstr "Gibt den Arkuskosinus2 der Parameter zurück."
+
+msgid "Target ray from touch screen, mouse or other tactile input device."
+msgstr ""
+"Ziel-Strahl für einen Touch-Screen, eine Computer-Maus oder ein taktisches "
+"Eingabegerät."
+
+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] and [method Control."
+"add_theme_color_override] for more details."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für ein Design [Color] mit dem angegebenen "
+"[param name]. Lokale Überschreibungen haben immer Vorrang, wenn Design-"
+"Elemente für das Steuerelement abgerufen werden. Eine Überschreibung kann mit "
+"[method remove_theme_color_override] entfernt werden.\n"
+"Siehe auch [method get_theme_color] und [method Control."
+"add_theme_color_override] für weitere Details."
+
+msgid ""
+"Creates a local override for a theme [StyleBox] 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_stylebox_override].\n"
+"See also [method get_theme_stylebox] and [method Control."
+"add_theme_stylebox_override] for more details."
+msgstr ""
+"Erzeugt eine lokale Überschreibung für ein Design [StyleBox] mit dem "
+"angegebenen [param name]. Lokale Überschreibungen haben immer Vorrang, wenn "
+"Design-Elemente für das Steuerelement abgerufen werden. Eine Überschreibung "
+"kann mit [method remove_theme_stylebox_override] entfernt werden.\n"
+"Siehe auch [method get_theme_stylebox] und [method Control."
+"add_theme_stylebox_override] für weitere Details."
+
+msgid "Returns layout direction and text writing direction."
+msgstr "Gibt die Layoutrichtung und die Schreibrichtung des Textes aus."
+
+msgid ""
+"Returns a [Color] from the first matching [Theme] in the tree if that [Theme] "
+"has a color item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for more details."
+msgstr ""
+"Gibt eine [Farbe] aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein Farbelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für weitere Details."
+
+msgid ""
+"Returns a constant from the first matching [Theme] in the tree if that "
+"[Theme] has a constant item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method Control.get_theme_color] for more details."
+msgstr ""
+"Gibt eine Konstante aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein konstantes Element mit dem angegebenen [param name] und "
+"[param theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für weitere Details."
+
+msgid ""
+"Returns the default base scale value from the first matching [Theme] in the "
+"tree if that [Theme] has a valid [member Theme.default_base_scale] value.\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt den Standardwert der Basisskala des ersten passenden [Themas] in der "
+"Struktur zurück, wenn dieses [Thema] einen gültigen [member Theme."
+"default_base_scale] Wert hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns the default font from the first matching [Theme] in the tree if that "
+"[Theme] has a valid [member Theme.default_font] value.\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt die Standardschriftart aus dem ersten passenden [Theme] in der Struktur "
+"zurück, wenn dieses [Theme] einen gültigen [member Theme.default_font] Wert "
+"hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns the default font size value from the first matching [Theme] in the "
+"tree if that [Theme] has a valid [member Theme.default_font_size] value.\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt den Wert für die Standardschriftgröße aus dem ersten passenden [Theme] "
+"in der Struktur zurück, wenn dieses [Theme] einen gültigen [member Theme."
+"default_font_size]-Wert hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns a [Font] from the first matching [Theme] in the tree if that [Theme] "
+"has a font item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt eine [Schriftart] aus dem ersten passenden [Thema] im Baum zurück, wenn "
+"dieses [Thema] ein Schriftelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns a font size from the first matching [Theme] in the tree if that "
+"[Theme] has a font size item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt eine Schriftgröße aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein Schriftgrößenelement mit dem angegebenen [param name] und "
+"[param theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns an icon from the first matching [Theme] in the tree if that [Theme] "
+"has an icon item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt ein Symbol aus dem ersten passenden [Theme] im Baum zurück, wenn dieses "
+"[Theme] ein Symbolelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns a [StyleBox] from the first matching [Theme] in the tree if that "
+"[Theme] has a stylebox item with the specified [param name] and [param "
+"theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt eine [StyleBox] aus dem ersten passenden [Theme] im Baum zurück, wenn "
+"dieses [Theme] ein Stylebox-Element mit dem angegebenen [param name] und "
+"[param theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a color item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Farbelement mit dem angegebenen [param name] und [param theme_type] "
+"hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a constant item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein konstantes Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a font item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Schriftelement mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a font size item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] in der Struktur "
+"gibt, das ein Schriftgrad-Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"an icon item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Symbolelement mit dem angegebenen [param name] und [param theme_type] "
+"hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if there is a matching [Theme] in the tree that has "
+"a stylebox item with the specified [param name] and [param theme_type].\n"
+"See [method Control.get_theme_color] for details."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn es ein passendes [Theme] im Baum gibt, "
+"das ein Stylebox-Element mit dem angegebenen [param name] und [param "
+"theme_type] hat.\n"
+"Siehe [method Control.get_theme_color] für Details."
+
+msgid ""
+"Returns [code]true[/code] if the window can be maximized (the maximize button "
+"is enabled)."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das Fenster maximiert werden kann (die "
+"Schaltfläche maximize ist aktiviert)."
+
+msgid ""
+"If [code]true[/code], the window will be on top of all other windows. Does "
+"not work if [member transient] is enabled."
+msgstr ""
+"Wenn [code]true[/code], wird das Fenster über allen anderen Fenstern "
+"angezeigt. Funktioniert nicht, wenn [member transient] aktiviert ist."
+
+msgid ""
+"If [code]true[/code], the [Window] contents is expanded to the full size of "
+"the window, window title bar is transparent.\n"
+"[b]Note:[/b] This property is implemented only on macOS.\n"
+"[b]Note:[/b] This property only works with native windows."
+msgstr ""
+"Wenn [code]true[/code], wird der [Window]-Inhalt auf die volle Größe des "
+"Fensters erweitert, die Titelleiste des Fensters ist transparent.\n"
+"[b]Hinweis:[/b] Diese Eigenschaft ist nur unter macOS implementiert.\n"
+"[b]Hinweis:[/b] Diese Eigenschaft funktioniert nur mit nativen Fenstern."
+
+msgid ""
+"If [code]true[/code], all mouse events will be passed to the underlying "
+"window of the same application. See also [member mouse_passthrough_polygon].\n"
+"[b]Note:[/b] This property is implemented on Linux (X11), macOS and Windows.\n"
+"[b]Note:[/b] This property only works with native windows."
+msgstr ""
+"Wenn [code]true[/code], werden alle Mausereignisse an das darunter liegende "
+"Fenster der gleichen Anwendung weitergegeben. Siehe auch [member "
+"mouse_passthrough_polygon].\n"
+"[b]Hinweis:[/b] Diese Eigenschaft ist auf Linux (X11), macOS und Windows "
+"implementiert.\n"
+"[b]Hinweis:[/b] Diese Eigenschaft funktioniert nur mit nativen Fenstern."
+
+msgid "The window's size in pixels."
+msgstr "Die Größe des Fensters in Pixeln."
+
+msgid "Emitted when the [Window] gains focus."
+msgstr "Wird ausgegeben, wenn das [Window] den Fokus erhält."
+
+msgid "Emitted when the [Window] loses its focus."
+msgstr "Wird ausgegeben, wenn das [Window] den Fokus verliert."
+
+msgid ""
+"All mouse events are passed to the underlying window of the same "
+"application.\n"
+"[b]Note:[/b] This flag has no effect in embedded windows."
+msgstr ""
+"Alle Mausereignisse werden an das zugrundeliegende Fenster der gleichen "
+"Anwendung weitergeleitet.\n"
+"[b]Hinweis:[/b] Dieses Flag hat keine Wirkung in eingebetteten Fenstern."
+
+msgid "The color of the title's text."
+msgstr "Die Farbe des Titeltextes."
+
+msgid "The color of the title's text outline."
+msgstr "Die Farbe der Textkontur des Titels."
+
+msgid "Height of the title bar."
+msgstr "Höhe der Titelleiste."
+
+msgid "The font used to draw the title."
+msgstr "Die Schriftart die für den Titel verwendet wird."
+
+msgid "The size of the title font."
+msgstr "Die Größe der Schriftart des Titels."
+
+msgid "The icon for the close button."
+msgstr "Das Symbol für den Schließen Knopf."
+
+msgid "The World3D's visual scenario."
+msgstr "Das visuelle Szenario der World3D."
+
+msgid "The World3D's physics space."
+msgstr "The physikalische Raum der World3D."
+
+msgid ""
+"Default environment properties for the entire scene (post-processing effects, "
+"lighting and background settings)."
+msgstr ""
+"Standartmäßige Umwelteigenschaften für die gesamte Szene "
+"(Bildnachbearbeitungs-Effekte, Beleuchtung und Hintergrund)."
+
+msgid "Loads a certificate from [param path] (\"*.crt\" file)."
+msgstr "Lädt ein Zertifikat vom [param path] (\"*.crt\" Datei)."
+
+msgid "Provides a low-level interface for creating parsers for XML files."
+msgstr ""
+"Stellt eine Low-Level-Schnittstelle zum Erstellen von Parsern für XML-Dateien "
+"bereit."
+
+msgid ""
+"Returns [code]true[/code] if the currently parsed element is empty, e.g. "
+"[code][/code]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn das aktuell geparste Element leer ist, z."
+"B. [code][/code]."
+
+msgid "There's no node (no file or buffer opened)."
+msgstr ""
+"Es ist kein Knotenpunkt verfügbar (da keine Datei oder kein Buffer geöffnet "
+"wurde)."
+
+msgid "An anchor point in AR space."
+msgstr "Ein Ankerpunkt im AR-Raum."
+
+msgid "Returns a plane aligned with our anchor; handy for intersection testing."
+msgstr ""
+"Gibt eine Ebene zurück, die an unserem Anker ausgerichtet ist; praktisch für "
+"Schnittpunkttests."
+
+msgid ""
+"Returns the estimated size of the plane that was detected. Say when the "
+"anchor relates to a table in the real world, this is the estimated size of "
+"the surface of that table."
+msgstr ""
+"Gibt die geschätzte Größe der erkannten Fläche zurück. Wenn sich der Anker "
+"beispielsweise auf einen Tisch in der realen Welt bezieht, ist dies die "
+"geschätzte Größe der Oberfläche dieses Tisches."
+
+msgid ""
+"A camera node with a few overrules for AR/VR applied, such as location "
+"tracking."
+msgstr ""
+"Ein Kameraknoten, der einige Grundregeln für AR/VR anwendet, z. B. die "
+"Standortverfolgung."
+
+msgid "A spatial node representing a spatially-tracked controller."
+msgstr ""
+"Ein räumlicher Knoten, der einen räumlich verfolgten Controller darstellt."
+
+msgid ""
+"This is a helper spatial node that is linked to the tracking of controllers. "
+"It also offers several handy passthroughs to the state of buttons and such on "
+"the controllers.\n"
+"Controllers are linked by their ID. You can create controller nodes before "
+"the controllers are available. If your game always uses two controllers (one "
+"for each hand), you can predefine the controllers with ID 1 and 2; they will "
+"become active as soon as the controllers are identified. If you expect "
+"additional controllers to be used, you should react to the signals and add "
+"XRController3D nodes to your scene.\n"
+"The position of the controller node is automatically updated by the "
+"[XRServer]. This makes this node ideal to add child nodes to visualize the "
+"controller.\n"
+"As many XR runtimes now use a configurable action map all inputs are named."
+msgstr ""
+"Dies ist ein räumlicher Hilfsknoten (Node), der mit der Verfolgung von "
+"Controllern verbunden ist. Er bietet auch mehrere praktische Durchreichungen "
+"für den Status von Schaltflächen und dergleichen auf den Controllern.\n"
+"Controller sind durch ihre ID verknüpft. Sie können Controller-Knoten (Node) "
+"erstellen, bevor die Controller verfügbar sind. Wenn Ihr Spiel immer zwei "
+"Controller verwendet (einen für jede Hand), können Sie die Controller mit der "
+"ID 1 und 2 vordefinieren; sie werden aktiv, sobald die Controller erkannt "
+"werden. Wenn Sie erwarten, dass zusätzliche Controller verwendet werden, "
+"sollten Sie auf die Signale reagieren und XRController3D-Knoten (Node) zu "
+"Ihrer Szene hinzufügen.\n"
+"Die Position des Controllerknotens wird automatisch vom [XRServer] "
+"aktualisiert. Dies macht diesen Knoten (Node) ideal, um Kindknoten (Child "
+"Node) zur Visualisierung des Controllers hinzuzufügen.\n"
+"Da viele XR-Laufzeiten nun eine konfigurierbare Action Map verwenden, werden "
+"alle Eingänge benannt."
+
+msgid "Emitted when a button on this controller is pressed."
+msgstr "Wird ausgesendet, wenn eine Taste auf diesem Steuergerät gedrückt wird."
+
+msgid "Emitted when a button on this controller is released."
+msgstr ""
+"Wird ausgesendet, wenn eine Taste an diesem Controller losgelassen wird."
+
+msgid ""
+"If this is an AR interface that requires displaying a camera feed as the "
+"background, this method returns the feed ID in the [CameraServer] for this "
+"interface."
+msgstr ""
+"Wenn es sich um eine AR-Schnittstelle handelt, bei der ein Kamerafeed als "
+"Hintergrund angezeigt werden muss, gibt diese Methode die Feed-ID im "
+"[CameraServer] für diese Schnittstelle zurück."
+
+msgid ""
+"Returns a combination of [enum Capabilities] flags providing information "
+"about the capabilities of this interface."
+msgstr ""
+"Gibt eine Kombination von [enum Capabilities]-Flags zurück, die Informationen "
+"über die Fähigkeiten dieser Schnittstelle liefern."
+
+msgid ""
+"Returns the resolution at which we should render our intermediate results "
+"before things like lens distortion are applied by the VR platform."
+msgstr ""
+"Gibt die Auflösung zurück, mit der wir unsere Zwischenergebnisse rendern "
+"sollten, bevor Dinge wie Linsenverzerrungen von der VR-Plattform angewendet "
+"werden."
+
+msgid ""
+"If supported, returns the status of our tracking. This will allow you to "
+"provide feedback to the user whether there are issues with positional "
+"tracking."
+msgstr ""
+"Gibt, falls unterstützt, den Status unserer Positionsbestimmung zurück. So "
+"können Sie dem Benutzer eine Rückmeldung geben, ob es Probleme mit der "
+"Positionsbestimmung gibt."
+
+msgid "Stops passthrough."
+msgstr "Stoppt Passthrough."
+
+msgid "Turns the interface off."
+msgstr "Schaltet die Schnittstelle aus."
+
+msgid "On an AR interface, [code]true[/code] if anchor detection is enabled."
+msgstr ""
+"Auf einer AR-Schnittstelle: [code]true[/code], wenn die Ankererkennung "
+"aktiviert ist."
+
+msgid "[code]true[/code] if this is the primary interface."
+msgstr "[code]true[/code], wenn dies die primäre Schnittstelle ist."
+
+msgid "The play area mode for this interface."
+msgstr "Der Spielbereichsmodus für diese Schnittstelle."
+
+msgid "This interface can work with normal rendering output (non-HMD based AR)."
+msgstr ""
+"Diese Schnittstelle kann mit normaler Rendering-Ausgabe arbeiten (nicht-HMD-"
+"basierte AR)."
+
+msgid "This interface supports stereoscopic rendering."
+msgstr "Diese Schnittstelle unterstützt das stereoskopische Rendering."
+
+msgid "This interface supports VR."
+msgstr "Diese Schnittstelle unterstützt VR."
+
+msgid "This interface supports AR (video background and real world tracking)."
+msgstr ""
+"Diese Schnittstelle unterstützt AR (Video-Hintergrund und Real-World-"
+"Tracking)."
+
+msgid "Tracking is behaving as expected."
+msgstr "Das Tracking verhält sich wie erwartet."
+
+msgid ""
+"Tracking is hindered by excessive motion (the player is moving faster than "
+"tracking can keep up)."
+msgstr ""
+"Das Tracking wird durch übermäßige Bewegung behindert (der Spieler bewegt "
+"sich schneller, als die Verfolgung mithalten kann)."
+
+msgid ""
+"Tracking is hindered by insufficient features, it's too dark (for camera-"
+"based tracking), player is blocked, etc."
+msgstr ""
+"Das Tracking wird durch unzureichende Fähigkeiten behindert, es ist zu dunkel "
+"(für kamerabasiertes Tracking), der Spieler ist blockiert, usw."
+
+msgid ""
+"We don't know the status of the tracking or this interface does not provide "
+"feedback."
+msgstr ""
+"Wir kennen den Status der Nachverfolgung nicht, oder diese Schnittstelle gibt "
+"keine Rückmeldung."
+
+msgid ""
+"Tracking is not functional (camera not plugged in or obscured, lighthouses "
+"turned off, etc.)."
+msgstr ""
+"Das Tracking funktioniert nicht (Kamera nicht eingesteckt oder verdeckt, "
+"Lighthouses ausgeschaltet usw.)."
+
+msgid "Play area mode not set or not available."
+msgstr "Der Spielbereichsmodus ist nicht festgelegt oder nicht verfügbar."
+
+msgid "Player is free to move around, full positional tracking."
+msgstr "Der Spieler kann sich frei bewegen, volle Positionsverfolgung."
+
+msgid "Called if interface is active and queues have been submitted."
+msgstr ""
+"Wird aufgerufen, wenn die Schnittstelle aktiv ist und die Warteschlangen "
+"übermittelt wurden."
+
+msgid "Returns the capabilities of this interface."
+msgstr "Gibt die Funktionen dieser Schnittstelle zurück."
+
+msgid "Return color texture into which to render (if applicable)."
+msgstr ""
+"Gibt die Farbtextur zurück, in die gerendert werden soll (falls zutreffend)."
+
+msgid "Return depth texture into which to render (if applicable)."
+msgstr ""
+"Gibt die Tiefentextur zurück, in die gerendert werden soll (falls zutreffend)."
+
+msgid "Returns the name of this interface."
+msgstr "Gibt den Namen dieser Schnittstelle zurück."
+
+msgid ""
+"Returns the size of our render target for this interface, this overrides the "
+"size of the [Viewport] marked as the xr viewport."
+msgstr ""
+"Gibt die Größe unseres Rendering-Ziels für diese Schnittstelle zurück. Dies "
+"überschreibt die Größe des [Viewport], das als xr-Viewport markiert ist."
+
+msgid ""
+"Returns a [PackedStringArray] with pose names configured by this interface. "
+"Note that user configuration can override this list."
+msgstr ""
+"Gibt ein [PackedStringArray] mit den von dieser Schnittstelle konfigurierten "
+"Posenamen zurück. Beachten Sie, dass die Benutzerkonfiguration diese Liste "
+"außer Kraft setzen kann."
+
+msgid ""
+"Returns a [PackedStringArray] with tracker names configured by this "
+"interface. Note that user configuration can override this list."
+msgstr ""
+"Gibt ein [PackedStringArray] mit den von dieser Schnittstelle konfigurierten "
+"Tracker-Namen zurück. Beachten Sie, dass die Benutzerkonfiguration diese "
+"Liste außer Kraft setzen kann."
+
+msgid ""
+"Returns a [enum XRInterface.TrackingStatus] specifying the current status of "
+"our tracking."
+msgstr ""
+"Gibt einen [enum XRInterface.TrackingStatus] zurück, der den aktuellen Status "
+"unseres Trackings angibt."
+
+msgid "Return velocity texture into which to render (if applicable)."
+msgstr ""
+"Rückgabe der Velocity-Textur, in die gerendert werden soll (falls zutreffend)."
+
+msgid ""
+"Returns the number of views this interface requires, 1 for mono, 2 for "
+"stereoscopic."
+msgstr ""
+"Gibt die Anzahl der Ansichten zurück, die diese Schnittstelle benötigt, 1 für "
+"mono, 2 für stereoskopisch."
+
+msgid "Initializes the interface, returns [code]true[/code] on success."
+msgstr ""
+"Initialisiert die Schnittstelle und gibt bei Erfolg [code]true[/code] zurück."
+
+msgid "Returns [code]true[/code] if this interface has been initialized."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn diese Schnittstelle initialisiert wurde."
+
+msgid "Called after the XR [Viewport] draw logic has completed."
+msgstr ""
+"Wird aufgerufen, nachdem die XR [Viewport]-Zeichenlogik abgeschlossen ist."
+
+msgid ""
+"Called if this is our primary [XRInterfaceExtension] before we start "
+"processing a [Viewport] for every active XR [Viewport], returns [code]true[/"
+"code] if that viewport should be rendered. An XR interface may return "
+"[code]false[/code] if the user has taken off their headset and we can pause "
+"rendering."
+msgstr ""
+"Wird aufgerufen, wenn dies unsere primäre [XRInterfaceExtension] ist, bevor "
+"wir mit der Verarbeitung eines [Viewport] für jedes aktive XR-[Viewport] "
+"beginnen, und gibt [code]true[/code] zurück, wenn dieses Viewport gerendert "
+"werden soll. Eine XR-Schnittstelle kann [code]false[/code] zurückgeben, wenn "
+"der Benutzer sein Headset abgenommen hat und wir das Rendern unterbrechen "
+"können."
+
+msgid ""
+"Called if this [XRInterfaceExtension] is active before rendering starts. Most "
+"XR interfaces will sync tracking at this point in time."
+msgstr ""
+"Wird aufgerufen, wenn diese [XRInterfaceExtension] aktiv ist, bevor das "
+"Rendern beginnt. Die meisten XR-Schnittstellen synchronisieren das Tracking "
+"zu diesem Zeitpunkt."
+
+msgid ""
+"Called if this [XRInterfaceExtension] is active before our physics and game "
+"process is called. Most XR interfaces will update its [XRPositionalTracker]s "
+"at this point in time."
+msgstr ""
+"Wird aufgerufen, wenn diese [XRInterfaceExtension] aktiv ist, bevor unser "
+"Physik- und Spielprozess aufgerufen wird. Die meisten XR-Schnittstellen "
+"aktualisieren ihre [XRPositionalTracker]s zu diesem Zeitpunkt."
+
+msgid "Enables anchor detection on this interface if supported."
+msgstr ""
+"Aktiviert die Ankererkennung auf dieser Schnittstelle, falls unterstützt."
+
+msgid "Set the play area mode for this interface."
+msgstr "Legen Sie den Wiedergabemodus für diese Schnittstelle fest."
+
+msgid ""
+"Returns [code]true[/code] if this interface supports this play area mode."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn diese Schnittstelle diesen "
+"Wiedergabemodus unterstützt."
+
+msgid "Triggers a haptic pulse to be emitted on the specified tracker."
+msgstr ""
+"Löst einen haptischen Impuls aus, der auf den angegebenen Tracker übertragen "
+"wird."
+
+msgid "Uninitialize the interface."
+msgstr "Entinitialisieren der Schnittstelle."
+
+msgid ""
+"Blits our render results to screen optionally applying lens distortion. This "
+"can only be called while processing [code]_commit_views[/code]."
+msgstr ""
+"Stellt unsere Renderergebnisse auf dem Bildschirm dar und wendet optional "
+"eine Linsenverzerrung an. Dies kann nur während der Verarbeitung von "
+"[code]_commit_views[/code] aufgerufen werden."
+
+msgid ""
+"Returns a valid [RID] for a texture to which we should render the current "
+"frame if supported by the interface."
+msgstr ""
+"Gibt eine gültige [RID] für eine Textur zurück, auf die das aktuelle Bild "
+"gerendert werden soll, sofern dies von der Schnittstelle unterstützt wird."
+
+msgid ""
+"A spatial node that has its position automatically updated by the [XRServer]."
+msgstr ""
+"Ein räumlicher Knoten (Node), dessen Position automatisch durch den "
+"[XRServer] aktualisiert wird."
+
+msgid ""
+"This node can be bound to a specific pose of a [XRPositionalTracker] and will "
+"automatically have its [member Node3D.transform] updated by the [XRServer]. "
+"Nodes of this type must be added as children of the [XROrigin3D] node."
+msgstr ""
+"Dieser Knoten (Node) kann an eine bestimmte Pose eines [XRPositionalTracker] "
+"gebunden werden und sein [member Node3D.transform] wird automatisch durch den "
+"[XRServer] aktualisiert. Knoten (Node) dieses Typs müssen als Kinder des "
+"[XROrigin3D]-Knotens (Node) hinzugefügt werden."
+
+msgid ""
+"Returns [code]true[/code] if the [member tracker] has current tracking data "
+"for the [member pose] being tracked."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [member tracker] aktuelle Tracking-"
+"Daten für die [member pose] hat, die verfolgt wird."
+
+msgid ""
+"Returns [code]true[/code] if the [member tracker] has been registered and the "
+"[member pose] is being tracked."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der [member tracker] registriert wurde "
+"und die [member pose] verfolgt wird."
+
+msgid ""
+"Returns the [XRPose] containing the current state of the pose being tracked. "
+"This gives access to additional properties of this pose."
+msgstr ""
+"Gibt die [XRPose] zurück, die den aktuellen Zustand der verfolgten Pose "
+"enthält. Dies ermöglicht den Zugriff auf zusätzliche Eigenschaften dieser "
+"Pose."
+
+msgid ""
+"Triggers a haptic pulse on a device associated with this interface.\n"
+"[param action_name] is the name of the action for this pulse."
+msgstr ""
+"Löst einen haptischen Impuls auf einem mit dieser Schnittstelle verbundenen "
+"Gerät aus.\n"
+"[param action_name] ist der Name der Aktion für diesen Impuls."
+
+msgid ""
+"The name of the pose we're bound to. Which poses a tracker supports is not "
+"known during design time.\n"
+"Godot defines number of standard pose names such as [code]aim[/code] and "
+"[code]grip[/code] but other may be configured within a given [XRInterface]."
+msgstr ""
+"Der Name der Pose, an die wir gebunden sind. Welche Posen ein Tracker "
+"unterstützt, ist zur Entwurfszeit nicht bekannt.\n"
+"Godot definiert eine Reihe von Standard-Positionsnamen wie [code]aim[/code] "
+"und [code]grip[/code], aber andere können innerhalb einer bestimmten "
+"[XRInterface] konfiguriert werden."
+
+msgid ""
+"The name of the tracker we're bound to. Which trackers are available is not "
+"known during design time.\n"
+"Godot defines a number of standard trackers such as [code]left_hand[/code] "
+"and [code]right_hand[/code] but others may be configured within a given "
+"[XRInterface]."
+msgstr ""
+"Der Name des Trackers, an den wir gebunden sind. Welche Tracker zur Verfügung "
+"stehen, ist zur Entwurfszeit nicht bekannt.\n"
+"Godot definiert eine Reihe von Standard-Trackern wie [code]left_hand[/code] "
+"und [code]right_hand[/code], aber andere können innerhalb einer bestimmten "
+"[XRInterface] konfiguriert werden."
+
+msgid ""
+"Emitted when the [member tracker] starts or stops receiving updated tracking "
+"data for the [member pose] being tracked. The [param tracking] argument "
+"indicates whether the tracker is getting updated tracking data."
+msgstr ""
+"Wird ausgegeben, wenn der [member tracker] beginnt oder aufhört, "
+"aktualisierte Tracking-Daten für die verfolgte [member pose] zu empfangen. "
+"Das Argument [param tracking] gibt an, ob der Tracker aktualisierte Tracking-"
+"Daten erhält."
+
+msgid "The origin point in AR/VR."
+msgstr "Der Ursprungspunkt in AR/VR."
+
+msgid "Is this XROrigin3D node the current origin used by the [XRServer]?"
+msgstr ""
+"Ist dieser XROrigin3D-Knoten (Node) der aktuelle, vom [XRServer] verwendete "
+"Ursprung?"
+
+msgid "This object contains all data related to a pose on a tracked object."
+msgstr ""
+"Dieses Objekt enthält alle Daten, die sich auf eine Pose eines verfolgten "
+"Objekts beziehen."
+
+msgid ""
+"XR runtimes often identify multiple locations on devices such as controllers "
+"that are spatially tracked.\n"
+"Orientation, location, linear velocity and angular velocity are all provided "
+"for each pose by the XR runtime. This object contains this state of a pose."
+msgstr ""
+"XR-Laufzeiten identifizieren oft mehrere Positionen auf Geräten wie "
+"Steuerungen, die räumlich verfolgt werden.\n"
+"Orientierung, Standort, lineare Geschwindigkeit und Winkelgeschwindigkeit "
+"werden für jede Pose von der XR-Laufzeitumgebung bereitgestellt. Dieses "
+"Objekt enthält diesen Zustand einer Pose."
+
+msgid ""
+"Returns the [member transform] with world scale and our reference frame "
+"applied. This is the transform used to position [XRNode3D] objects."
+msgstr ""
+"Gibt die [member transform] mit Weltmaßstab und unserem Referenz-Frame "
+"zurück. Dies ist die Transformation, die zur Positionierung von [XRNode3D]-"
+"Objekten verwendet wird."
+
+msgid "The angular velocity for this pose."
+msgstr "Die Winkelgeschwindigkeit für diese Pose."
+
+msgid ""
+"If [code]true[/code] our tracking data is up to date. If [code]false[/code] "
+"we're no longer receiving new tracking data and our state is whatever that "
+"last valid state was."
+msgstr ""
+"Wenn [code]true[/code], sind unsere Tracking-Daten auf dem neuesten Stand. "
+"Wenn [code]false[/code], erhalten wir keine neuen Tracking-Daten mehr und "
+"unser Status ist der letzte gültige Status."
+
+msgid "The linear velocity of this pose."
+msgstr "Die lineare Geschwindigkeit dieser Pose."
+
+msgid ""
+"The name of this pose. Pose names are often driven by an action map setup by "
+"the user. Godot does suggest a number of pose names that it expects "
+"[XRInterface]s to implement:\n"
+"- [code]root[/code] defines a root location, often used for tracked objects "
+"that do not have further nodes.\n"
+"- [code]aim[/code] defines the tip of a controller with the orientation "
+"pointing outwards, for example: add your raycasts to this.\n"
+"- [code]grip[/code] defines the location where the user grips the controller\n"
+"- [code]skeleton[/code] defines the root location a hand mesh should be "
+"placed when using hand tracking and the animated skeleton supplied by the XR "
+"runtime."
+msgstr ""
+"Der Name dieser Pose. Posen-Namen werden oft durch eine vom Benutzer "
+"eingerichtete Aktion-Map bestimmt. Godot schlägt eine Reihe von Posenamen "
+"vor, deren Implementierung von [XRInterface]s erwartet wird:\n"
+"- [code]root[/code] definiert eine Wurzelposition, die oft für verfolgte "
+"Objekte verwendet wird, die keine weiteren Knoten (Node) haben.\n"
+"- [code]aim[/code] definiert die Spitze eines Controllers mit der Ausrichtung "
+"nach außen, zum Beispiel: füge deine Raycasts dazu.\n"
+"- [code]grip[/code] definiert die Stelle, an der ein Benutzer den Controller "
+"anfasst\n"
+"- [code]skeleton[/code] definiert die Wurzelposition, an der ein Handmesh "
+"platziert werden soll, wenn die Handverfolgung und das animierte Skelett, das "
+"von der XR-Laufzeitumgebung bereitgestellt wird, verwendet werden."
+
+msgid ""
+"The tracking confidence for this pose, provides insight on how accurate the "
+"spatial positioning of this record is."
+msgstr ""
+"Die Verfolgungssicherheit für diese Pose gibt Aufschluss darüber, wie genau "
+"die räumliche Positionierung dieser Aufzeichnung ist."
+
+msgid ""
+"The transform containing the original and transform as reported by the XR "
+"runtime."
+msgstr ""
+"Die Transformation, die das Original und die Transformation enthält, wie von "
+"der XR-Laufzeit gemeldet."
+
+msgid "No tracking information is available for this pose."
+msgstr "Für diese Pose sind keine Tracking-Informationen verfügbar."
+
+msgid ""
+"Tracking information may be inaccurate or estimated. For example, with inside "
+"out tracking this would indicate a controller may be (partially) obscured."
+msgstr ""
+"Die Tracking-Informationen können ungenau oder geschätzt sein. Bei Inside-Out-"
+"Tracking würde dies zum Beispiel bedeuten, dass ein Controller (teilweise) "
+"verdeckt sein könnte."
+
+msgid "Tracking information is deemed accurate and up to date."
+msgstr ""
+"Die Informationen zur Sendungsverfolgung gelten als korrekt und aktuell."
+
+msgid "A tracked object."
+msgstr "Ein getracktes Objekt."
+
+msgid ""
+"An instance of this object represents a device that is tracked, such as a "
+"controller or anchor point. HMDs aren't represented here as they are handled "
+"internally.\n"
+"As controllers are turned on and the [XRInterface] detects them, instances of "
+"this object are automatically added to this list of active tracking objects "
+"accessible through the [XRServer].\n"
+"The [XRController3D] and [XRAnchor3D] both consume objects of this type and "
+"should be used in your project. The positional trackers are just under-the-"
+"hood objects that make this all work. These are mostly exposed so that "
+"GDExtension-based interfaces can interact with them."
+msgstr ""
+"Eine Instanz dieses Objekts stellt ein Gerät dar, das verfolgt wird, z. B. "
+"einen Controller oder Ankerpunkt. HMDs werden hier nicht dargestellt, da sie "
+"intern gehandhabt werden.\n"
+"Wenn Steuergeräte eingeschaltet werden und das [XRInterface] sie erkennt, "
+"werden Instanzen dieses Objekts automatisch zu dieser Liste aktiver "
+"Verfolgungsobjekte hinzugefügt, auf die über den [XRServer] zugegriffen "
+"werden kann.\n"
+"Der [XRController3D] und der [XRAnchor3D] verbrauchen beide Objekte dieses "
+"Typs und sollten in Ihrem Projekt verwendet werden. Die Positionsverfolger "
+"sind nur Objekte, die unter der Haube liegen und dafür sorgen, dass das alles "
+"funktioniert. Sie sind meist offengelegt, damit GDExtension-basierte "
+"Schnittstellen mit ihnen interagieren können."
+
+msgid ""
+"Returns an input for this tracker. It can return a boolean, float or "
+"[Vector2] value depending on whether the input is a button, trigger or "
+"thumbstick/thumbpad."
+msgstr ""
+"Gibt eine Eingabe für diesen Tracker zurück. Sie kann einen booleschen, "
+"Float- oder [Vector2]-Wert zurückgeben, je nachdem, ob es sich bei der "
+"Eingabe um eine Schaltfläche, einen Trigger oder einen Thumbstick/Thumbpad "
+"handelt."
+
+msgid ""
+"Returns the current [XRPose] state object for the bound [param name] pose."
+msgstr ""
+"Gibt das aktuelle [XRPose]-Zustandsobjekt für die gebundene [param name]-Pose "
+"zurück."
+
+msgid ""
+"Returns [code]true[/code] if the tracker is available and is currently "
+"tracking the bound [param name] pose."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn der Tracker verfügbar ist und gerade die "
+"gebundene [param name]-Pose verfolgt."
+
+msgid ""
+"Changes the value for the given input. This method is called by a "
+"[XRInterface] implementation and should not be used directly."
+msgstr ""
+"Ändert den Wert für die angegebene Eingabe. Diese Methode wird von einer "
+"[XRInterface]-Implementierung aufgerufen und sollte nicht direkt verwendet "
+"werden."
+
+msgid ""
+"Sets the transform, linear velocity, angular velocity and tracking confidence "
+"for the given pose. This method is called by a [XRInterface] implementation "
+"and should not be used directly."
+msgstr ""
+"Setzt die Transformation, die lineare Geschwindigkeit, die "
+"Winkelgeschwindigkeit und das Tracking-Vertrauen für die angegebene Pose. "
+"Diese Methode wird von einer [XRInterface]-Implementierung aufgerufen und "
+"sollte nicht direkt verwendet werden."
+
+msgid "The description of this tracker."
+msgstr "Die Beschreibung dieses Trackers."
+
+msgid "Defines which hand this tracker relates to."
+msgstr "Definiert auf welche Hand sich dieser Tracker bezieht."
+
+msgid ""
+"The unique name of this tracker. The trackers that are available differ "
+"between various XR runtimes and can often be configured by the user. Godot "
+"maintains a number of reserved names that it expects the [XRInterface] to "
+"implement if applicable:\n"
+"- [code]left_hand[/code] identifies the controller held in the players left "
+"hand\n"
+"- [code]right_hand[/code] identifies the controller held in the players right "
+"hand"
+msgstr ""
+"Der einzigartige Name dieses Trackers. Die verfügbaren Tracker unterscheiden "
+"sich zwischen verschiedenen XR Runtimes und können oft vom Nutzer "
+"konfiguriert werden. Godot pflegt eine Reihe reservierter Namen, von denen es "
+"erwartet, dass das [XRInterface] sie implementiert.\n"
+"- [code]left_hand[/code] identifiziert den Controller, der in der linken Hand "
+"des Spielers gehalten wird\n"
+"- [code]right_hand[/code] identifiziert den Controller, der in der rechten "
+"Hand des Spielers gehalten wird"
+
+msgid ""
+"The profile associated with this tracker, interface dependent but will "
+"indicate the type of controller being tracked."
+msgstr ""
+"Das Profil das mit diesem Tracker verbunden ist. Abhängig vom Interface, aber "
+"deutet auf den Typ des getrackten Controllers hin."
+
+msgid "The type of tracker."
+msgstr "Der Typ des Trackers."
+
+msgid ""
+"Emitted when a button on this tracker is pressed. Note that many XR runtimes "
+"allow other inputs to be mapped to buttons."
+msgstr ""
+"Wird ausgegeben, wenn ein Knopf auf diesem Tracker gedrückt wird. Beachte, "
+"dass viele XR Runtimes es erlauben andere Inputs auf Knöpfe zu mappen."
+
+msgid "Emitted when a button on this tracker is released."
+msgstr "Wird ausgegeben, wenn eine Taste an diesem Tracker losgelassen wird."
+
+msgid "Emitted when a trigger or similar input on this tracker changes value."
+msgstr ""
+"Wird ausgegeben, wenn ein Trigger oder ein ähnlicher Input an diesem Tracker "
+"seinen Wert verändert."
+
+msgid "Emitted when a thumbstick or thumbpad on this tracker moves."
+msgstr ""
+"Wird ausgegeben, wenn ein Thumbstick oder Thumbpad auf diesem Tracker bewegt "
+"wird."
+
+msgid "Emitted when the state of a pose tracked by this tracker changes."
+msgstr ""
+"Wird ausgegeben, wenn sich der Zustand einer Pose (Haltung) ändert die von "
+"diesem Tracker getrackt wird."
+
+msgid ""
+"Emitted when a pose tracked by this tracker stops getting updated tracking "
+"data."
+msgstr ""
+"Wird ausgesendet, wenn eine von diesem Tracker verfolgte Pose keine "
+"aktualisierten Tracking-Daten mehr erhält."
+
+msgid "Emitted when the profile of our tracker changes."
+msgstr "Wird ausgegeben, wenn das Profil unseres Trackers gewechselt wird."
+
+msgid "The hand this tracker is held in is unknown or not applicable."
+msgstr ""
+"Die Hand, in der dieser Tracker gehalten wird, ist unbekannt oder nicht "
+"anwendbar."
+
+msgid "This tracker is the left hand controller."
+msgstr "Dieser Tracker ist der Controller für die linke Hand."
+
+msgid "This tracker is the right hand controller."
+msgstr "Dieser Tracker ist der Controller für die rechte Hand."
+
+msgid "Server for AR and VR features."
+msgstr "Server für AR- und VR-Funktionen."
+
+msgid ""
+"The AR/VR server is the heart of our Advanced and Virtual Reality solution "
+"and handles all the processing."
+msgstr ""
+"Der AR/VR-Server ist das Herzstück unserer Advanced and Virtual Reality-"
+"Lösung und übernimmt die gesamte Verarbeitung."
+
+msgid "Registers an [XRInterface] object."
+msgstr "Registriert ein [XRInterface]-Objekt."
+
+msgid ""
+"Registers a new [XRPositionalTracker] that tracks a spatial location in real "
+"space."
+msgstr ""
+"Registriert einen neuen [XRPositionalTracker], der eine räumliche Position im "
+"realen Raum verfolgt."
+
+msgid ""
+"This is an important function to understand correctly. AR and VR platforms "
+"all handle positioning slightly differently.\n"
+"For platforms that do not offer spatial tracking, our origin point (0, 0, 0) "
+"is the location of our HMD, but you have little control over the direction "
+"the player is facing in the real world.\n"
+"For platforms that do offer spatial tracking, our origin point depends very "
+"much on the system. For OpenVR, our origin point is usually the center of the "
+"tracking space, on the ground. For other platforms, it's often the location "
+"of the tracking camera.\n"
+"This method allows you to center your tracker on the location of the HMD. It "
+"will take the current location of the HMD and use that to adjust all your "
+"tracking data; in essence, realigning the real world to your player's current "
+"position in the game world.\n"
+"For this method to produce usable results, tracking information must be "
+"available. This often takes a few frames after starting your game.\n"
+"You should call this method after a few seconds have passed. For example, "
+"when the user requests a realignment of the display holding a designated "
+"button on a controller for a short period of time, or when implementing a "
+"teleport mechanism."
+msgstr ""
+"Dies ist eine wichtige Funktion, die man richtig verstehen muss. AR- und VR-"
+"Plattformen gehen alle etwas anders mit der Positionierung um.\n"
+"Bei Plattformen, die kein räumliches Tracking bieten, ist unser "
+"Ursprungspunkt (0, 0, 0) die Position unseres HMD, aber Sie haben wenig "
+"Kontrolle über die Richtung, in die der Spieler in der realen Welt blickt.\n"
+"Bei Plattformen, die räumliches Tracking bieten, hängt unser Ausgangspunkt "
+"sehr stark vom System ab. Bei OpenVR ist unser Ausgangspunkt in der Regel das "
+"Zentrum des Tracking-Raums, also auf dem Boden. Bei anderen Plattformen ist "
+"es oft die Position der Tracking-Kamera.\n"
+"Mit dieser Methode können Sie Ihren Tracker auf die Position des HMD "
+"zentrieren. Dabei wird die aktuelle Position des HMD verwendet, um alle "
+"Tracking-Daten anzupassen; im Wesentlichen wird die reale Welt an die "
+"aktuelle Position des Spielers in der Spielwelt angepasst.\n"
+"Damit diese Methode brauchbare Ergebnisse liefert, müssen Tracking-"
+"Informationen verfügbar sein. Dies dauert oft ein paar Frames nach dem Start "
+"des Spiels.\n"
+"Sie sollten diese Methode aufrufen, nachdem ein paar Sekunden vergangen sind. "
+"Zum Beispiel, wenn der Benutzer eine Neuausrichtung der Anzeige anfordert, "
+"indem er eine bestimmte Taste auf einem Controller für eine kurze Zeitspanne "
+"gedrückt hält, oder wenn er einen Teleportmechanismus implementiert."
+
+msgid ""
+"Finds an interface by its [param name]. For example, if your project uses "
+"capabilities of an AR/VR platform, you can find the interface for that "
+"platform by name and initialize it."
+msgstr ""
+"Findet eine Schnittstelle anhand ihres [param name]. Wenn Ihr Projekt z. B. "
+"die Funktionen einer AR/VR-Plattform nutzt, können Sie die Schnittstelle für "
+"diese Plattform anhand ihres Namens finden und sie initialisieren."
+
+msgid "Returns the primary interface's transformation."
+msgstr "Gibt die Transformation der primären Schnittstelle zurück."
+
+msgid ""
+"Returns the interface registered at the given [param idx] index in the list "
+"of interfaces."
+msgstr ""
+"Gibt die Schnittstelle zurück, die unter einem gegebenen Index [param idx] in "
+"der Liste der Schnittstellen registriert ist."
+
+msgid ""
+"Returns the number of interfaces currently registered with the AR/VR server. "
+"If your project supports multiple AR/VR platforms, you can look through the "
+"available interface, and either present the user with a selection or simply "
+"try to initialize each interface and use the first one that returns "
+"[code]true[/code]."
+msgstr ""
+"Gibt die Anzahl der derzeit beim AR/VR-Server registrierten Schnittstellen "
+"zurück. Wenn Ihr Projekt mehrere AR/VR-Plattformen unterstützt, können Sie "
+"die verfügbaren Schnittstellen durchsehen und dem Benutzer entweder eine "
+"Auswahl präsentieren oder einfach versuchen, jede Schnittstelle zu "
+"initialisieren und die erste zu verwenden, die [code]true[/code] zurückgibt."
+
+msgid ""
+"Returns a list of available interfaces the ID and name of each interface."
+msgstr ""
+"Liefert eine Liste der verfügbaren Schnittstellen, die ID und den Namen jeder "
+"Schnittstelle."
+
+msgid ""
+"Returns the reference frame transform. Mostly used internally and exposed for "
+"GDExtension build interfaces."
+msgstr ""
+"Gibt die Transformation des Referenzrahmens zurück. Wird meist intern "
+"verwendet und für GDExtension-Build-Schnittstellen bereitgestellt."
+
+msgid "Returns the positional tracker with the given [param tracker_name]."
+msgstr ""
+"Gibt den Positionstracker an dem angegebenen [param tracker_name] zurück."
+
+msgid "Returns a dictionary of trackers for [param tracker_types]."
+msgstr "Gibt ein Wörterbuch mit Trackern für [param tracker_types] zurück."
+
+msgid "Removes this [param interface]."
+msgstr "Entfernt dieses [param interface]."
+
+msgid "Removes this positional [param tracker]."
+msgstr "Entfernt diesen Positions-[param tracker]."
+
+msgid "The primary [XRInterface] currently bound to the [XRServer]."
+msgstr "Das primäre [XRInterface], das derzeit an den [XRServer] gebunden ist."
+
+msgid ""
+"The current origin of our tracking space in the virtual world. This is used "
+"by the renderer to properly position the camera with new tracking data.\n"
+"[b]Note:[/b] This property is managed by the current [XROrigin3D] node. It is "
+"exposed for access from GDExtensions."
+msgstr ""
+"Der aktuelle Ursprung unseres Tracking-Bereichs in der virtuellen Welt. Wird "
+"vom Renderer genutzt, um die Kamera anhand der neuen Tracking-Daten korrekt "
+"zu positionieren.\n"
+"[b]Anmerkung:[/b] Diese Eigenschaft wird vom aktuellen [XROrigin3D] Node "
+"verwaltet. Sie ist für den Zugriff durch GDExtensions offen."
+
+msgid ""
+"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
+"assume a scale of 1 game world unit = 1 real world meter."
+msgstr ""
+"Ermöglicht es, die Skalierung an die Einheiten Ihres Spiels anzupassen. Die "
+"meisten AR/VR-Plattformen gehen von einem Maßstab von 1 Einheit der Spielwelt "
+"= 1 Meter der realen Welt aus."
+
+msgid ""
+"Emitted when a new tracker has been added. If you don't use a fixed number of "
+"controllers or if you're using [XRAnchor3D]s for an AR solution, it is "
+"important to react to this signal to add the appropriate [XRController3D] or "
+"[XRAnchor3D] nodes related to this new tracker."
+msgstr ""
+"Wird ausgegeben, wenn ein neuer Tracker hinzugefügt wurde. Wenn Sie keine "
+"feste Anzahl von Controllern verwenden oder wenn Sie [XRAnchor3D]s für eine "
+"AR-Lösung verwenden, ist es wichtig, auf dieses Signal zu reagieren, um die "
+"entsprechenden [XRController3D]- oder [XRAnchor3D]-Knoten in Bezug auf diesen "
+"neuen Tracker hinzuzufügen."
+
+msgid ""
+"Emitted when a tracker is removed. You should remove any [XRController3D] or "
+"[XRAnchor3D] points if applicable. This is not mandatory, the nodes simply "
+"become inactive and will be made active again when a new tracker becomes "
+"available (i.e. a new controller is switched on that takes the place of the "
+"previous one)."
+msgstr ""
+"Wird ausgegeben, wenn ein Tracker entfernt wird. Sie sollten alle "
+"[XRController3D]- oder [XRAnchor3D]-Punkte entfernen, falls zutreffend. Dies "
+"ist nicht zwingend erforderlich, die Knoten (Nodes) werden einfach inaktiv "
+"und werden wieder aktiv, wenn ein neuer Tracker verfügbar wird (d. h. ein "
+"neuer Controller wird eingeschaltet, der den vorherigen ersetzt)."
+
+msgid ""
+"Emitted when an existing tracker has been updated. This can happen if the "
+"user switches controllers."
+msgstr ""
+"Wird ausgegeben, wenn ein vorhandener Tracker aktualisiert wurde. Dies kann "
+"passieren, wenn der Benutzer den Controller wechselt."
+
+msgid ""
+"The tracker tracks the location of the players head. This is usually a "
+"location centered between the players eyes. Note that for handheld AR devices "
+"this can be the current location of the device."
+msgstr ""
+"Der Tracker verfolgt die Position des Kopfes des Spielers. Dies ist in der "
+"Regel eine Position, die zwischen den Augen des Spielers liegt. Beachten Sie, "
+"dass dies bei tragbaren AR-Geräten die aktuelle Position des Geräts sein kann."
+
+msgid "The tracker tracks the location of a controller."
+msgstr "Der Tracker trackt den Standort eines Controllers."
+
+msgid "The tracker tracks the location of a base station."
+msgstr "Der Tracker trackt den Standort einer Basisstation."
+
+msgid "The tracker tracks the location and size of an AR anchor."
+msgstr "Der Tracker trackt die Position und Größe eines AR-Ankers."
+
+msgid "Used internally to filter trackers of any known type."
+msgstr "Wird intern verwendet, um Tracker jedes bekannten Typs zu filtern."
+
+msgid "Used internally if we haven't set the tracker type yet."
+msgstr ""
+"Wird intern verwendet, wenn wir den Tracker-Typ noch nicht festgelegt haben."
+
+msgid "Used internally to select all trackers."
+msgstr "Wird intern verwendet, um alle Tracker auszuwählen."
+
+msgid ""
+"Fully reset the orientation of the HMD. Regardless of what direction the user "
+"is looking to in the real world. The user will look dead ahead in the virtual "
+"world."
+msgstr ""
+"Vollständige Rückstellung der Ausrichtung des HMD. Es spielt keine Rolle, in "
+"welche Richtung der Benutzer in der realen Welt schaut. Der Benutzer blickt "
+"in der virtuellen Welt genau nach vorne."
+
+msgid ""
+"Resets the orientation but keeps the tilt of the device. So if we're looking "
+"down, we keep looking down but heading will be reset."
+msgstr ""
+"Setzt die Ausrichtung zurück, behält aber die Neigung des Geräts bei. Wenn "
+"wir also nach unten schauen, schauen wir weiterhin nach unten, aber die "
+"Ausrichtung wird zurückgesetzt."
+
+msgid ""
+"Does not reset the orientation of the HMD, only the position of the player "
+"gets centered."
+msgstr ""
+"Die Ausrichtung des HMD wird nicht zurückgesetzt, nur die Position des "
+"Spielers wird zentriert."
+
+msgid "Allows the creation of zip files."
+msgstr "Ermöglicht die Erzeugung von zip Dateien."
+
+msgid ""
+"This class implements a writer that allows storing the multiple blobs in a "
+"zip archive.\n"
+"[codeblock]\n"
+"func write_zip_file():\n"
+" var writer := ZIPPacker.new()\n"
+" var err := writer.open(\"user://archive.zip\")\n"
+" if err != OK:\n"
+" return err\n"
+" writer.start_file(\"hello.txt\")\n"
+" writer.write_file(\"Hello World\".to_utf8_buffer())\n"
+" writer.close_file()\n"
+"\n"
+" writer.close()\n"
+" return OK\n"
+"[/codeblock]"
+msgstr ""
+"Diese Klasse implementiert einen Writer, der die Speicherung mehrerer Blobs "
+"in einem Zip-Archiv ermöglicht.\n"
+"[codeblock]\n"
+"func write_zip_file():\n"
+" var writer := ZIPPacker.new()\n"
+" var err := writer.open(\"user://archive.zip\")\n"
+" if err != OK:\n"
+" return err\n"
+" writer.start_file(\"hello.txt\")\n"
+" writer.write_file(\"Hello World\".to_utf8_buffer())\n"
+" writer.close_file()\n"
+"\n"
+" writer.close()\n"
+" return OK\n"
+"[/codeblock]"
+
+msgid "Closes the underlying resources used by this instance."
+msgstr ""
+"Schließt die zugrunde liegenden Ressourcen, die von dieser Instanz verwendet "
+"werden."
+
+msgid ""
+"Stops writing to a file within the archive.\n"
+"It will fail if there is no open file."
+msgstr ""
+"Stoppt das Schreiben in eine Datei innerhalb des Archivs.\n"
+"Der Vorgang schlägt fehl, wenn es keine offene Datei gibt."
+
+msgid ""
+"Opens a zip file for writing at the given path using the specified write "
+"mode.\n"
+"This must be called before everything else."
+msgstr ""
+"Öffnet eine Zip-Datei zum Schreiben unter dem angegebenen Pfad mit dem "
+"angegebenen Schreibmodus.\n"
+"Dieser Befehl muss vor allen anderen aufgerufen werden."
+
+msgid ""
+"Starts writing to a file within the archive. Only one file can be written at "
+"the same time.\n"
+"Must be called after [method open]."
+msgstr ""
+"Beginnt mit dem Schreiben in eine Datei innerhalb des Archivs. Es kann nur "
+"eine Datei zur gleichen Zeit geschrieben werden.\n"
+"Muss nach [method open] aufgerufen werden."
+
+msgid ""
+"Write the given [param data] to the file.\n"
+"Needs to be called after [method start_file]."
+msgstr ""
+"Schreibt die angegebenen [param data] in die Datei.\n"
+"Muss nach [method start_file] aufgerufen werden."
+
+msgid "Create a new zip archive at the given path."
+msgstr "Erstellt ein neues Zip-Archiv unter dem angegebenen Pfad."
+
+msgid ""
+"Append a new zip archive to the end of the already existing file at the given "
+"path."
+msgstr ""
+"Hängt ein neues Zip-Archiv an das Ende der bereits vorhandenen Datei unter "
+"dem angegebenen Pfad an."
+
+msgid "Add new files to the existing zip archive at the given path."
+msgstr ""
+"Fügt dem vorhandenen Zip-Archiv neue Dateien unter dem angegebenen Pfad hinzu."
+
+msgid "Allows reading the content of a zip file."
+msgstr "Ermöglicht das Lesen des Inhalts einer Zip-Datei."
+
+msgid ""
+"This class implements a reader that can extract the content of individual "
+"files inside a zip archive.\n"
+"[codeblock]\n"
+"func read_zip_file():\n"
+" var reader := ZIPReader.new()\n"
+" var err := reader.open(\"user://archive.zip\")\n"
+" if err != OK:\n"
+" return PackedByteArray()\n"
+" var res := reader.read_file(\"hello.txt\")\n"
+" reader.close()\n"
+" return res\n"
+"[/codeblock]"
+msgstr ""
+"Diese Klasse implementiert einen Reader, der den Inhalt einzelner Dateien in "
+"einem Zip-Archiv extrahieren kann.\n"
+"[codeblock]\n"
+"func read_zip_file():\n"
+" var reader := ZIPReader.new()\n"
+" var err := reader.open(\"user://archive.zip\")\n"
+" if err != OK:\n"
+" return PackedByteArray()\n"
+" var res := reader.read_file(\"hello.txt\")\n"
+" reader.close()\n"
+" return res\n"
+"[/codeblock]"
+
+msgid ""
+"Returns [code]true[/code] if the file exists in the loaded zip archive.\n"
+"Must be called after [method open]."
+msgstr ""
+"Gibt [code]true[/code] zurück, wenn die Datei im geladenen Zip-Archiv "
+"existiert.\n"
+"Muss nach [method open] aufgerufen werden."
+
+msgid ""
+"Returns the list of names of all files in the loaded archive.\n"
+"Must be called after [method open]."
+msgstr ""
+"Gibt die Liste der Namen aller Dateien im geladenen Archiv zurück.\n"
+"Muss nach [method open] aufgerufen werden."
+
+msgid ""
+"Opens the zip archive at the given [param path] and reads its file index."
+msgstr ""
+"Öffnet das Zip-Archiv mit dem angegebenen [param Pfad] und liest dessen "
+"Dateiindex."
+
+msgid ""
+"Loads the whole content of a file in the loaded zip archive into memory and "
+"returns it.\n"
+"Must be called after [method open]."
+msgstr ""
+"Lädt den gesamten Inhalt einer Datei im geladenen ZIP-Archiv in den Speicher "
+"und gibt diesen zurück.\n"
+"Darf erst nach [method open] verwendet werden."
diff --git a/doc/translations/es.po b/doc/translations/es.po
index 18067f21aeb..a6dd326941f 100644
--- a/doc/translations/es.po
+++ b/doc/translations/es.po
@@ -61,13 +61,16 @@
# Ignacio Baptista , 2023.
# Sergio Varela , 2023.
# Moises Alejandro Vera Torrealba , 2023.
+# "Francisco S. F." , 2023.
+# Jorge González , 2023.
+# Jorge Julio Torres , 2023.
+# simomi 073 , 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-09-27 12:38+0000\n"
-"Last-Translator: Moises Alejandro Vera Torrealba \n"
+"PO-Revision-Date: 2023-10-25 16:15+0000\n"
+"Last-Translator: Jorge Julio Torres \n"
"Language-Team: Spanish \n"
"Language: es\n"
@@ -75,7 +78,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.1-dev\n"
+"X-Generator: Weblate 5.1.1\n"
msgid "Description"
msgstr "Descripción"
@@ -362,6 +365,31 @@ msgstr ""
"a = char(8364) # a es \"€\"\n"
"[/codeblock]"
+msgid ""
+"[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.\n"
+"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 ""
+"[i]obsoleto.[/i] Usar [method @GlobalScope.type_convert] en su lugar.\n"
+"Convierte [param what] a [param type] de la mejor forma posible. El [param "
+"type] usa los valores de[enum Variant.Type].\n"
+"[codeblock]\n"
+"var a = [4, 2.5, 1.2]\n"
+"print(a is Array) # Imprime true\n"
+"\n"
+"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n"
+"print(b) # Prints [4, 2, 1]\n"
+"print(b is Array) # Imprime false\n"
+"[/codeblock]"
+
msgid ""
"Converts a [param dictionary] (created with [method inst_to_dict]) back to an "
"Object instance. Can be useful for deserializing."
@@ -600,6 +628,133 @@ msgstr ""
"Frame 0 - res://test.gd:16 in function '_process'\n"
"[/codeblock]"
+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 ""
+"Imprime un seguimiento de la pila en la ubicación de código actual. Véase "
+"también [method get_stack].\n"
+"La salida en la consola puede verse similar a la siguiente:\n"
+"[codeblock[\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Esta función solo actua correctamente si la instancia ejecutada "
+"está conectada a un servidor de depuración (p.e. una instancia de editor). "
+"[method print_stack] no funcionará en proyectos exportados en modo release, o "
+"en proyectos exportados en modo depurar si no está conectado a un server de "
+"depuración.\n"
+"[b]Nota:[/b] Llamar a esta función desde un hilo no está soportado. Hacerlo "
+"en este caso imprimirá el ID del hilo."
+
+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() - 1, -1, -1):\n"
+" print(array[i])\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 ""
+"Devuelve un array con el rango dado. [method range] puede ser invocado de "
+"tres maneras:\n"
+"[code]range(n: int)[/code]: Comienza desde 0, incrementa en intervalos de 1, "
+"y para [i]antes de[/i] [code]n[/code]. El argumento [code]n[/code] es "
+"[b]exclusivo[/b].\n"
+"[code]range(b: int, n: int)[/code]: Comienza desde [code]b[/code], incrementa "
+"en intervalos de 1, y para [i]antes de[/i] [code]n[/code]. Los argumentos "
+"[code]b[/code] y [code]n[/code] son [b]inclusivo[/b] y [b]exclusivo[/b], "
+"respectivamente.\n"
+"[code]range(b: int, n: int, s: int)[/code]: Comiensa desde [code]b[/code], "
+"incrementa o decrementa en pasos de [code]s[/code], y para [i]antes de[/i] "
+"[code]n[/code]. Los argumentos [code]b[/code] y [code]n[/code] son "
+"[b]inclusivo[/b] y [b]exclusivo[/b], respectivamente. El argumento [code]s[/"
+"code] [b]puede[/b] ser negativo, pero no [code]0[/code]. Si [code]s[/code] es "
+"[code]0[/code], se mostrará un mensaje de error.\n"
+"[method range] convierte todos los argumentos a [int] antes de procesarse.\n"
+"[b]Note:[/b] Devuelve un array vacío si ningún valor cumple la restricción de "
+"valor (v.g. [code]range(2, 5, -1)[/code] o [code]range(5, 5, 1)[/code]).\n"
+"Ejemplos:\n"
+"[codeblock]\n"
+"print(range(4)) # Imprime [0, 1, 2, 3]\n"
+"print(range(2, 5)) # Imprime [2, 3, 4]\n"
+"print(range(0, 6, 2)) # Imprime [0, 2, 4]\n"
+"print(range(4, 1, -1)) # Imprime [4, 3, 2]\n"
+"[/codeblock]\n"
+"Para iterar un [Array] hacia atrás, utilice:\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"
+"Salida:\n"
+"[codeblock]\n"
+"9\n"
+"6\n"
+"3\n"
+"[/codeblock]\n"
+"Para iterar sobre [float], conviertelos en el bucle.\n"
+"[codeblock]\n"
+"for i in range (3, 0, -1):\n"
+" print(i / 10.0)\n"
+"[/codeblock]\n"
+"Salida:\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"
@@ -630,6 +785,28 @@ msgstr ""
"La constante del círculo, la circunferencia de la unidad círculo en radianes. "
"Esto equivale a [code]PI * 2[/code] o 360 grados en rotación."
+msgid ""
+"Positive floating-point infinity. This is the result of floating-point "
+"division when the divisor is [code]0.0[/code]. For negative infinity, use "
+"[code]-INF[/code]. Dividing by [code]-0.0[/code] will result in negative "
+"infinity if the numerator is positive, so dividing by [code]0.0[/code] is not "
+"the same as dividing by [code]-0.0[/code] (despite [code]0.0 == -0.0[/code] "
+"returning [code]true[/code]).\n"
+"[b]Warning:[/b] Numeric infinity is only a concept with floating-point "
+"numbers, and has no equivalent for integers. Dividing an integer number by "
+"[code]0[/code] will not result in [constant INF] and will result in a run-"
+"time error instead."
+msgstr ""
+"Infinito como número de punto flotante. Este es el resultado de una división "
+"de punto flotante cuando el divisor es [code]0.0[/code]. Para el infinito "
+"negativo, utilizar [code]-INF[/code]. Dividir por [code]-0.0[/code] otorgará "
+"como resultado el infinito negativo si el numerador es positivo, de manera "
+"que no es lo mismo que dividir por [code]0.0[/code] (a pesar de que [code]0.0 "
+"== -0.0[/code] devuelve [code]true[/code]). [b]Nota:[/b] El infinito numérico "
+"solo es un concepto para números de punto flotante y no tiene un equivalente "
+"para enteros. La división de un entero por [code]0[/code] no resultará en "
+"[constant INF] y en su lugar arrojará un error en tiempo de ejecución."
+
msgid ""
"\"Not a Number\", an invalid floating-point value. [constant NAN] has special "
"properties, including that [code]!=[/code] always returns [code]true[/code], "
@@ -653,27 +830,6 @@ msgstr ""
"resultará en [constante NAN] y en su lugar arrojará un error en tiempo de "
"ejecución."
-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 ""
-"Marca la siguiente propiedad como exportada (editable en el panel Inspector y "
-"guardado al disco). Para controlar el tipo de la propiedad exportada, use la "
-"notación de sugerencia de tipo.\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"
@@ -830,6 +986,58 @@ msgstr ""
"@export_file(\"*.txt\") var notes_path: String\n"
"[/codeblock]"
+msgid ""
+"Export an integer property as a bit flag field. This allows to store several "
+"\"checked\" or [code]true[/code] values with one property, and comfortably "
+"select them from the Inspector dock.\n"
+"See also [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"You can add explicit values using a colon:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"You can also combine several flags:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [annotation @export_enum], the previous explicit value is "
+"not taken into account. In the following example, A is 16, B is 2, C is 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+msgstr ""
+"Exporta la propiedad de un entero como un pequeño campo de indicador. Esto "
+"permite guardar varios valores \"checked\" (revisados) o [code]true[/code] "
+"con una propiedad, y seleccionarlos cómodamente desde el Panel inspector.\n"
+"Véase también [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"Puedes añadir valores explícitos utilizando dos puntos:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"Pueden incluso combinarse varios indicadores:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Note:[/b] El valor de un indicador debe ser al menos [code]1[/code] y "
+"máximo [code]2 ** 32 - 1[/code].\n"
+"[b]Note:[/b] A diferencia de [annotation @export_enum], el valor explícito "
+"anterior no está tomado en cuenta. En el siguiente ejemplo, A es 16, B es 2, "
+"C es 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+
msgid ""
"Export an integer property as a bit flag field for 2D navigation layers. The "
"widget in the Inspector dock will use the layer names defined in [member "
@@ -847,6 +1055,77 @@ msgstr ""
"@export_flags_2d_navigation var navigation_layers: int\n"
"[/codeblock]"
+msgid ""
+"Export an integer property as a bit flag field for 2D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exporta una propiedad de entero como un campo bit flag para capas físicas 2D. "
+"El widget del inspector usará el nombre de la capa definido en [member "
+"ProjectSettings.layer_names/2d_physics/layer_1].\n"
+"Vea también [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\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 ""
+"Exporta un Integer como un campo bit flag para las capas de render 2D. El "
+"widget del inspector usará el nombre de la capa definido en [member "
+"ProjectSettings.layer_names/2d_render/layer_1].\n"
+"Vea también [constant PROPERTY_HINT_LAYERS_2D_RENDER].\n"
+"[codeblock]\n"
+"@export_flags_2d_render var render_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D navigation layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_navigation/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exporta una propiedad de tipo Integer como big flag para las capas de "
+"navegación 3D. La ventana del inspector usará los nombres de las capas "
+"definidas en:\n"
+"ProjectSettings.layer_names/3d_navigation/layer_1].\n"
+"Vea también:\n"
+"PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n"
+"\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exporta una propiedad Integer como un bit flag para capas de físicas 3D. El "
+"widget del inspector usará el nombre definido en[member ProjectSettings."
+"layer_names/3d_physics/layer_1].\n"
+"Vea también [constant PROPERTY_HINT_LAYERS_3D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+
msgid ""
"Export an integer property as a bit flag field for 3D render layers. The "
"widget in the Inspector dock will use the layer names defined in [member "
@@ -864,6 +1143,69 @@ msgstr ""
"@export_flags_3d_render var render_layers: int\n"
"[/codeblock]"
+msgid ""
+"Export an integer property as a bit flag field for navigation avoidance "
+"layers. The widget in the Inspector dock will use the layer names defined in "
+"[member ProjectSettings.layer_names/avoidance/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_AVOIDANCE].\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exporta una propiedad de tipo Integer como campo de bit flag para las capas "
+"de prevención de navegación.\n"
+"\n"
+"El widget en el inspector usará los nombres definidos en [member "
+"ProjectSettings.layer_names/avoidance/layer_1].\n"
+"Consulte también [constant PROPERTY_HINT_LAYERS_AVOIDANCE].\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a directory. The path can "
+"be picked from the entire filesystem. See [annotation @export_dir] to limit "
+"it to the project folder and its subfolders.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_DIR].\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+msgstr ""
+"Exporta un [String] como ruta absoluta a un directorio. La ruta puede ser "
+"tomada desde el Sistema de Archivos. Vea\n"
+"[annotation @export_dir] para limitarlo a las carpetas del Proyecto y sus "
+"subcarpetas.\n"
+"Consulte también [constant PROPERTY_HINT_GLOBAL_DIR].\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a file. The path can be "
+"picked from the entire filesystem. See [annotation @export_file] to limit it "
+"to the project folder and its subfolders.\n"
+"If [param filter] is provided, only matching files will be available for "
+"picking.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_FILE].\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@export_global_file(\"*.txt\") var notes_path: String\n"
+"[/codeblock]"
+msgstr ""
+"Exporta una propiedad de tipo[String] como ruta absoluta a un archivo. La "
+"ruta puede ser escogida del FileSystem.\n"
+"\n"
+"Vea [annotation @export_file] para limitarlo a las carpetas y subcarpetas del "
+"proyecto.\n"
+"Si [param filter] es establecido, sólo los archivos marcados estarán "
+"disponibles para seleccionar.\n"
+"\n"
+"Vea también[constant PROPERTY_HINT_GLOBAL_FILE].\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@export_global_file(\"*.txt\") var notes_path: String\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 "
@@ -881,6 +1223,125 @@ msgstr ""
"@export_multiline var character_biography\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 ""
+"Exporta una propiedad [String] con un texto genérico mostrado en el widget "
+"del editor cuando no hay valores presentes.\n"
+"Vea también [constant PROPERTY_HINT_PLACEHOLDER_TEXT].\n"
+"[codeblock]\n"
+"@export_placeholder(\"Nombre en minúscula\") var character_id: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an [int] or [float] property as a range value. The range must be "
+"defined by [param min] and [param max], as well as an optional [param step] "
+"and a variety of extra hints. The [param step] defaults to [code]1[/code] for "
+"integer properties. For floating-point numbers this value depends on your "
+"[code]EditorSettings.interface/inspector/default_float_step[/code] setting.\n"
+"If hints [code]\"or_greater\"[/code] and [code]\"or_less\"[/code] are "
+"provided, the editor widget will not cap the value at range boundaries. The "
+"[code]\"exp\"[/code] hint will make the edited values on range to change "
+"exponentially. The [code]\"hide_slider\"[/code] hint will hide the slider "
+"element of the editor widget.\n"
+"Hints also allow to indicate the units for the edited value. Using "
+"[code]\"radians_as_degrees\"[/code] you can specify that the actual value is "
+"in radians, but should be displayed in degrees in the Inspector dock (the "
+"range values are also in degrees). [code]\"degrees\"[/code] allows to add a "
+"degree sign as a unit suffix (the value is unchanged). Finally, a custom "
+"suffix can be provided using [code]\"suffix:unit\"[/code], where \"unit\" can "
+"be any string.\n"
+"See also [constant PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+msgstr ""
+"Exporta un [int] o un [float] como un control slider ajustable. Debe ser "
+"ajustado entre un [valor mínimo] y un [máximo]. También se puede especificar "
+"un parámetro extra para definir intervalos y otros para establecer atajos que "
+"alteran el comportamiento del control. En el caso de los números enteros, el "
+"intervalo de salto por defecto es de [1]. Para los números flotantes, el "
+"valor depende de su configuración en [code]EditorSettings.interface/inspector/"
+"default_float_step[/code].\n"
+"Sobre los atajos: Si se suministra [code]\"or_greater\"[/code] y "
+"[code]\"or_less\"[/code] el slider en el inspector no ajustará los valores a "
+"los límites establecidos. El atajo [code]\"exp\"[/code] se puede usar para "
+"hacer que los valores del slider cambien de manera exponencial. "
+"[code]\"hide_slider\"[/code] ocultará el slider del control del inspector.\n"
+"Los atajos, también pueden usarse para especificar distintas unidades de "
+"medida para el parámetro editado. Usando [code]\"radians_as_degrees\"[/code], "
+"puede especificar el valor como radianes, sin embargo en el inspector se "
+"mostrará como grados. [code]\"degrees\"[/code] permitirá añadir el símbolo de "
+"grados al final del valor. Finalmente, se podrá especificar un atajo "
+"personalizado para añadir alguna clase de sufijo al valor usando "
+"[code]\"suffix:unit\"[/code], donde \"unit\" podrá ser cualquier clase de "
+"cadena de texto.\n"
+"\n"
+"Vea también [constant PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+
+msgid ""
+"Define a new subgroup for the following exported properties. This helps to "
+"organize properties in the Inspector dock. Subgroups work exactly like "
+"groups, except they need a parent group to exist. See [annotation "
+"@export_group].\n"
+"See also [constant PROPERTY_USAGE_SUBGROUP].\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Subgroups cannot be nested, they only provide one extra level of "
+"depth. Just like the next group ends the previous group, so do the subsequent "
+"subgroups."
+msgstr ""
+"Define un nuevo subgrupo con las propiedades exportadas. Esto ayuda a "
+"organizar las propiedades en el panel de inspección. Los subgrupos funcionan "
+"exactamente que los grupos, exceptuando de que necesitan que el grupo "
+"principal exista. Ver [annotation @export_group].\n"
+"Ver además [constant PROPERTY_USAGE_SUBGROUP].\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]Nota:[/b] Los subgrupos no se pueden anidar, solo proveen un nivel extra "
+"de profundidad. Así como el siguiente grupo finaliza el anterior, también lo "
+"hacen los consiguientes subgrupos."
+
msgid ""
"Make a script with static variables to not persist after all references are "
"lost. If the script is loaded again the static variables will revert to their "
@@ -890,28 +1351,6 @@ msgstr ""
"todas las referencias. Si el script es cargado nuevamente las variables "
"estática revierten su valor a sus respectivos valores predeterminados."
-msgid ""
-"Mark the current script as a tool script, allowing it to be loaded and "
-"executed by the editor. See [url=$DOCS_URL/tutorials/plugins/"
-"running_code_in_the_editor.html]Running code in the editor[/url].\n"
-"[codeblock]\n"
-"@tool\n"
-"extends Node\n"
-"[/codeblock]\n"
-"[b]Note:[/b] As annotations describe their subject, the [code]@tool[/code] "
-"annotation must be placed before the class definition and inheritance."
-msgstr ""
-"Marca el script actual como una herramienta script, permitiéndole ser cargado "
-"y ejecutado por el editor. Vea [url=$DOCS_URL/tutorials/plugins/"
-"running_code_in_the_editor.html]Corriendo el código en el editor[/url].\n"
-"[codeblock]\n"
-"@tool\n"
-"extends Node\n"
-"[/codeblock]\n"
-"[b]Nota:[/b] Como una anotación describe sus sujetos, la anotación "
-"[code]@tool[/code] debe ser colocada antes de la definición de clase y "
-"herencia."
-
msgid ""
"Mark the following statement to ignore the specified [param warning]. See "
"[url=$DOCS_URL/tutorials/scripting/gdscript/warning_system.html]GDScript "
@@ -2580,6 +3019,37 @@ msgid ""
"Appends an element at the end of the array (alias of [method push_back])."
msgstr "Concatena un elemento al final del array (alias de [method push_back])."
+msgid ""
+"Appends another array at the end of this array.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+msgstr ""
+"Añade otro Arreglo al final de este Arreglo.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the last element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[-1]"
+"[/code]. If the array is empty, accessing by index will pause project "
+"execution when running from the editor."
+msgstr ""
+"Devuelve el último elemento del Arreglo. Imprime un error y retorna "
+"[code]null[/code] si el arreglo está vacío.\n"
+"\n"
+"[b]Note:[/b] Llamar esta función no es lo mismo que poner [code]array[-1][/"
+"code]. Si el arreglo está vacío, acceder por el índice detendrá el la "
+"ejecución del proyecto si se ejecuta desde el Editor."
+
msgid ""
"Clears the array. This is equivalent to using [method resize] with a size of "
"[code]0[/code]."
@@ -2590,9 +3060,51 @@ msgstr ""
msgid "Returns the number of times an element is in the array."
msgstr "Devuelve el numer de veces que un elemento es encuentra en el array."
+msgid ""
+"Returns the first element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[0][/"
+"code]. If the array is empty, accessing by index will pause project execution "
+"when running from the editor."
+msgstr ""
+"Devuelve el primer elemento del Arreglo. Imprime un error y retorna "
+"[code]null[/code] si el arreglo está vacío.\n"
+"\n"
+"[b]Note:[/b] Llamar esta función no es lo mismo que poner [code]array[0][/"
+"code]. Si el arreglo está vacío, acceder por el índice detendrá el la "
+"ejecución del proyecto si se ejecuta desde el Editor."
+
msgid "Returns [code]true[/code] if the array is empty."
msgstr "Devuelve [code]true[/code] si el array es vacio."
+msgid ""
+"Removes and returns the first element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"pop_back] as it will reindex all the array's elements every time it's called. "
+"The larger the array, the slower [method pop_front] will be."
+msgstr ""
+"Elimina y devuelve el primer elemento del arreglo. Devuelve [code]null[/code] "
+"si el arreglo está vacío, sin mostrar un mensaje de error. Vea también "
+"[method pop_back].\n"
+"[b]Note:[/b] En arreglos largos, este método es mucho más lento que [method "
+"pop_back] debido a que tiene que re-indexar todos los elementos del arreglo "
+"cada vez que es llamado. Mientras más largo el arreglo, más lento será "
+"[method pop_front]."
+
+msgid ""
+"Adds an element at the beginning of the array. See also [method push_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"push_back] as it will reindex all the array's elements every time it's "
+"called. The larger the array, the slower [method push_front] will be."
+msgstr ""
+"Añade un elemento al comienzo del arreglo. Vea también [method push_back].\n"
+"[b]Nota:[/b] En arreglos largos, este método es mucho más lento que [method "
+"push_back] ya que tiene que re-indexar todos los elementos del arreglo cada "
+"vez que es llamado. Mientras más largo sea el arreglo, más lento será [method "
+"push_front]."
+
msgid "Reverses the order of the elements in the array."
msgstr "Invierte el orden de los elementos en el array."
@@ -2678,6 +3190,27 @@ msgstr ""
"tronco(frustum). Especialmente util para evitar inesperadas selecciones "
"cuando se use un shader a vertices desplazados."
+msgid ""
+"The aspect ratio to enforce on child controls. This is the width divided by "
+"the height. The ratio depends on the [member stretch_mode]."
+msgstr ""
+"Define el [s]aspect ratio[/s] de los nodos hijos. Esto es el ancho dividido "
+"por la altura. La proporción depende del [member stretch_mode]."
+
+msgid ""
+"The height of child controls is automatically adjusted based on the width of "
+"the container."
+msgstr ""
+"La altura de los controles hijos es ajustada automáticamente basada en la "
+"anchura del [s]contenedor[/s]."
+
+msgid ""
+"The bounding rectangle of child controls is automatically adjusted to fit "
+"inside the container while keeping the aspect ratio."
+msgstr ""
+"El rectángulo que delimita a los controles hijos es automáticamente ajustado "
+"dentro del [s]contebedor[/s], mientras se mantiene el [s]aspect ratio[/s]."
+
msgid "Clears all the points and segments."
msgstr "Limpia todos los puntos y segmentos."
@@ -2702,13 +3235,6 @@ msgstr ""
"Deshabilita o habilita el punto especificado para el buscador de rutas. Util "
"para crear obstaculos temporales."
-msgid ""
-"Returns the capacity of the structure backing the points, useful in "
-"conjunction with [code]reserve_space[/code]."
-msgstr ""
-"Devuelve la capacidad de la estructura que respalda los puntos, usado junto "
-"con [code]reserve_space[/code]."
-
msgid "Stores information about the audio buses."
msgstr "Almacena informacion sobre los buses de audio."
@@ -2760,6 +3286,16 @@ msgstr ""
"Atenua las frecuencias dentro de un rango alrededor del [member "
"AudioEffectFilter.cutoff_hz] y recorta la frecuencias fuera de esta banda."
+msgid "Captures audio from an audio bus in real-time."
+msgstr "Captura el audio de un bus de audio en tiempo real."
+
+msgid ""
+"Length of the internal ring buffer, in seconds. Setting the buffer length "
+"will have no effect if already initialized."
+msgstr ""
+"Tamaño de un [s]ring buffer[/s] en segundos. Ajustar esta propiedad no tendrá "
+"ningún efecto si ya se ha inicializado."
+
msgid "Adds a chorus audio effect."
msgstr "Añade un efecto de audio de coro."
@@ -3231,6 +3767,28 @@ msgstr ""
"frecuencias pueden ser aumentadas/disminuidas con un efecto mínimo en los "
"transitorios."
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the effect over time, but have greater latency. The effects of "
+"this higher latency are especially noticeable on sounds that have sudden "
+"amplitude changes."
+msgstr ""
+"El tamaño del buffer [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url]. Los valores más altos "
+"suavizan el efecto sobre el tiempo, pero aumenta la latencia. El efecto de "
+"esta alta latencia es especialmente observada en sonidos que tienen cambios "
+"bruscos de amplitud."
+
+msgid ""
+"The oversampling factor to use. Higher values result in better quality, but "
+"are more demanding on the CPU and may cause audio cracking if the CPU can't "
+"keep up."
+msgstr ""
+"El factor de sobre muestreo a usar. Altos valores permiten obtener mejor "
+"calidad, pero aumenta la demanda de CPU y puede provocar fallas en el audio "
+"si el CPU no puede mantenerlo."
+
msgid "Returns the recorded sample."
msgstr "Devuelve la muestra registrada."
@@ -3445,13 +4003,6 @@ msgstr "Si [code]true[/code], el audio se está reproduciendo."
msgid "The [AudioStream] object to be played."
msgstr "El objeto [AudioStream] que se va a reproducir."
-msgid ""
-"If [code]true[/code], the playback is paused. You can resume it by setting "
-"[code]stream_paused[/code] to [code]false[/code]."
-msgstr ""
-"Si [code]true[/code], la reproducción se interrumpe. Puede reanudarla "
-"ajustando [code]stream_paused[/code] a [code]false[/code]."
-
msgid "Volume of sound, in dB."
msgstr "Volumen del sonido, en dB."
@@ -4339,17 +4890,6 @@ msgstr ""
"El vector Z de la matriz base (columna 2). Equivalente al índice de la matriz "
"[code]2[/code]."
-msgid ""
-"The identity basis, with no rotation or scaling applied.\n"
-"This is identical to calling [code]Basis()[/code] without any parameters. "
-"This constant can be used to make your code clearer, and for consistency with "
-"C#."
-msgstr ""
-"La base de la identidad, sin rotación ni escalonamiento aplicado.\n"
-"Esto es idéntico a llamar a [code]Basis()[/code] sin ningún parámetro. Esta "
-"constante puede ser usada para hacer su código más claro, y para la "
-"consistencia con C#."
-
msgid ""
"The basis that will flip something along the X axis when used in a "
"transformation."
@@ -4412,13 +4952,6 @@ msgid ""
msgstr ""
"Devuelve el índice del nodo como parte de todo el esqueleto. Ver [Skeleton2D]."
-msgid ""
-"Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have "
-"a parent, or its rest pose relative to its parent."
-msgstr ""
-"Devuelve el [member rest] [code]Transform2D[/code] del nodo si no tiene un "
-"padre, o su pose de reposo en relación con su padre."
-
msgid ""
"Rest transform of the bone. You can reset the node's transforms to this value "
"using [method apply_rest]."
@@ -5853,20 +6386,6 @@ msgstr "Enviado cuando el nodo agarra el foco."
msgid "Sent when the node loses focus."
msgstr "Enviado cuando el nodo pierde el enfoque."
-msgid ""
-"Sent when this node is inside a [ScrollContainer] which has begun being "
-"scrolled."
-msgstr ""
-"Enviado cuando este nodo está dentro de un [ScrollContainer] que ha comenzado "
-"a ser desplazado."
-
-msgid ""
-"Sent when this node is inside a [ScrollContainer] which has stopped being "
-"scrolled."
-msgstr ""
-"Enviado cuando este nodo está dentro de un [ScrollContainer] que ha dejado de "
-"ser desplazado."
-
msgid ""
"Show the system's arrow mouse cursor when the user hovers the node. Use with "
"[member mouse_default_cursor_shape]."
@@ -6678,18 +7197,6 @@ msgstr "La altura del cilindro."
msgid "The cylinder's radius."
msgstr "El radio del cilindro."
-msgid ""
-"The spring joint's damping ratio. A value between [code]0[/code] and [code]1[/"
-"code]. When the two bodies move into different directions the system tries to "
-"align them to the spring axis again. A high [code]damping[/code] value forces "
-"the attached bodies to align faster."
-msgstr ""
-"El ratio de amortiguación de la articulación del resorte. Un valor entre "
-"[code]0[/code] y [code]1[/code]. Cuando los dos cuerpos se mueven en "
-"direcciones diferentes el sistema intenta alinearlos de nuevo al eje del "
-"resorte. Un valor alto de [code]damping[/code] obliga a los cuerpos adjuntos "
-"a alinearse más rápido."
-
msgid ""
"The spring joint's maximum length. The two attached bodies cannot stretch it "
"past this value."
@@ -6783,6 +7290,12 @@ msgstr "Hace que el cursor del ratón se oculte si es visible."
msgid "Helper class to implement a DTLS server."
msgstr "Clase de ayuda para implementar un servidor DTLS."
+msgid "Exporting for iOS"
+msgstr "Exportando para iOS"
+
+msgid "Exporting for macOS"
+msgstr "Exportando para macOS"
+
msgid ""
"Virtual method to be overridden by the user. Called when the export is "
"finished."
@@ -7730,28 +8243,6 @@ msgstr ""
"Recurso para nodos del entorno (como [WorldEnvironment]) que definen "
"múltiples opciones de renderización."
-msgid ""
-"The global brightness value of the rendered scene. Effective only if "
-"[code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"El valor de brillo global de la escena renderizada. Efectivo sólo si "
-"[code]adjustment_enabled[/code] es [code]true[/code]."
-
-msgid ""
-"The global contrast value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"El valor de contraste global de la escena renderizada (el valor por defecto "
-"es 1). Efectivo sólo si [code]adjustment_enabled[/code] es [code]true[/code]."
-
-msgid ""
-"The global color saturation value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"El valor de saturación de color global de la escena renderizada (el valor por "
-"defecto es 1). Efectivo sólo si [code]adjustment_enabled[/code] es "
-"[code]true[/code]."
-
msgid "The ID of the camera feed to show in the background."
msgstr "La identificación de la feed de la cámara para mostrarla en el fondo."
@@ -8721,11 +9212,6 @@ msgstr ""
"emiten continuamente. Si [code]1[/code], todas las partículas se emiten "
"simultáneamente."
-msgid ""
-"If [code]true[/code], only [code]amount[/code] particles will be emitted."
-msgstr ""
-"Si [code]true[/code], sólo se emitirán partículas de [code]amount[/code]."
-
msgid ""
"Amount of time to preprocess the particles before animation starts. Lets you "
"start the animation some time after particles have started emitting."
@@ -11097,13 +11583,6 @@ msgstr ""
"Devuelve el número de líneas mostradas. Es útil si la altura de la [Label] no "
"puede mostrar actualmente todas las líneas."
-msgid ""
-"The node ignores the first [code]lines_skipped[/code] lines before it starts "
-"to display text."
-msgstr ""
-"El nodo ignora las primeras líneas [code]lines_skipped[/code] antes de "
-"empezar a mostrar el texto."
-
msgid "Limits the lines of text the node shows on screen."
msgstr "Limita las líneas de texto que el nodo muestra en la pantalla."
@@ -11214,13 +11693,6 @@ msgstr ""
msgid "Provides a base class for different kinds of light nodes."
msgstr "Proporciona una clase base para diferentes tipos de nodos de luz."
-msgid ""
-"If [code]true[/code], the light only appears in the editor and will not be "
-"visible at runtime."
-msgstr ""
-"Si [code]true[/code], la luz sólo aparece en el editor y no será visible en "
-"tiempo de ejecución."
-
msgid ""
"The light's color. An [i]overbright[/i] color can be used to achieve a result "
"equivalent to increasing the light's [member light_energy]."
@@ -11539,34 +12011,6 @@ msgstr ""
"posición del cursor de la IME o de la string de composición).\n"
"Específico de la plataforma MacOS."
-msgid ""
-"All direct children of [MarginContainer] will have a bottom margin of "
-"[code]margin_bottom[/code] pixels."
-msgstr ""
-"Todos los hijos directos de [MarginContainer] tendrán un margen inferior de "
-"[code]margin_bottom[/code] píxeles."
-
-msgid ""
-"All direct children of [MarginContainer] will have a left margin of "
-"[code]margin_left[/code] pixels."
-msgstr ""
-"Todos los hijos directos de [MarginContainer] tendrán un margen izquierdo de "
-"[code]margin_left[/code] píxeles."
-
-msgid ""
-"All direct children of [MarginContainer] will have a right margin of "
-"[code]margin_right[/code] pixels."
-msgstr ""
-"Todos los hijos directos de [MarginContainer] tendrán un margen derecho de "
-"[code]margin_right[/code] píxeles."
-
-msgid ""
-"All direct children of [MarginContainer] will have a top margin of "
-"[code]margin_top[/code] pixels."
-msgstr ""
-"Todos los hijos directos de [MarginContainer] tendrán un margen superior de "
-"[code]margin_top[/code] píxeles."
-
msgid "Generic 2D position hint for editing."
msgstr "Sugerencia de la posición 2D genérica para editar."
@@ -11590,15 +12034,6 @@ msgstr ""
"Si [code]true[/code], los atajos están desactivados y no se pueden utilizar "
"para activar el botón."
-msgid ""
-"If [code]true[/code], when the cursor hovers above another [MenuButton] "
-"within the same parent which also has [code]switch_on_hover[/code] enabled, "
-"it will close the current [MenuButton] and open the other one."
-msgstr ""
-"Si [code]true[/code], cuando el cursor se sitúe sobre otro [MenuButton] "
-"dentro del mismo padre que también tenga activado [code]switch_on_hover[/"
-"code], cerrará el [MenuButton] actual y abrirá el otro."
-
msgid "A [Resource] that contains vertex array-based geometry."
msgstr "Un [Resource] que contiene un array de vértices de una geometría."
@@ -12325,23 +12760,6 @@ msgstr ""
"Notifica al nodo actual y a todos sus hijos de forma recursiva llamando al "
"[method Object.notification] en todos ellos."
-msgid ""
-"Requests that [code]_ready[/code] be called again. Note that the method won't "
-"be called immediately, but is scheduled for when the node is added to the "
-"scene tree again (see [method _ready]). [code]_ready[/code] is called only "
-"for the node which requested it, which means that you need to request ready "
-"for each child if you want them to call [code]_ready[/code] too (in which "
-"case, [code]_ready[/code] will be called in the same order as it would "
-"normally)."
-msgstr ""
-"Solicita que se llame de nuevo a [code]_ready[/code]. Tenga en cuenta que el "
-"método no se llamará inmediatamente, sino que está programado para cuando el "
-"nodo se añada de nuevo al árbol de la escena (véase [method _ready]). "
-"[code]_ready[/code] se llama sólo para el nodo que lo ha solicitado, lo que "
-"significa que necesita solicitar ready para cada niño si quiere que también "
-"llamen a [code]_ready[/code] (en cuyo caso, se llamará a [code]_ready[/code] "
-"en el mismo orden que normalmente)."
-
msgid ""
"Enables or disables processing. When a node is being processed, it will "
"receive a [constant NOTIFICATION_PROCESS] on every drawn frame (and the "
@@ -12937,12 +13355,6 @@ msgstr "Una abstracción de una escena serializada."
msgid "Returns [code]true[/code] if the scene file has nodes."
msgstr "Devuelve [code]true[/code] si el archivo de la escena tiene nodos."
-msgid ""
-"Returns the [code]SceneState[/code] representing the scene file contents."
-msgstr ""
-"Devuelve el [code]SceneState[/code] que representa el contenido del archivo "
-"de la escena."
-
msgid ""
"Pack will ignore any sub-nodes not owned by given node. See [member Node."
"owner]."
@@ -13002,22 +13414,6 @@ msgstr ""
msgid "Sends a raw packet."
msgstr "Envía un paquete crudo."
-msgid ""
-"Maximum buffer size allowed when encoding [Variant]s. Raise this value to "
-"support heavier memory allocations.\n"
-"The [method put_var] method allocates memory on the stack, and the buffer "
-"used will grow automatically to the closest power of two to match the size of "
-"the [Variant]. If the [Variant] is bigger than [code]encode_buffer_max_size[/"
-"code], the method will error out with [constant ERR_OUT_OF_MEMORY]."
-msgstr ""
-"Tamaño máximo de la memoria intermedia permitido al codificar las [Variant]s. "
-"Aumente este valor para soportar asignaciones de memoria más pesadas.\n"
-"El método [method put_var] asigna memoria en la pila, y el búfer utilizado "
-"crecerá automáticamente hasta la potencia más cercana a dos para igualar el "
-"tamaño de la [Variant]. Si la [Variant] es más grande que "
-"[code]encode_buffer_max_size[/code], el método dará un error con [constant "
-"ERR_OUT_OF_MEMORY]."
-
msgid "DTLS packet peer."
msgstr "Paquete de pares DTLS."
@@ -13190,13 +13586,6 @@ msgstr ""
msgid "Damping will vary along this [CurveTexture]."
msgstr "La amortiguación variará a lo largo de esta [CurveTexture]."
-msgid ""
-"The box's extents if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_BOX]."
-msgstr ""
-"La extensión de la caja si [code]emission_shape[/code] se fija en [constant "
-"EMISSION_SHAPE_BOX]."
-
msgid ""
"Particle velocity and rotation will be set by sampling this texture at the "
"same point as the [member emission_point_texture]. Used only in [constant "
@@ -13211,13 +13600,6 @@ msgstr ""
"de emisión a partir de la malla o del nodo\" en la herramienta \"Partículas\" "
"de la barra de herramientas."
-msgid ""
-"The number of emission points if [code]emission_shape[/code] is set to "
-"[constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
-msgstr ""
-"El número de puntos de emisión si [code]emission_shape[/code] se fija en "
-"[constant EMISSION_SHAPE_POINTS] o [constant EMISSION_SHAPE_DIRECTED_POINTS]."
-
msgid ""
"Particles will be emitted at positions determined by sampling this texture at "
"a random position. Used with [constant EMISSION_SHAPE_POINTS] and [constant "
@@ -13239,13 +13621,6 @@ msgstr ""
"Se emitirán partículas dentro de esta región. Use las constantes [enum "
"EmissionShape] para los valores."
-msgid ""
-"The sphere's radius if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_SPHERE]."
-msgstr ""
-"El radio de la esfera si [code]emission_shape[/code] se fija en [constant "
-"EMISSION_SHAPE_SPHERE]."
-
msgid "Each particle's hue will vary along this [CurveTexture]."
msgstr "El tono de cada partícula variará a lo largo de esta [CurveTexture]."
@@ -13254,11 +13629,6 @@ msgstr ""
"La aceleración lineal de cada partícula variará a lo largo de esta "
"[CurveTexture]."
-msgid "Each particle's orbital velocity will vary along this [CurveTexture]."
-msgstr ""
-"La velocidad orbital de cada partícula variará a lo largo de esta "
-"[CurveTexture]."
-
msgid "If [code]true[/code], particles will not move on the z axis."
msgstr "Si [code]true[/code], las partículas no se moverán en el eje z."
@@ -14416,62 +14786,12 @@ msgstr "Establece el camino al nodo asociado con el hueso especificado."
msgid "Sets the weight values for the specified bone."
msgstr "Establece los valores de peso para el hueso especificado."
-msgid ""
-"The polygon's fill color. If [code]texture[/code] is defined, it will be "
-"multiplied by this color. It will also be the default color for vertices not "
-"set in [code]vertex_colors[/code]."
-msgstr ""
-"El color de relleno del polígono. Si se define [code]texture[/code], se "
-"multiplicará por este color. También será el color por defecto para los "
-"vértices no definidos en [code]vertex_colors[/code]."
-
msgid "The offset applied to each vertex."
msgstr "El desplazamiento se aplicó a cada vértice."
-msgid ""
-"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
-msgstr ""
-"La textura de relleno del polígono. Usa [code]uv[/code] para establecer las "
-"coordenadas de la textura."
-
-msgid ""
-"Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] "
-"the texture's origin (its top-left corner) will be placed at the polygon's "
-"[code]position[/code]."
-msgstr ""
-"Cantidad para compensar la [code]texture[/code] del polígono. Si [code](0, 0)"
-"[/code] el origen de la textura (su esquina superior izquierda) se colocará "
-"en la [code]position[/code] del polígono."
-
msgid "The texture's rotation in radians."
msgstr "La rotación de la textura en radianes."
-msgid ""
-"Amount to multiply the [code]uv[/code] coordinates when using a "
-"[code]texture[/code]. Larger values make the texture smaller, and vice versa."
-msgstr ""
-"Cantidad para multiplicar las coordenadas [code]uv[/code] cuando se utiliza "
-"una [code]texture[/code]. Valores más grandes hacen que la textura sea más "
-"pequeña, y viceversa."
-
-msgid ""
-"Texture coordinates for each vertex of the polygon. There should be one "
-"[code]uv[/code] per polygon vertex. If there are fewer, undefined vertices "
-"will use [code](0, 0)[/code]."
-msgstr ""
-"Las coordenadas de la textura de cada vértice del polígono. Debería haber un "
-"[code]uv[/code] por vértice del polígono. Si hay menos vértices no definidos "
-"se usará [code](0, 0)[/code]."
-
-msgid ""
-"Color for each vertex. Colors are interpolated between vertices, resulting in "
-"smooth gradients. There should be one per polygon vertex. If there are fewer, "
-"undefined vertices will use [code]color[/code]."
-msgstr ""
-"Color para cada vértice. Los colores se interpolan entre los vértices, lo que "
-"resulta en gradientes suaves. Debería haber uno por vértice del polígono. Si "
-"hay menos vértices no definidos se usará [code]color[/code]."
-
msgid ""
"[PopupMenu] is a modal window used to display a list of options. Useful for "
"toolbars and context menus.\n"
@@ -15400,17 +15720,6 @@ msgstr ""
"Devuelve [code]true[/code] si el incremento fue exitoso, [code]false[/code] "
"en caso contrario."
-msgid ""
-"Decrements the internal reference counter. Use this only if you really know "
-"what you are doing.\n"
-"Returns [code]true[/code] if the decrement was successful, [code]false[/code] "
-"otherwise."
-msgstr ""
-"Disminuye el contador de referencia interno. Usa esto sólo si realmente sabes "
-"lo que estás haciendo.\n"
-"Devuelve [code]true[/code] si el decremento tuvo éxito, [code]false[/code] en "
-"caso contrario."
-
msgid ""
"If [code]true[/code], computes shadows in the reflection probe. This makes "
"the reflection probe slower to render; you may want to disable this if using "
@@ -16501,48 +16810,6 @@ msgstr ""
"para cerrar manualmente los BBCodes. No necesita seguir los métodos "
"[code]add_*[/code]."
-msgid ""
-"Adds a [code][font][/code] tag with a bold font to the tag stack. This is the "
-"same as adding a [code][b][/code] tag if not currently in a [code][i][/code] "
-"tag."
-msgstr ""
-"Añade una etiqueta [code][font][/code] con una fuente en negrita a la pila de "
-"etiquetas. Esto es lo mismo que añadir una etiqueta [code]b[/code] si no está "
-"actualmente en una etiqueta [code]i[/code]."
-
-msgid ""
-"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
-msgstr ""
-"Añade una etiqueta [code]font[/code] con una fuente en negrita y cursiva a la "
-"pila de etiquetas."
-
-msgid ""
-"Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]"
-"[table][/code] tag. See [method push_table] for details."
-msgstr ""
-"Añade una etiqueta de [code]cell[/code] a la pila de etiquetas. Debe estar "
-"dentro de una etiqueta [code]table[/code]. Ver [method push_table] para más "
-"detalles."
-
-msgid "Adds a [code][color][/code] tag to the tag stack."
-msgstr "Añade una etiqueta de [code]color[/code] a la pila de etiquetas."
-
-msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
-msgstr ""
-"Añade una etiqueta [code]font[/code] con una fuente monoespacio a la pila de "
-"etiquetas."
-
-msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
-msgstr ""
-"Añade una etiqueta [code]font[/code] con una fuente normal a la pila de "
-"etiquetas."
-
-msgid "Adds a [code][s][/code] tag to the tag stack."
-msgstr "Añade una etiqueta de [code]s[/code] a la pila de etiquetas."
-
-msgid "Adds a [code][u][/code] tag to the tag stack."
-msgstr "Añade una etiqueta [code]u[/code] a la pila de etiquetas."
-
msgid "If [code]true[/code], a right-click displays the context menu."
msgstr ""
"Si [code]true[/code], un clic con el botón derecho del ratón muestra el menú "
@@ -16558,13 +16825,6 @@ msgstr ""
"Para añadir un efecto personalizado, es más conveniente usar [method "
"install_effect]."
-msgid ""
-"If [code]true[/code], the label underlines meta tags such as [code][url]{text}"
-"[/url][/code]."
-msgstr ""
-"Si [code]true[/code], la etiqueta subraya las metaetiquetas como [code][url]"
-"{text}[/url][/code]."
-
msgid ""
"If [code]true[/code], the scrollbar is visible. Setting this to [code]false[/"
"code] does not block scrolling completely. See [method scroll_to_line]."
@@ -16598,20 +16858,6 @@ msgstr ""
"[code]\\t[/code] en las etiquetas de texto, sólo a las etiquetas con "
"indentado."
-msgid ""
-"Triggered when the user clicks on content between meta tags. If the meta is "
-"defined in text, e.g. [code][url={\"data\"=\"hi\"}]hi[/url][/code], then the "
-"parameter for this signal will be a [String] type. If a particular type or an "
-"object is desired, the [method push_meta] method must be used to manually "
-"insert the data into the tag stack."
-msgstr ""
-"Se activa cuando el usuario hace clic en el contenido entre las meta "
-"etiquetas. Si el meta se define en texto, por ejemplo, [code]"
-"[url={\"data\"=\"hi\"}]hi[/url][/code], entonces el parámetro para esta señal "
-"será del tipo [String]. Si se desea un tipo o un objeto determinado, se debe "
-"utilizar el método [method push_meta] para insertar manualmente los datos en "
-"la pila de etiquetas."
-
msgid "Triggers when the mouse exits a meta tag."
msgstr "Se activa cuando el ratón sale de una meta etiqueta."
@@ -17073,12 +17319,6 @@ msgstr ""
msgid "The [Shader] program used to render this material."
msgstr "El programa [Shader] utilizado para renderizar este material."
-msgid "If [code]true[/code], collision with [Area2D]s will be reported."
-msgstr "Si [code]true[/code], se informará de la colisión con [Area2D]s."
-
-msgid "If [code]true[/code], collision with [PhysicsBody2D]s will be reported."
-msgstr "Si [code]true[/code], se informará de la colisión con [PhysicsBody2D]."
-
msgid "A shortcut for binding input."
msgstr "Un atajo para vincular la entrada."
@@ -17248,20 +17488,6 @@ msgstr ""
"Si [code]true[/code], el [SpinBox] será editable. De lo contrario, sólo será "
"de lectura."
-msgid ""
-"Adds the specified [code]prefix[/code] string before the numerical value of "
-"the [SpinBox]."
-msgstr ""
-"Añade la string especificada del [code]prefix[/code] antes del valor numérico "
-"del [SpinBox]."
-
-msgid ""
-"Adds the specified [code]suffix[/code] string after the numerical value of "
-"the [SpinBox]."
-msgstr ""
-"Añade la string especificada del [code]prefix[/code] antes del valor numérico "
-"del [SpinBox]."
-
msgid ""
"Clamps the [member split_offset] value to not go outside the currently "
"possible minimal and maximum values."
@@ -18064,9 +18290,6 @@ msgstr ""
"Se emite cuando se hace clic en el botón [Popup] del [TabContainer]. Consulte "
"[method set_popup] para obtener más detalles."
-msgid "Emitted when a tab is selected, even if it is the current tab."
-msgstr "Se emite cuando se selecciona una pestaña, aunque sea la actual."
-
msgid "The icon for the menu button (see [method set_popup])."
msgstr "El icono para el botón de menú (ver [method set_popup])."
@@ -18407,23 +18630,6 @@ msgstr "El ancho de la columna derecha del 9-patch."
msgid "The height of the 9-patch's top row."
msgstr "La altura de la fila superior del 9-patch."
-msgid ""
-"Multiplies the color of the bar's [code]texture_over[/code] texture. The "
-"effect is similar to [member CanvasItem.modulate], except it only affects "
-"this specific texture instead of the entire node."
-msgstr ""
-"Multiplica el color de la textura [code]texture_over[/code] de la barra. El "
-"efecto es similar al de [member CanvasItem.modulate], excepto que sólo afecta "
-"a esta textura específica en lugar de a todo el nodo."
-
-msgid "Multiplies the color of the bar's [code]texture_progress[/code] texture."
-msgstr ""
-"Multiplica el color de la textura [code]texture_progress[/code] de la barra."
-
-msgid "Multiplies the color of the bar's [code]texture_under[/code] texture."
-msgstr ""
-"Multiplica el color de la textura [code]texture_under[/code] de la barra."
-
msgid "The [member texture_progress] fills from left to right."
msgstr "El [member texture_progress] se llena de izquierda a derecha."
@@ -18616,28 +18822,6 @@ msgstr ""
"representan [member x], [member y], y el [member origin] (los tres vectores "
"de la columna)."
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation, scaling and translation."
-msgstr ""
-"Devuelve el inverso de la transformada, bajo el supuesto de que la "
-"transformación se compone de rotación, escalado y traslación."
-
-msgid ""
-"Returns a vector transformed (multiplied) by the basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"Devuelve un vector transformado (multiplicado) por la matriz base.\n"
-"Este método no tiene en cuenta la translación (el vector de origen."
-
-msgid ""
-"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"Devuelve un vector transformado (multiplicado) por la matriz de base "
-"inversa.\n"
-"Este método no tiene en cuenta la traducción (el vector de origen)."
-
msgid "Returns the transform's origin (translation)."
msgstr "Devuelve el origen de la transformada (translación)."
@@ -18647,15 +18831,6 @@ msgstr "Devuelve la rotación de la transformada (en radianes)."
msgid "Returns the scale."
msgstr "Devuelve la escala."
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-"Devuelve el inverso de la transformada, bajo el supuesto de que la "
-"transformación se compone de rotación y traslación (sin escalamiento, utilice "
-"[method affine_inverse] para las transformadas con escalamiento)."
-
msgid ""
"Returns the transform with the basis orthogonal (90 degrees), and normalized "
"axis vectors (scale of 1 or -1)."
@@ -18881,13 +19056,6 @@ msgstr "Emitido cuando se edita un artículo."
msgid "Emitted when an item is selected."
msgstr "Emitido cuando se selecciona un elemento."
-msgid ""
-"Emitted instead of [code]item_selected[/code] if [code]select_mode[/code] is "
-"[constant SELECT_MULTI]."
-msgstr ""
-"Emitido en lugar de [code]item_selected[/code] si [code]select_mode[/code] es "
-"[constant SELECT_MULTI]."
-
msgid "Emitted when a left mouse button click does not select any item."
msgstr ""
"Emitido cuando un clic con el botón izquierdo del ratón no selecciona ningún "
@@ -20038,36 +20206,6 @@ msgstr "Los objetos se muestran normalmente."
msgid "Objects are displayed in wireframe style."
msgstr "Los objetos se muestran en el estilo wireframe."
-msgid "Enables certain nodes only when approximately visible."
-msgstr "Habilita ciertos nodos sólo cuando son aproximadamente visibles."
-
-msgid ""
-"If [code]true[/code], the bounding rectangle is on the screen.\n"
-"[b]Note:[/b] It takes one frame for the node's visibility to be assessed once "
-"added to the scene tree, so this method will return [code]false[/code] right "
-"after it is instantiated, even if it will be on screen in the draw pass."
-msgstr ""
-"Si [code]true[/code], el rectángulo delimitador está en la pantalla.\n"
-"[b]Nota:[/b] Se necesita un fotograma para evaluar la visibilidad del nodo "
-"una vez añadido al árbol de la escena, por lo que este método devolverá "
-"[code]false[/code] justo después de ser instanciado, aun si está en pantalla "
-"en el pase de dibujado."
-
-msgid "Detects approximately when the node is visible on screen."
-msgstr "Detecta aproximadamente cuando el nodo es visible en la pantalla."
-
-msgid ""
-"If [code]true[/code], the bounding box is on the screen.\n"
-"[b]Note:[/b] It takes one frame for the node's visibility to be assessed once "
-"added to the scene tree, so this method will return [code]false[/code] right "
-"after it is instantiated, even if it will be on screen in the draw pass."
-msgstr ""
-"Si [code]true[/code], el cuadro delimitador está en la pantalla.\n"
-"[b]Nota:[/b] Se necesita un fotograma para evaluar la visibilidad del nodo "
-"una vez añadido al árbol de la escena, por lo que este método devolverá "
-"[code]false[/code] justo después de ser instanciado, aunque esté en pantalla "
-"en el pase de dibujado."
-
msgid "Parent of all visual 3D nodes."
msgstr "Padre de todos los nodos visuales 3D."
@@ -20156,24 +20294,6 @@ msgstr ""
"previa. Si se establece en [code]-1[/code] no se abrirá ningún puerto para la "
"vista previa."
-msgid ""
-"Floating-point scalar. Translated to [code]float[/code] type in shader code."
-msgstr "Escalar real. Traducido a tipo [code]float[/code] en código shader."
-
-msgid ""
-"3D vector of floating-point values. Translated to [code]vec3[/code] type in "
-"shader code."
-msgstr ""
-"Vector 3D de valores de reales. Traducido a tipo [code]vec3[/code] en código "
-"shader."
-
-msgid "Boolean type. Translated to [code]bool[/code] type in shader code."
-msgstr "Tipo booleano. Traducido al tipo [code]bool[/code] en código shader."
-
-msgid "Transform type. Translated to [code]mat4[/code] type in shader code."
-msgstr ""
-"Tipo de transformada. Traducido al tipo [code]mat4[/code] en código shader."
-
msgid ""
"Sampler type. Translated to reference of sampler uniform in shader code. Can "
"only be used for input ports in non-uniform nodes."
@@ -20188,13 +20308,6 @@ msgid "A boolean constant to be used within the visual shader graph."
msgstr ""
"Una constante booleana para ser usada dentro del gráfico visual del shader."
-msgid ""
-"Has only one output port and no inputs.\n"
-"Translated to [code]bool[/code] in the shader language."
-msgstr ""
-"Sólo tiene un puerto de salida y no tiene entradas.\n"
-"Traducido a [code]bool[/code] en el lenguaje de los shaders."
-
msgid "A boolean constant which represents a state of this node."
msgstr "Una constante booleana que representa un estado de este nodo."
@@ -21176,16 +21289,16 @@ msgid "Natural logarithm."
msgstr "Logaritmo natural."
msgid "Base-2 logarithm."
-msgstr "Logarítmo en base 2."
+msgstr "Logaritmo en base 2."
msgid "Converts a quantity in degrees to radians."
msgstr "Convierte una cantidad en grados a radianes."
msgid "Finds the nearest integer to the parameter."
-msgstr "Encuentra el entero más cercano al parámetro."
+msgstr "Encuentra el número entero más cercano al parámetro."
msgid "Finds the nearest even integer to the parameter."
-msgstr "Encuentra el entero par más cercano al parámetro."
+msgstr "Encuentra el número entero par más cercano al parámetro."
msgid ""
"Extracts the sign of the parameter, i.e. returns [code]-1[/code] if the "
diff --git a/doc/translations/fr.po b/doc/translations/fr.po
index da719746307..758dde49071 100644
--- a/doc/translations/fr.po
+++ b/doc/translations/fr.po
@@ -82,13 +82,18 @@
# Oliv Spaï , 2023.
# Roger Dupond <1gonnet.arthur1@gmail.com>, 2023.
# VBasic , 2023.
+# CedricLeChaton , 2023.
+# Gouvernon Stan , 2023.
+# Benjamin Brasseur , 2023.
+# Rertsyd , 2023.
+# Calimelo , 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-10-01 21:59+0000\n"
-"Last-Translator: TechnoPorg \n"
+"PO-Revision-Date: 2023-11-03 04:56+0000\n"
+"Last-Translator: Calimelo \n"
"Language-Team: French \n"
"Language: fr\n"
@@ -96,7 +101,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.1-dev\n"
+"X-Generator: Weblate 5.2-dev\n"
msgid "Description"
msgstr "Description"
@@ -129,19 +134,19 @@ msgid "Constants"
msgstr "Constantes"
msgid "Property Descriptions"
-msgstr "Description des propriétés"
+msgstr "Descriptions des propriétés"
msgid "Constructor Descriptions"
-msgstr "Détails des constructeurs"
+msgstr "Descriptions des constructeurs"
msgid "Method Descriptions"
msgstr "Descriptions des méthodes"
msgid "Operator Descriptions"
-msgstr "Détails des opérateurs"
+msgstr "Descriptions des opérateurs"
msgid "Theme Property Descriptions"
-msgstr "Description des propriétés de thème"
+msgstr "Descriptions des propriétés du thème"
msgid "Inherits:"
msgstr "Hérite de :"
@@ -156,7 +161,7 @@ msgid "Default"
msgstr "Défaut"
msgid "Setter"
-msgstr "Donneur"
+msgstr "Setter"
msgid "value"
msgstr "valeur"
@@ -208,57 +213,57 @@ msgid ""
"There is currently no description for this class. Please help us by :ref:"
"`contributing one `!"
msgstr ""
-"Il n'y a actuellement pas de description pour cette classe. Aidez-nous en en :"
-"ref:`contribuant une ` !"
+"Il n'y a actuellement pas de description pour cette classe. Aidez-nous en :"
+"ref:`contribuant une ` !"
msgid ""
"There is currently no description for this signal. Please help us by :ref:"
"`contributing one `!"
msgstr ""
-"Il n'y a actuellement aucune description pour ce signal. Aidez-nous en :ref : "
-"`contribuant un ` !"
+"Il n'y a actuellement aucune description pour ce signal. Aidez-nous en :ref:"
+"`contribuant une ` !"
msgid ""
"There is currently no description for this annotation. Please help us by :ref:"
"`contributing one `!"
msgstr ""
-"Il n'y a actuellement aucune description pour cette annotation. Veuillez nous "
-"aider en :ref :`contribuant un ` !"
+"Il n'y a actuellement aucune description pour cette annotation. Aidez-nous "
+"en :ref:`contribuant une ` !"
msgid ""
"There is currently no description for this property. Please help us by :ref:"
"`contributing one `!"
msgstr ""
-"Il n'y a actuellement aucune description pour ce projet. Veuillez nous aider "
-"en:ref:`contribuant un `!"
+"Il n'y a actuellement aucune description pour cette propriété. Aidez-nous en :"
+"ref:`contribuant une ` !"
msgid ""
"There is currently no description for this constructor. Please help us by :"
"ref:`contributing one `!"
msgstr ""
"Il n'y a actuellement pas de description pour ce constructeur. Aidez-nous en :"
-"ref:`contribuant une `!"
+"ref:`contribuant une ` !"
msgid ""
"There is currently no description for this method. Please help us by :ref:"
"`contributing one `!"
msgstr ""
"Il n'y a actuellement aucune description pour cette méthode. Aidez-nous en :"
-"ref:`fournissant une `!"
+"ref:`contribuant une ` !"
msgid ""
"There is currently no description for this operator. Please help us by :ref:"
"`contributing one `!"
msgstr ""
"Il n'y a actuellement aucune description pour cet opérateur. Aidez-nous en :"
-"ref:`effectuant une `!"
+"ref:`contribuant une ` !"
msgid ""
"There is currently no description for this theme property. Please help us by :"
"ref:`contributing one `!"
msgstr ""
"Il n'y a actuellement pas de description pour cette propriété de thème. Aidez-"
-"nous en en :ref:`contribuant une` !"
+"nous en :ref:`contribuant une ` !"
msgid ""
"There are notable differences when using this API with C#. See :ref:"
@@ -387,6 +392,31 @@ msgstr ""
"a = char(8364) # a vaut « € »\n"
"[/codeblock]"
+msgid ""
+"[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.\n"
+"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 ""
+"[i]Déprécié.[/i] Utilisez [method @GlobalScope.type_convert] à la place.\n"
+"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."
@@ -698,6 +728,106 @@ msgstr ""
"[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() - 1, -1, -1):\n"
+" print(array[i])\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() - 1, -1, -1):\n"
+" print(array[i])\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"
@@ -767,39 +897,18 @@ msgid ""
"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, c'est-à-dire qu'un test de différence "
-"[code]!=[/code] retournera [code]true[/code] ([code]NAN == NAN[/code] "
-"retourne [code]false[/code] et [code]NAN != NAN[/code] retourne[code]true[/"
-"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 ""
-"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 ""
-"Marquer la propriété suivante comme exportée (modifiable dans le \"Inspector "
-"Dock\" et enregistrée sur le disque). Pour contrôler le type de la propriété "
-"exportée, utilisez la notation \"type hint\".\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]"
+"\"Not a Number\" (littéralement : pas un nombre), un nombre flottant (nombre "
+"à virgule) invalide. [constant NAN] a des propriétés particulières, notamment "
+"que [code] !=[/code] retourne toujours [code]true[/code], tandis que les "
+"autres comparateurs retournerons toujours [code]false[/code]. Cela est vrai "
+"meme en le comparant à lui-même ([code]NAN == NAN[/code] retourne "
+"[code]false[/code] et [code]NAN != NAN[/code] retourne [code]true[/code]). "
+"NAN est retourné par certaines operations invalides telles que diviser un "
+"nombre flottant [code]0.0[/code] par [code]0.0[/code].\n"
+"[b]Attention : [/b] \"Not a Number\" est un concept seulement pour les "
+"nombres flottants et n'a pas d’équivalent pour les nombres entiers. Diviser "
+"un nombre entier [code]0[/code] par [code]0[/code] ne donnera pas un "
+"[constant NAN] et mais une erreur d’exécution à la place."
msgid ""
"Define a new category for the following exported properties. This helps to "
@@ -961,6 +1070,58 @@ msgstr ""
"@export_file(\"*.txt\") var notes_path: String\n"
"[/codeblock]"
+msgid ""
+"Export an integer property as a bit flag field. This allows to store several "
+"\"checked\" or [code]true[/code] values with one property, and comfortably "
+"select them from the Inspector dock.\n"
+"See also [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"You can add explicit values using a colon:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"You can also combine several flags:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [annotation @export_enum], the previous explicit value is "
+"not taken into account. In the following example, A is 16, B is 2, C is 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+msgstr ""
+"Exporte une propriété entière en tant que champ de bit flag. Cela permet de "
+"stocker plusieurs valeurs \"vérifiée\" ou [code]true[/code] avec une "
+"propriété, et de les sélectionner aisément depuis la barre d'outils de "
+"l'Inspecteur.\n"
+"Voir également [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Feu\", \"Eau\", \"Terre\", \"Vent\") var éléments_sort = 0\n"
+"[/codeblock]\n"
+"Vous pouvez ajouter des valeurs explicites en utilisant les deux-points :\n"
+"[codeblock]\n"
+"@export_flags(\"Soi:4\", \"Alliés:8\", \"Ennemis:16\") var cibles_sort = 0\n"
+"[/codeblock]\n"
+"Vous pouvez aussi combiner plusieurs options :\n"
+"[codeblock]\n"
+"@export_flags(\"Soi:4\", \"Alliés:8\", \"Alliés et soi:12\", \"Ennemis:16\")\n"
+"var cibles_sort = 0\n"
+"[/codeblock]\n"
+"[b]Note :[/b] Une valeur de drapeau doit être au minimum [code]1[/code] et au "
+"maximum [code]2 ** 32 - 1[/code].\n"
+"[b]Note :[/b] Contrairement à [annotation @export_enum], la valeur explicite "
+"précédente n'est pas prise en compte. Dans l'exemple suivant, A est 16, B est "
+"2, C est 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+
msgid ""
"Export an integer property as a bit flag field for 2D navigation layers. The "
"widget in the Inspector dock will use the layer names defined in [member "
@@ -979,6 +1140,24 @@ msgstr ""
"@export_flags_2d_navigation var navigation_layers : int\n"
"[/codeblock]"
+msgid ""
+"Export an integer property as a bit flag field for 2D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"Exporte une propriété entière en un champ de bit flag pour les calques de "
+"physique 2D. Le widget dans la barre d'outils de l'Inspecteur utilisera les "
+"noms des calques définis dans [member ProjectSettings.layer_names/2d_physics/"
+"layer_1].\n"
+"Voir également [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\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 "
@@ -1125,6 +1304,25 @@ msgstr ""
"@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]\n"
+"[b]Note:[/b] The type must be a native class or a globally registered script "
+"(using the [code]class_name[/code] keyword) that inherits [Node]."
+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]\n"
+"[b]Note:[/b] Le type doit être une classe native ou un script enregistré "
+"globalement (utilisant le mot-clé [code]class_name[/code] ) qui hérite de "
+"[Node]."
+
msgid ""
"Export a [String] property with a placeholder text displayed in the editor "
"widget when no value is present.\n"
@@ -1270,31 +1468,6 @@ msgstr ""
msgid "Converts from decibels to linear energy (audio)."
msgstr "Convertit les décibels en énergie linéaire (audio)."
-msgid ""
-"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
-"from 0. Supported types: [int], [float], [Vector2], [Vector3], [Vector4].\n"
-"[codeblock]\n"
-"round(2.4) # Returns 2\n"
-"round(2.5) # Returns 3\n"
-"round(2.6) # Returns 3\n"
-"[/codeblock]\n"
-"See also [method floor], [method ceil], and [method snapped].\n"
-"[b]Note:[/b] For better type safety, use [method roundf], [method roundi], "
-"[method Vector2.round], [method Vector3.round], or [method Vector4.round]."
-msgstr ""
-"Arrondit [param x] au nombre entier le plus proche, avec les cas à mi-chemin "
-"arrondis vers l'entier supérieur. Les types supportés sont : [int], [float], "
-"[Vector2], [Vector3], [Vector4].\n"
-"[codeblock]\n"
-"round(2.4) # Retourne 2\n"
-"round(2.5) # Retourne 3\n"
-"round(2.6) # Retourne 3\n"
-"[/codeblock]\n"
-"Consultez aussi [method floor], [method ceil], [method snapped].\n"
-"[b]Note :[/b] Pour une meilleure sécurité des types, utilisez [method "
-"roundf], [method roundi], [method Vector2.round], [method Vector3.round], ou "
-"[method Vector4.round]."
-
msgid "The [AudioServer] singleton."
msgstr "Le singleton [AudioServer]."
@@ -2484,6 +2657,19 @@ msgstr ""
"Ajoute une [LineEdit] dans le dialogue. Quand on appuie sur la touche entrée, "
"le dialogue sera accepté."
+msgid ""
+"Removes the [param button] from the dialog. Does NOT free the [param button]. "
+"The [param button] must be a [Button] added with [method add_button] or "
+"[method add_cancel_button] method. After removal, pressing the [param button] "
+"will no longer emit this dialog's [signal custom_action] or [signal canceled] "
+"signals."
+msgstr ""
+"Retire le [param button] de la boite de dialogue. Ne libère PAS le [param "
+"button]. Le [param button] doit être un [Button] ajouté avec la méthode "
+"[method add_button] ou [method add_cancel_button]. Après retrait, appuyer sur "
+"[param button] n'émettra plus les signaux [signal custom_action] ou [signal "
+"canceled] de la boite de dialogue."
+
msgid "Sets autowrapping for the text in the dialog."
msgstr ""
"Défini le retour à la ligne automatique du texte dans la fenêtre de dialogue."
@@ -3125,6 +3311,25 @@ msgstr ""
"[b]Note :[/b] Si une animation en boucle joue actuellement, l'animation "
"ajoutée ne sera jamais joué à moins que l'animation en boucle ne soit arrêtée."
+msgid ""
+"Seeks the animation to the [param seconds] point in time (in seconds). If "
+"[param update] is [code]true[/code], the animation updates too, otherwise it "
+"updates at process time. Events between the current frame and [param seconds] "
+"are skipped.\n"
+"If [param update_only] is true, the method / audio / animation playback "
+"tracks will not be processed.\n"
+"[b]Note:[/b] Seeking to the end of the animation doesn't emit [signal "
+"AnimationMixer.animation_finished]. If you want to skip animation and emit "
+"the signal, use [method AnimationMixer.advance]."
+msgstr ""
+"Avance la lecture de l'animation à la position [param seconds] dans le temps "
+"(en secondes). Si [param update] est [code]true[/code], l'animation se mettra "
+"également à jour, sinon elle le sera au moment du traitement. Les événements "
+"entre la trame actuel et la position [param seconds] sont ignorés.\n"
+"[b]Note :[/b] Aller à la fin de l'animation n'émet pas le signal [signal "
+"AnimationMixer.animation_finished]. Si vous souhaitez ignorer l'animation et "
+"émettre le signal, utilisez plutôt [method AnimationMixer.advance]."
+
msgid "The position (in seconds) of the currently playing animation."
msgstr "La position (en secondes) de l'animation actuellement jouée."
@@ -3191,14 +3396,15 @@ msgstr ""
msgid "If [code]true[/code], other monitoring areas can detect this area."
msgstr ""
-"Si [code]true[/code], les autres aires surveillantes peut détecter cette aire."
+"Si [code]true[/code], les autres aires surveillantes peuvent détecter cette "
+"aire."
msgid ""
"If [code]true[/code], the area detects bodies or areas entering and exiting "
"it."
msgstr ""
-"Si [code]true[/code], l'aire détecte les corps et aires lui entrants dedans "
-"ou sortants d'elle."
+"Si [code]true[/code], l'aire détecte les corps qui y entrent ou qui en "
+"sortent."
msgid "This area does not affect gravity/damping."
msgstr "Cette aire n'influe pas sur la gravité/amortissement."
@@ -3548,13 +3754,6 @@ msgid ""
"Removes the point associated with the given [param id] from the points pool."
msgstr "Retire le point associé à l'[param id] donné du pool des points."
-msgid ""
-"Returns the capacity of the structure backing the points, useful in "
-"conjunction with [code]reserve_space[/code]."
-msgstr ""
-"Retourne la capacité de la structure qui garde les points en cache, utile "
-"avec [code]reserve_space[/code]."
-
msgid ""
"Returns an array with the points that are in the path found by AStar3D "
"between the given points. The array is ordered from the starting point to the "
@@ -4280,10 +4479,10 @@ msgstr "L'objet [AudioStream] à jouer."
msgid ""
"If [code]true[/code], the playback is paused. You can resume it by setting "
-"[code]stream_paused[/code] to [code]false[/code]."
+"[member stream_paused] to [code]false[/code]."
msgstr ""
"Si [code]true[/code], la lecture est en pause. Vous pouvez la reprendre en "
-"mettant [code]stream_paused[/code] à [code]false[/code]."
+"définissant [member stream_paused] à [code]false[/code]."
msgid "Volume of sound, in dB."
msgstr "Le volume du son, en décibels (dB)."
@@ -4359,13 +4558,6 @@ msgstr ""
msgid "The [AudioStream] resource to be played."
msgstr "La ressource [AudioStream] à jouer."
-msgid ""
-"If [code]true[/code], the playback is paused. You can resume it by setting "
-"[member stream_paused] to [code]false[/code]."
-msgstr ""
-"Si [code]true[/code], la lecture est en pause. Vous pouvez la reprendre en "
-"définissant [member stream_paused] à [code]false[/code]."
-
msgid ""
"The factor for the attenuation effect. Higher values make the sound audible "
"over a larger distance."
@@ -5001,17 +5193,6 @@ msgstr ""
"Le vecteur Z (la colonne 2) de la matrice de la base. Équivalent à l'index de "
"tableau [code]2[/code]."
-msgid ""
-"The identity basis, with no rotation or scaling applied.\n"
-"This is identical to calling [code]Basis()[/code] without any parameters. "
-"This constant can be used to make your code clearer, and for consistency with "
-"C#."
-msgstr ""
-"La base d'identité, sans rotation ni mise à l'échelle.\n"
-"Ceci est identique à [code]Basis()[/code] sans aucun paramètre. Cette "
-"constante peut être utilisée pour que votre code soit plus clair, et pour la "
-"cohérence avec C#."
-
msgid ""
"The basis that will flip something along the X axis when used in a "
"transformation."
@@ -5069,14 +5250,6 @@ msgstr "Définit une valeur spécifique pour une portion rectangulaire du bitmap
msgid "Stores the node's current transforms in [member rest]."
msgstr "Enregistre la transformation actuelle du nœud dans [member rest]."
-msgid ""
-"Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have "
-"a parent, or its rest pose relative to its parent."
-msgstr ""
-"Retourne la [code]Transform2D[/code] du nœud pour la position de repos "
-"[member rest] s'il n'a pas de parent, ou si sa position de repos est relative "
-"à son parent."
-
msgid ""
"Rest transform of the bone. You can reset the node's transforms to this value "
"using [method apply_rest]."
@@ -6880,20 +7053,6 @@ msgstr ""
"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."
-msgstr ""
-"Envoyé quand ce nœud est à l'intérieur d'un [ScrollContainer] qui a commencé "
-"à défilé."
-
-msgid ""
-"Sent when this node is inside a [ScrollContainer] which has stopped being "
-"scrolled."
-msgstr ""
-"Envoyé quand ce nœud est à l'intérieur d'un [ScrollContainer] qui a cessé de "
-"défilé."
-
msgid ""
"Show the system's arrow mouse cursor when the user hovers the node. Use with "
"[member mouse_default_cursor_shape]."
@@ -8229,18 +8388,6 @@ msgstr "Une version modifié du [FileDialog] utilisé par l'éditeur."
msgid "Removes all filters except for \"All Files (*)\"."
msgstr "Retire tous les filtres sauf \"Tous les fichiers (*)\"."
-msgid ""
-"Returns the [code]VBoxContainer[/code] used to display the file system.\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 CanvasItem.visible] property."
-msgstr ""
-"Retourne le [code]VBoxContainer[/code] utilisé pour afficher le système de "
-"fichiers.\n"
-"[b]Avertissement :[/b] Il s'agit d'un nœud requis en interne, l'enlever et le "
-"libérer peut causer un plantage. Si vous voulez le cacher lui ou un de ses "
-"enfants, utilisez la propriété [membre CanvasItem.visible]."
-
msgid ""
"Notify the [EditorFileDialog] that its view of the data is no longer "
"accurate. Updates the view contents on next view update."
@@ -9270,9 +9417,6 @@ msgstr ""
msgid "Godot editor's control for editing numeric values."
msgstr "Le contrôle d'édition des valeurs numériques de l'éditeur Godot."
-msgid "If [code]true[/code], the slider is hidden."
-msgstr "Si [code]true[/code], le glisseur est masqué."
-
msgid ""
"Register a reference for \"do\" that will be erased if the \"do\" history is "
"lost. This is useful mostly for new nodes created for the \"do\" call. Do not "
@@ -9429,29 +9573,6 @@ msgstr ""
msgid "Environment and post-processing"
msgstr "Les environnements et les effets post-rendu"
-msgid ""
-"The global brightness value of the rendered scene. Effective only if "
-"[code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"La luminosité globale des scènes rendues. Ne fonctionne que si "
-"[code]adjustment_enabled[/code] est [code]true[/code]."
-
-msgid ""
-"The global contrast value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"La valeur globale du contraste dans les scènes rendues (la valeur par défaut "
-"est 1). Ne fonctionne que si [code]adjustment_enabled[/code] est [code]true[/"
-"code]."
-
-msgid ""
-"The global color saturation value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"La valeur globale de la saturation des couleurs dans les scènes rendues (la "
-"valeur par défaut est 1). Ne fonctionne que si [code]adjustment_enabled[/"
-"code] est [code]true[/code]."
-
msgid "The ID of the camera feed to show in the background."
msgstr "L'identifiant du flux de la caméra à afficher en arrière-plan."
@@ -10061,11 +10182,6 @@ msgstr "Le [Mesh] qui est affiché lors de la troisième passe."
msgid "[Mesh] that is drawn for the fourth draw pass."
msgstr "Le [Mesh] qui est affiché lors de la quatrième passe."
-msgid ""
-"If [code]true[/code], only [code]amount[/code] particles will be emitted."
-msgstr ""
-"Si [code]true[/code], seuls [code]amount[/code] particules seront émises."
-
msgid "Emission randomness ratio."
msgstr "Facteur d'aléatoire de l'émission."
@@ -11075,6 +11191,25 @@ msgstr ""
"Définit un [Material] pour une surface donnée. Le rendu de la surface sera "
"faite utilisant ce matériau."
+msgid ""
+"The [Input] singleton handles key presses, mouse buttons and movement, "
+"gamepads, and input actions. Actions and their events can be set in the "
+"[b]Input Map[/b] tab in [b]Project > Project Settings[/b], or with the "
+"[InputMap] class.\n"
+"[b]Note:[/b] [Input]'s methods reflect the global input state and are not "
+"affected by [method Control.accept_event] or [method Viewport."
+"set_input_as_handled], as those methods only deal with the way input is "
+"propagated in the [SceneTree]."
+msgstr ""
+"Le singleton [Input] gère les pressions de touches, les clics et mouvements "
+"de souris, les manettes et les points d'entrées d'actions. Les actions et "
+"leurs évènements peuvent être configurés depuis l'onglet [b]Contrôles[/b] "
+"dans [b]Projet > Paramètres du projet...[/b], ou avec la classe [InputMap].\n"
+"[b]Note:[/b] Les méthodes d'[Input] reflètent l'état général des entrées et "
+"ne sont pas altérées par [method Control.accept_event] ou [method Viewport."
+"set_input_as_handled], étant donné que ces méthodes ne s'occupent que de la "
+"manière dont les entrées sont propagées dans le [SceneTree]."
+
msgid "If the specified action is already pressed, this will release it."
msgstr "Si l'action spécifiée est déjà pressé, elle sera relâchée."
@@ -11363,6 +11498,66 @@ msgstr "Type d'adresse : Protocole internet version 6 (IPv6)."
msgid "Address type: Any."
msgstr "Type d'adresse : N'importe laquelle."
+msgid ""
+"This control provides a vertical list of selectable items that may be in a "
+"single or in multiple columns, with each item having options for text and an "
+"icon. Tooltips are supported and may be different for every item in the "
+"list.\n"
+"Selectable items in the list may be selected or deselected and multiple "
+"selection may be enabled. Selection with right mouse button may also be "
+"enabled to allow use of popup context menus. Items may also be \"activated\" "
+"by double-clicking them or by pressing [kbd]Enter[/kbd].\n"
+"Item text only supports single-line strings. Newline characters (e.g. "
+"[code]\\n[/code]) in the string won't produce a newline. Text wrapping is "
+"enabled in [constant ICON_MODE_TOP] mode, but the column's width is adjusted "
+"to fully fit its content by default. You need to set [member "
+"fixed_column_width] greater than zero to wrap the text.\n"
+"All [code]set_*[/code] methods allow negative item indices, i.e. [code]-1[/"
+"code] to access the last item, [code]-2[/code] to select the second-to-last "
+"item, and so on.\n"
+"[b]Incremental search:[/b] Like [PopupMenu] and [Tree], [ItemList] supports "
+"searching within the list while the control is focused. Press a key that "
+"matches the first letter of an item's name to select the first item starting "
+"with the given letter. After that point, there are two ways to perform "
+"incremental search: 1) Press the same key again before the timeout duration "
+"to select the next item starting with the same letter. 2) Press letter keys "
+"that match the rest of the word before the timeout duration to match to "
+"select the item in question directly. Both of these actions will be reset to "
+"the beginning of the list if the timeout duration has passed since the last "
+"keystroke was registered. You can adjust the timeout duration by changing "
+"[member ProjectSettings.gui/timers/incremental_search_max_interval_msec]."
+msgstr ""
+"Ce contrôle fournit une liste verticale l'objets sélectionnables qui peuvent "
+"arrangés en une ou plusieurs colonnes avec pour chaque objet des options de "
+"texte et d'icone. Les info-bulles sont supportées et peuvent différer pour "
+"chaque objet de la liste.\n"
+"Les objets sélectionnables dans la liste peuvent être sélectionnés ou "
+"désélectionnés et la selection multiple peut être activée. La selection au "
+"clic droit peut aussi être activée pour permettre l'utilisation des menus "
+"contextuels. Les objets peuvent aussi être \"activés\" en les double cliquant "
+"ou en pressant [kbd]Entrée[/kbd].\n"
+"Le texte d'objet ne supporte que les chaîne de caractères en une ligne. Les "
+"caractères de retour a la ligne (par exemple [code]\\n[/code]) dans la chaîne "
+"ne produirons pas de retour à la ligne. L'habillage du texte est activé en "
+"mode [constant ICON_MODE_TOP], mais la largeur de colonne est ajustée pour "
+"remplir le conteneur par défaut. Vous devez ajuster [member "
+"fixed_column_width] plus grand que zéro pour habiller le texte.\n"
+"Toutes les méthodes [code]set_*[/code] acceptent des indices d'objet "
+"négatifs, par exemple [code]-1[/code] pour accéder au dernier objet, "
+"[code]-2[/code] pour l'avant dernier, etc.\n"
+"[b]Recherche incrémentale :[/b] Comme [PopupMenu] et [Tree], [ItemList] "
+"supporte la recherche dans la liste lorsque le contrôle est en focus. Appuyez "
+"sur une touche qui correspond à la premiere lettre d'un objet pour "
+"sélectionner le premier objet commençant par cette lettre. Après cela, il y à "
+"deux façons d'effectuer une recherche incrémentale : 1) Appuyez sur la meme "
+"touche pendant la fin du délai pour sélectionner l'objet suivant commençant "
+"par la meme lettre. 2) Entrer les lettres qui correspondent au reste du mot "
+"avant la fin du délai pour sélectionner l'objet directement.\n"
+"Ces deux actions retournerons au debut de la liste si le délai a expiré "
+"depuis le dernier appui enregistré. Vous pouvez ajuster la longueur du délai "
+"en changeant [member ProjectSettings.gui/timers/"
+"incremental_search_max_interval_msec]."
+
msgid "Removes all items from the list."
msgstr "Retire tous les éléments de la liste."
@@ -11796,13 +11991,6 @@ msgstr ""
msgid "Provides a base class for different kinds of light nodes."
msgstr "Fourni une classe commune aux différents types de nœuds de lumière."
-msgid ""
-"If [code]true[/code], the light only appears in the editor and will not be "
-"visible at runtime."
-msgstr ""
-"Si [code]true[/code], la lumière n'apparaît que dans l'éditeur et ne sera pas "
-"visible au lancement du jeu."
-
msgid ""
"The light's color. An [i]overbright[/i] color can be used to achieve a result "
"equivalent to increasing the light's [member light_energy]."
@@ -12033,34 +12221,6 @@ msgstr ""
"Implémenté sur les environnements de bureau si le gestionnaire de plantage "
"est activé."
-msgid ""
-"All direct children of [MarginContainer] will have a bottom margin of "
-"[code]margin_bottom[/code] pixels."
-msgstr ""
-"Tous les enfants directs de [MarginContainer] auront la marge du bas de "
-"[code]margin_bottom[/code] pixels."
-
-msgid ""
-"All direct children of [MarginContainer] will have a left margin of "
-"[code]margin_left[/code] pixels."
-msgstr ""
-"Tous les enfants directs de [MarginContainer] auront la marge gauche de "
-"[code]margin_left[/code] pixels."
-
-msgid ""
-"All direct children of [MarginContainer] will have a right margin of "
-"[code]margin_right[/code] pixels."
-msgstr ""
-"Tous les enfants directs de [MarginContainer] auront la marge droite de "
-"[code]margin_right[/code] pixels."
-
-msgid ""
-"All direct children of [MarginContainer] will have a top margin of "
-"[code]margin_top[/code] pixels."
-msgstr ""
-"Tous les enfants directs de [MarginContainer] auront la marge du haut de "
-"[code]margin_top[/code] pixels."
-
msgid "Generic 2D position hint for editing."
msgstr "Un marqueur dans l'éditeur pour une position 2D quelconque."
@@ -13295,23 +13455,6 @@ msgstr ""
"(ou ses descendants) comme [code]null[/code], si ce [member owner] n'est plus "
"un parent."
-msgid ""
-"Requests that [code]_ready[/code] be called again. Note that the method won't "
-"be called immediately, but is scheduled for when the node is added to the "
-"scene tree again (see [method _ready]). [code]_ready[/code] is called only "
-"for the node which requested it, which means that you need to request ready "
-"for each child if you want them to call [code]_ready[/code] too (in which "
-"case, [code]_ready[/code] will be called in the same order as it would "
-"normally)."
-msgstr ""
-"Demande que [code]_ready[/code] soit de nouveau appelé. Notez que la méthode "
-"va s'appeler immédiatement, mais qu'elle est prévue lorsque le nœud est "
-"ajouté à l'arborescence de scène à nouveau (voir [method _ready)]. "
-"[code]_ready[/code] est appelé seulement pour le nœud qui l'a demandé, ce qui "
-"signifie que vous devez le demander pour chaque enfant si vous voulez qu'ils "
-"appellent [code]_ready[/code] aussi (dans quel cas, [code]_ready[/code] sera "
-"appelé dans le même ordre que normalement)."
-
msgid ""
"Enables unhandled key input processing. Enabled automatically if [method "
"_unhandled_key_input] is overridden. Any calls to this before [method _ready] "
@@ -13454,16 +13597,6 @@ msgstr ""
"La notification a reçu chaque trame lorsque le drapeau du processus physique "
"interne est défini (voir [method set_physics_process_internal])."
-msgid ""
-"Notification received when the node is ready, just before [constant "
-"NOTIFICATION_READY] is received. Unlike the latter, it's sent every time the "
-"node enters tree, instead of only once."
-msgstr ""
-"La notification reçue lorsque le nœud est prêt, juste avant que [constant "
-"NOTIFICATION_READY] soit reçue. Contrairement à cette dernière, cette "
-"notification est envoyée chaque fois que le nœud entre dans l'arborescence, "
-"et pas juste une seule fois."
-
msgid "Duplicate the node's signals."
msgstr "Dupliquer les signaux du nœud."
@@ -13989,12 +14122,6 @@ msgstr "Une abstraction d'une scène sérialisée."
msgid "Returns [code]true[/code] if the scene file has nodes."
msgstr "Retourne [code]true[/code] si le fichier de scène à des nœuds."
-msgid ""
-"Returns the [code]SceneState[/code] representing the scene file contents."
-msgstr ""
-"Retourne le [code]SceneState[/code] représentant le contenu du fichier de la "
-"scène."
-
msgid ""
"It's similar to [constant GEN_EDIT_STATE_MAIN], but for the case where the "
"scene is being instantiated to be the base of another one.\n"
@@ -14188,13 +14315,6 @@ msgstr ""
"La vitesse d'animation de chaque particule variera suivant cette "
"[CurveTexture]."
-msgid ""
-"The box's extents if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_BOX]."
-msgstr ""
-"La taille de la boite si [code]emission_shape[/code] est à [constant "
-"EMISSION_SHAPE_BOX]."
-
msgid ""
"Particles will be emitted inside this region. Use [enum EmissionShape] "
"constants for values."
@@ -14202,13 +14322,6 @@ msgstr ""
"Les particules seront émises à l'intérieur de cette région. Voir les "
"constantes dans [enum EmissionShape] pour les valeurs possibles."
-msgid ""
-"The sphere's radius if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_SPHERE]."
-msgstr ""
-"Le rayon de la sphère si [code]emission_shape[/code] est [constant "
-"EMISSION_SHAPE_SPHERE]."
-
msgid "Amount of [member spread] along the Y axis."
msgstr "La quantité de diffusion [member spread] le long de l'axe Y."
@@ -14219,10 +14332,6 @@ msgid "Each particle's linear acceleration will vary along this [CurveTexture]."
msgstr ""
"La vitesse linéaire de chaque particule variera suivant cette [CurveTexture]."
-msgid "Each particle's orbital velocity will vary along this [CurveTexture]."
-msgstr ""
-"La vélocité orbitale de chaque particule variera suivant cette [CurveTexture]."
-
msgid "If [code]true[/code], particles will not move on the z axis."
msgstr ""
"Si [code]true[/code], les particules ne se déplaceront pas le long de l'axe Z."
@@ -14678,12 +14787,6 @@ msgstr ""
"La liste des sommets du polygone. Le dernier point sera relié au premier.\n"
"[b]Note :[/b] Retourne une copie du [PackedVector2Array] et non une référence."
-msgid ""
-"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
-msgstr ""
-"La texture pour remplir le polygone. Utilisez [code]uv[/code] pour définir "
-"les coordonnées de la texture."
-
msgid "The texture's rotation in radians."
msgstr "La rotation de la texture en radians."
@@ -15877,17 +15980,6 @@ msgstr ""
"Retourne [code]true[/code] si l'augmentation a réussi, [code]false[/code] "
"sinon."
-msgid ""
-"Decrements the internal reference counter. Use this only if you really know "
-"what you are doing.\n"
-"Returns [code]true[/code] if the decrement was successful, [code]false[/code] "
-"otherwise."
-msgstr ""
-"Diminue le compteur de référence interne. Utilisez ceci seulement si vous "
-"savez vraiment ce que vous faites.\n"
-"Retourne [code]true[/code] si la diminution a réussi, [code]false[/code] "
-"sinon."
-
msgid ""
"Sets the border width of the [ReferenceRect]. The border grows both inwards "
"and outwards with respect to the rectangle box."
@@ -16499,41 +16591,9 @@ msgstr ""
msgid "Adds a newline tag to the tag stack."
msgstr "Ajouter un marqueur de retour à la ligne dans la pile des marqueurs."
-msgid ""
-"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
-msgstr ""
-"Ajouter un marqueur [code][font][/code] avec une police italique gras dans la "
-"pile des marqueurs."
-
-msgid "Adds a [code][color][/code] tag to the tag stack."
-msgstr "Ajouter un marqueur [code][color][/code] dans la pile des marqueurs."
-
-msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
-msgstr ""
-"Ajoute un marqueur [code][font][/code] avec une police monospace dans la pile "
-"des marqueurs."
-
-msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
-msgstr ""
-"Ajoute un marqueur [code][font][/code] avec une police normale dans la pile "
-"des marqueurs."
-
-msgid "Adds a [code][s][/code] tag to the tag stack."
-msgstr "Ajoute un marqueur [code][s][/code] dans la pile des marqueurs."
-
-msgid "Adds a [code][u][/code] tag to the tag stack."
-msgstr "Ajoute un marqueur [code][u][/code] dans la pile des marqueurs."
-
msgid "If [code]true[/code], a right-click displays the context menu."
msgstr "Si [code]true[/code], un clic droit affiche le menu contextuel."
-msgid ""
-"If [code]true[/code], the label underlines meta tags such as [code][url]{text}"
-"[/url][/code]."
-msgstr ""
-"Si [code]true[/code], le label souligne les marqueurs de méta-donnée comme "
-"[code][url]{text}[/url][/code]."
-
msgid ""
"If [code]true[/code], the window scrolls down to display new content "
"automatically."
@@ -16791,15 +16851,6 @@ msgstr ""
msgid "The [Shader] program used to render this material."
msgstr "Le programme [Shader] utilisé pour le rendu de ce matériau."
-msgid "If [code]true[/code], collision with [Area2D]s will be reported."
-msgstr ""
-"Si [code]true[/code], les collisions avec les [Area2D] seront rapportées."
-
-msgid "If [code]true[/code], collision with [PhysicsBody2D]s will be reported."
-msgstr ""
-"Si [code]true[/code], les collisions avec les [PhysicBody2D] seront "
-"rapportées."
-
msgid "A shortcut for binding input."
msgstr "Un raccourci lié à une entrée."
@@ -16932,20 +16983,6 @@ msgstr ""
"Si [code]true[/code], la [SpinBox] sera modifiable. Sinon, elle sera en "
"lecture seule."
-msgid ""
-"Adds the specified [code]prefix[/code] string before the numerical value of "
-"the [SpinBox]."
-msgstr ""
-"Ajoute la chaîne de caractères [code]prefix[/code] spécifiée avant la valeur "
-"numérique de la [SpinBox]."
-
-msgid ""
-"Adds the specified [code]suffix[/code] string after the numerical value of "
-"the [SpinBox]."
-msgstr ""
-"Ajoute la chaîne de caractères [code]suffix[/code] spécifiée après la valeur "
-"numérique de la [SpinBox]."
-
msgid ""
"Clamps the [member split_offset] value to not go outside the currently "
"possible minimal and maximum values."
@@ -17999,9 +18036,6 @@ msgstr ""
"Émis quand le bouton [Popup] du [TabContainer] est cliqué. Voir [method "
"set_popup] pour les détails."
-msgid "Emitted when a tab is selected, even if it is the current tab."
-msgstr "Émis quand un onglet est sélectionné, même s'il est déjà l'actuel."
-
msgid "The icon for the menu button (see [method set_popup])."
msgstr "L'icône pour le bouton de menu (voir [method set_popup])."
@@ -18291,14 +18325,6 @@ msgstr "La largeur de la colonne droite du 9-patch."
msgid "The height of the 9-patch's top row."
msgstr "La hauteur de la colonne du haut du 9-patch."
-msgid "Multiplies the color of the bar's [code]texture_progress[/code] texture."
-msgstr ""
-"Multiplie la couleur de la texture [code]texture_progress[/code] de la barre."
-
-msgid "Multiplies the color of the bar's [code]texture_under[/code] texture."
-msgstr ""
-"Multiplie la couleur de la texture [code]texture_under[/code] de la barre."
-
msgid "The [member texture_progress] fills from left to right."
msgstr "La [member texture_progress] remplis de gauche à droite."
@@ -18503,20 +18529,6 @@ msgid "Constructs the transform from a given angle (in radians) and position."
msgstr ""
"Construit le transform à partir d’un angle donné (en radians) et la position."
-msgid ""
-"Returns a vector transformed (multiplied) by the basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"Retourne un vecteur transformé (multiplié) par la matrice de base.\n"
-"Cette méthode ne tient pas compte de la translation (le vecteur d'origine)."
-
-msgid ""
-"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"Retourne un vecteur transformé (multiplié) par la matrice de base inverse.\n"
-"Cette méthode ne tient pas compte de la translation (le vecteur d'origine)."
-
msgid "Returns the transform's origin (translation)."
msgstr "Retourne l’origine de la transformation (position)."
@@ -18689,13 +18701,6 @@ msgstr "Émis lors de la modification d’un élément."
msgid "Emitted when an item is selected."
msgstr "Émis lorsqu’un élément est sélectionné."
-msgid ""
-"Emitted instead of [code]item_selected[/code] if [code]select_mode[/code] is "
-"[constant SELECT_MULTI]."
-msgstr ""
-"Émis au lieu de [code]item_selected[/code] si [code]select_mode[/code] est "
-"[constant SELECT_MULTI]."
-
msgid "Emitted when a left mouse button click does not select any item."
msgstr "Émis quand un clic-gauche n'a sélectionné aucun élément."
@@ -19473,6 +19478,9 @@ msgstr ""
msgid "Base resource for video streams."
msgstr "Ressource de base pour les flux vidéo."
+msgid "Playing videos"
+msgstr "Lire des vidéos"
+
msgid ""
"Returns the video stream's name, or [code]\"\"[/code] if no video "
"stream is assigned."
@@ -19684,25 +19692,6 @@ msgstr "Les objets sont affichés en fil de fer."
msgid "Corresponds to [constant Node.PROCESS_MODE_WHEN_PAUSED]."
msgstr "Correspond à [constant Node.PROCESS_MODE_WHEN_PAUSED]."
-msgid "Enables certain nodes only when approximately visible."
-msgstr ""
-"Active certains nœuds uniquement quand il est approximativement visible."
-
-msgid "Detects approximately when the node is visible on screen."
-msgstr "Détecte approximativement quand le nœud est visible à l'écran."
-
-msgid ""
-"If [code]true[/code], the bounding box is on the screen.\n"
-"[b]Note:[/b] It takes one frame for the node's visibility to be assessed once "
-"added to the scene tree, so this method will return [code]false[/code] right "
-"after it is instantiated, even if it will be on screen in the draw pass."
-msgstr ""
-"Si [code]true[/code], le rectangle de visibilité affiché à l’écran.\n"
-"[b]Note :[/b] Il faut un cadre pour que la visibilité du nœud soit évaluée "
-"une fois ajoutée à l’arbre de scène, de sorte que cette méthode reviendra "
-"[code]false[/code] juste après qu’il soit instancié, même s’il sera à l’écran "
-"dans le passage de tirage."
-
msgid "Parent of all visual 3D nodes."
msgstr "Le parent de tous les nœuds visuels 3D."
@@ -19758,40 +19747,12 @@ msgstr "Un shader pour les calculs de lumière."
msgid "Represents the size of the [enum Type] enum."
msgstr "Représente la taille de l'énumération [enum Type]."
-msgid ""
-"Floating-point scalar. Translated to [code]float[/code] type in shader code."
-msgstr ""
-"Un nombre flottant. Sera traduit en [code]float[/code] dans le code du shader."
-
-msgid ""
-"3D vector of floating-point values. Translated to [code]vec3[/code] type in "
-"shader code."
-msgstr ""
-"Un vecteur 3D avec des composants flottants. Le type [code]vec3[/code] sera "
-"utilisé dans le code du shader."
-
-msgid "Boolean type. Translated to [code]bool[/code] type in shader code."
-msgstr ""
-"Un booléen. Le type [code]bool[/code] sera utilisé dans le code du shader."
-
-msgid "Transform type. Translated to [code]mat4[/code] type in shader code."
-msgstr ""
-"Le type Transform. Le type [code]mat4[/code] sera utilisé dans le code du "
-"shader."
-
msgid "Represents the size of the [enum PortType] enum."
msgstr "Représente la taille de l'énumération [enum PortType]."
msgid "A boolean constant to be used within the visual shader graph."
msgstr "Un booléen constant à utiliser dans le shader visuel du graphe."
-msgid ""
-"Has only one output port and no inputs.\n"
-"Translated to [code]bool[/code] in the shader language."
-msgstr ""
-"N'a qu'une seule sortie et aucun entrée.\n"
-"Sera traduit en [code]bool[/code] dans le code du shader."
-
msgid "A boolean constant which represents a state of this node."
msgstr "Un booléen constant qui représente l'état de ce nœud."
@@ -20603,6 +20564,13 @@ msgstr ""
"La ressource du [Environment] utilisé par ce [WorldEnvironment], définissant "
"les propriétés par défaut."
+msgid ""
+"Returns [code]true[/code] if the currently parsed element is empty, e.g. "
+"[code][/code]."
+msgstr ""
+"Retourne [code]true[/code] si l’élément actuellement traité est vide, par "
+"exemple [code][/code]."
+
msgid "There's no node (no file or buffer opened)."
msgstr "Il y aucun nœud (pas de fichier ou de mémoire tampon ouverte)."
diff --git a/doc/translations/zh_CN.po b/doc/translations/zh_CN.po
index 9a4727a9797..c61bdbf3d96 100644
--- a/doc/translations/zh_CN.po
+++ b/doc/translations/zh_CN.po
@@ -22,7 +22,7 @@
# cyj , 2020.
# twoBornottwoB <305766341@qq.com>, 2021.
# zzh , 2021.
-# longhjues , 2021.
+# longhjues , 2021, 2023.
# 800Coins , 2021.
# qjyqjyqjyqjy , 2021, 2023.
# mzzhao <13030224963@163.com>, 2021.
@@ -80,11 +80,13 @@
# SamBillon , 2023.
# ZhuQiLi <552084128@qq.com>, 2023.
# HIM049 , 2023.
+# 墨尘 <180598130@qq.com>, 2023.
+# dinshin0129 <396321810@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-09-19 08:48+0000\n"
+"PO-Revision-Date: 2023-11-10 08:03+0000\n"
"Last-Translator: Haoyu Qiu \n"
"Language-Team: Chinese (Simplified) \n"
@@ -93,7 +95,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Weblate 5.1-dev\n"
+"X-Generator: Weblate 5.2-dev\n"
msgid "Description"
msgstr "描述"
@@ -354,6 +356,31 @@ msgstr ""
"a = char(8364) # a 是“€”\n"
"[/codeblock]"
+msgid ""
+"[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.\n"
+"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 ""
+"[i]已弃用。[/i]请改用 [method @GlobalScope.type_convert]。\n"
+"在可能的情况下将 [param what] 转换为 [param type] 。 [param type] 使用 [enum "
+"Variant.Type] 值。\n"
+"[codeblock]\n"
+"var a = [4, 2.5, 1.2]\n"
+"print(a is Array) # 输出 true\n"
+"\n"
+"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n"
+"print(b) # 输出 [4, 2, 1]\n"
+"print(b is Array) # 输出 false\n"
+"[/codeblock]"
+
msgid ""
"Converts a [param dictionary] (created with [method inst_to_dict]) back to an "
"Object instance. Can be useful for deserializing."
@@ -795,26 +822,6 @@ msgstr ""
"[b]警告:[/b]“非数”只是浮点数的概念,整数中没有对应的概念。将整数 [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"
@@ -1221,6 +1228,23 @@ msgstr ""
"@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]\n"
+"[b]Note:[/b] The type must be a native class or a globally registered script "
+"(using the [code]class_name[/code] keyword) that inherits [Node]."
+msgstr ""
+"导出具有过滤器,并允许节点类型为 [NodePath] 的属性。\n"
+"参见 [constant PROPERTY_HINT_NODE_PATH_VALID_TYPES]。\n"
+"[codeblock]\n"
+"@export_node_path(\"Button\", \"TouchScreenButton\") var some_button\n"
+"[/codeblock]\n"
+"[b]注意:[/b] 类型必须是本地类或全局注册的脚本(使用[code][class_name][/code]关"
+"键字)且继承自 [Node] 。"
+
msgid ""
"Export a [String] property with a placeholder text displayed in the editor "
"widget when no value is present.\n"
@@ -1236,6 +1260,65 @@ msgstr ""
"@export_placeholder(\"Name in lowercase\") var character_id: String\n"
"[/codeblock]"
+msgid ""
+"Export an [int] or [float] property as a range value. The range must be "
+"defined by [param min] and [param max], as well as an optional [param step] "
+"and a variety of extra hints. The [param step] defaults to [code]1[/code] for "
+"integer properties. For floating-point numbers this value depends on your "
+"[code]EditorSettings.interface/inspector/default_float_step[/code] setting.\n"
+"If hints [code]\"or_greater\"[/code] and [code]\"or_less\"[/code] are "
+"provided, the editor widget will not cap the value at range boundaries. The "
+"[code]\"exp\"[/code] hint will make the edited values on range to change "
+"exponentially. The [code]\"hide_slider\"[/code] hint will hide the slider "
+"element of the editor widget.\n"
+"Hints also allow to indicate the units for the edited value. Using "
+"[code]\"radians_as_degrees\"[/code] you can specify that the actual value is "
+"in radians, but should be displayed in degrees in the Inspector dock (the "
+"range values are also in degrees). [code]\"degrees\"[/code] allows to add a "
+"degree sign as a unit suffix (the value is unchanged). Finally, a custom "
+"suffix can be provided using [code]\"suffix:unit\"[/code], where \"unit\" can "
+"be any string.\n"
+"See also [constant PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+msgstr ""
+"将 [int] 或 [float] 属性导出为范围值。范围必须由 [param min] 和 [param max] 定"
+"义,还有一个可选的 [param step] 和各种额外的提示。对于整数属性,[param step] "
+"的默认值是 [code]1[/code] 。对于浮点数,这个值取决于你的 [code]EditorSettings."
+"interface/inspector/default_float_step[/code] 设置。\n"
+"如果提供了提示 [code]\"or_greater\"[/code] 和 [code]\"or_less\"[/code] ,那么"
+"编辑器部件将不会在范围边界处对数值进行限制。[code]\"exp\"[/code] 提示将使范围"
+"内的编辑值以指数形式变化。[code]\"hide_slider\"[/code] 提示将隐藏编辑器部件中"
+"的滑块。\n"
+"提示还允许指示编辑的值的单位。使用 [code]\"radians_as_degrees\"[/code] ,你可"
+"以指定实际值以弧度为单位,但在检查器中会以角度为单位显示(范围值也使用度数)。"
+"[code]\"degrees\"[/code] 允许添加一个角度符号作为单位后缀。最后,可以使用 "
+"[code]\"suffix:单位\"[/code] 提供一个自定义后缀,其中“单位”可以是任何字符"
+"串。\n"
+"另见 [constant PROPERTY_HINT_RANGE]。\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-3.14, 3.14, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+
msgid ""
"Define a new subgroup for the following exported properties. This helps to "
"organize properties in the Inspector dock. Subgroups work exactly like "
@@ -1287,6 +1370,81 @@ msgstr ""
"@onready var character_name: Label = $Label\n"
"[/codeblock]"
+msgid ""
+"Mark the following method for remote procedure calls. See [url=$DOCS_URL/"
+"tutorials/networking/high_level_multiplayer.html]High-level multiplayer[/"
+"url].\n"
+"If [param mode] is set as [code]\"any_peer\"[/code], allows any peer to call "
+"this RPC function. Otherwise, only the authority peer is allowed to call it "
+"and [param mode] should be kept as [code]\"authority\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], each of these "
+"modes respectively corresponds to the [constant MultiplayerAPI."
+"RPC_MODE_AUTHORITY] and [constant MultiplayerAPI.RPC_MODE_ANY_PEER] RPC "
+"modes. See [enum MultiplayerAPI.RPCMode]. If a peer that is not the authority "
+"tries to call a function that is only allowed for the authority, the function "
+"will not be executed. If the error can be detected locally (when the RPC "
+"configuration is consistent between the local and the remote peer), an error "
+"message will be displayed on the sender peer. Otherwise, the remote peer will "
+"detect the error and print an error there.\n"
+"If [param sync] is set as [code]\"call_remote\"[/code], the function will "
+"only be executed on the remote peer, but not locally. To run this function "
+"locally too, set [param sync] to [code]\"call_local\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], this is "
+"equivalent to setting [code]call_local[/code] to [code]true[/code].\n"
+"The [param transfer_mode] accepted values are [code]\"unreliable\"[/code], "
+"[code]\"unreliable_ordered\"[/code], or [code]\"reliable\"[/code]. It sets "
+"the transfer mode of the underlying [MultiplayerPeer]. See [member "
+"MultiplayerPeer.transfer_mode].\n"
+"The [param transfer_channel] defines the channel of the underlying "
+"[MultiplayerPeer]. See [member MultiplayerPeer.transfer_channel].\n"
+"The order of [param mode], [param sync] and [param transfer_mode] does not "
+"matter, but values related to the same argument must not be used more than "
+"once. [param transfer_channel] always has to be the 4th argument (you must "
+"specify 3 preceding arguments).\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Equivalent to @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+msgstr ""
+"将后续方法标记为远程过程调用。见[url=$DOCS_URL/tutorials/networking/"
+"high_level_multiplayer.html]《高阶多人游戏》[/url]。\n"
+"如果将 [param mode] 设为 [code]\"any_peer\"[/code],则会允许所有对等体调用该 "
+"RPC 函数。否则就只允许该对等体的控制方调用,此时应该让 [param mode] 保持为 "
+"[code]\"authority\"[/code]。使用 [method Node.rpc_config] 将函数配置为 RPC "
+"时,这些模式对应的是 RPC 模式 [constant MultiplayerAPI.RPC_MODE_AUTHORITY] 和 "
+"[constant MultiplayerAPI.RPC_MODE_ANY_PEER]。如果非控制方的对等体尝试调用仅限"
+"控制方调用的函数,则不会执行该函数。如果本地能够检测到错误(本地与远程对等体"
+"的 RPC 配置一致),则发送方对等体会显示错误消息。否则远程对等体会检测到该错误"
+"并输出错误。\n"
+"如果将 [param sync] 设为 [code]\"call_remote\"[/code],则该函数只会在远程对等"
+"体上执行,不会在本地执行。要让这个函数在本地也执行,请将 [param sync] 设置为 "
+"[code]\"call_local\"[/code]。使用 [method Node.rpc_config] 将函数配置为 RPC "
+"时,等价于将 [code]call_local[/code] 设置为 [code]true[/code]。\n"
+"[param transfer_mode] 能够接受的值为 [code]\"unreliable\"[/code]、"
+"[code]\"unreliable_ordered\"[/code]、[code]\"reliable\"[/code],会设置底层 "
+"[MultiplayerPeer] 的传输模式。见 [member MultiplayerPeer.transfer_mode]。\n"
+"[param transfer_channel] 定义的是底层 [MultiplayerPeer] 的通道。见 [member "
+"MultiplayerPeer.transfer_channel]。\n"
+"[param mode]、[param sync] 和 [param transfer_mode] 的顺序是无关的,但是相同参"
+"数的取值不能出现多次。[param transfer_channel] 必须始终为第四个参数(前三个参"
+"数必须指定)。\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # 等价于 @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+
msgid ""
"Make a script with static variables to not persist after all references are "
"lost. If the script is loaded again the static variables will revert to their "
@@ -1295,27 +1453,6 @@ msgstr ""
"使具有静态变量的脚本在所有引用丢失之后不会持久化。当该脚本再次加载时,这些静态"
"变量将恢复为默认值。"
-msgid ""
-"Mark the current script as a tool script, allowing it to be loaded and "
-"executed by the editor. See [url=$DOCS_URL/tutorials/plugins/"
-"running_code_in_the_editor.html]Running code in the editor[/url].\n"
-"[codeblock]\n"
-"@tool\n"
-"extends Node\n"
-"[/codeblock]\n"
-"[b]Note:[/b] As annotations describe their subject, the [code]@tool[/code] "
-"annotation must be placed before the class definition and inheritance."
-msgstr ""
-"将当前脚本标记为工具脚本,允许它被编辑器加载和执行。见[url=$DOCS_URL/"
-"tutorials/plugins/running_code_in_the_editor.html]《在编辑器中运行代码》[/"
-"url]。\n"
-"[codeblock]\n"
-"@tool\n"
-"extends Node\n"
-"[/codeblock]\n"
-"[b]注意:[/b]因为注解描述对象的关系,必须把 [code]@tool[/code] 注解放在类定义"
-"和继承之前。"
-
msgid ""
"Mark the following statement to ignore the specified [param warning]. See "
"[url=$DOCS_URL/tutorials/scripting/gdscript/warning_system.html]GDScript "
@@ -1456,6 +1593,39 @@ msgstr ""
"var c = acos(0.866025)\n"
"[/codeblock]"
+msgid ""
+"Returns the hyperbolic arc (also called inverse) cosine of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's cosine "
+"in hyperbolic space if [param x] is larger or equal to 1. For values of "
+"[param x] lower than 1, it will return 0, in order to prevent [method acosh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = acosh(2) # Returns 1.31695789692482\n"
+"cosh(a) # Returns 2\n"
+"\n"
+"var b = acosh(-1) # Returns 0\n"
+"[/codeblock]"
+msgstr ""
+"返回参数 x 的双曲弧(也称为反余弦),返回弧度值。使用它来获取在双曲空间中,如"
+"果参数 x 大于或等于 1 ,角的余弦的角度。对于参数 x 小于 1 的值,将返回 0 ,以"
+"防止 [method acosh] 返回 [constant @GDScript.NAN] 。\n"
+"[codeblock]\n"
+"var a = acosh(2) # 返回 1.31695789692482\n"
+"cosh(a) # 返回 2\n"
+"\n"
+"var b = acosh(-1) # 返回 0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the difference between the two angles, in the range of [code][-PI, "
+"+PI][/code]. When [param from] and [param to] are opposite, returns [code]-"
+"PI[/code] if [param from] is smaller than [param to], or [code]PI[/code] "
+"otherwise."
+msgstr ""
+"返回两个角度之间的差,范围为 [code][-PI, +PI][/code] 。当 [param from] 和 "
+"[param to] 相反时,如果 [param from] 小于 [param to],则返回 [code]-PI[/"
+"code] ,否则返回 [code]PI[/code] 。"
+
msgid ""
"Returns the arc sine of [param x] in radians. Use to get the angle of sine "
"[param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/"
@@ -1475,25 +1645,20 @@ msgstr ""
"[/codeblock]"
msgid ""
-"Returns the arc tangent of [param x] in radians. Use it to get the angle from "
-"an angle's tangent in trigonometry.\n"
-"The method cannot know in which quadrant the angle should fall. See [method "
-"atan2] if you have both [code]y[/code] and [code]x[/code].\n"
+"Returns the hyperbolic arc (also called inverse) sine of [param x], returning "
+"a value in radians. Use it to get the angle from an angle's sine in "
+"hyperbolic space.\n"
"[codeblock]\n"
-"var a = atan(0.5) # a is 0.463648\n"
-"[/codeblock]\n"
-"If [param x] is between [code]-PI / 2[/code] and [code]PI / 2[/code] "
-"(inclusive), [code]atan(tan(x))[/code] is equal to [param x]."
+"var a = asinh(0.9) # Returns 0.8088669356527824\n"
+"sinh(a) # Returns 0.9\n"
+"[/codeblock]"
msgstr ""
-"返回 [param x] 的反正切值,单位是弧度。在三角函数中用它来得到一个角上切线的角"
-"度。\n"
-"该方法无法确定角度应该落在哪个象限。如果你同时拥有 [code]y[/code] 和 [code]x[/"
-"code],请参见 [method atan2]。\n"
+"返回参数 x 的双曲弧(也称为反正弦),返回弧度值。使用它来获取在双曲空间中,角"
+"的正弦角度。\n"
"[codeblock]\n"
-"var a = atan(0.5) # a=0.463648\n"
-"[/codeblock]\n"
-"如果 [param x] 在 [code]-PI/2[/code] 和 [code]PI/2[/code](包括)之间,"
-"[code]atan(tan(x))[/code] 等于 [param x]。"
+"var a = asinh(0.9) # 返回 0.8088669356527824\n"
+"sinh(a) # 返回 0.9\n"
+"[/codeblock]"
msgid ""
"Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle "
@@ -1511,6 +1676,37 @@ msgstr ""
"var a = atan2(0, -1) # a = 3.141593\n"
"[/codeblock]"
+msgid ""
+"Returns the hyperbolic arc (also called inverse) tangent of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's tangent "
+"in hyperbolic space if [param x] is between -1 and 1 (non-inclusive).\n"
+"In mathematics, the inverse hyperbolic tangent is only defined for -1 < "
+"[param x] < 1 in the real set, so values equal or lower to -1 for [param x] "
+"return negative [constant @GDScript.INF] and values equal or higher than 1 "
+"return positive [constant @GDScript.INF] in order to prevent [method atanh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # Returns 1.47221948958322\n"
+"tanh(a) # Returns 0.9\n"
+"\n"
+"var b = atanh(-2) # Returns -inf\n"
+"tanh(b) # Returns -1\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的双曲弧(也称为反正切),以弧度为单位。如果 [param x] 在 -1 "
+"和 1 之间(不包括 -1 和 1 ),则使用它从双曲空间中的角度的正切值获取角度。\n"
+"在数学中,只有在实数集中,-1 < [param x] < 1 的情况下,双曲反正切才有意义。因"
+"此,为了预防 [method atanh] 返回 [constant @GDScript.NAN] ,对于 [param x] 等"
+"于或小于 -1 的值,返回负的 [constant @GDScript.NAN] ;对于[param x]等于或大于 "
+"1 的值,返回正的 [constant @GDScript.INF] 。\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # 返回 1.47221948958322\n"
+"tanh(a) # 返回 0.9\n"
+"\n"
+"var b = atanh(-2) # 返回 -inf\n"
+"tanh(b) # 返回 -1\n"
+"[/codeblock]"
+
msgid ""
"Returns the derivative at the given [param t] on a one-dimensional "
"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]Bézier curve[/url] "
@@ -1548,28 +1744,6 @@ msgstr ""
"[b]警告:[/b]反序列化的对象可能包含执行的代码。如果序列化对象的来源不受信任,"
"则不要使用此选项,以避免潜在的安全威胁(远程执行代码)。"
-msgid ""
-"Rounds [param x] upward (towards positive infinity), returning the smallest "
-"whole number that is not less than [param x]. Supported types: [int], "
-"[float], [Vector2], [Vector3], [Vector4].\n"
-"[codeblock]\n"
-"var i = ceil(1.45) # i is 2.0\n"
-"i = ceil(1.001) # i is 2.0\n"
-"[/codeblock]\n"
-"See also [method floor], [method round], and [method snapped].\n"
-"[b]Note:[/b] For better type safety, use [method ceilf], [method ceili], "
-"[method Vector2.ceil], [method Vector3.ceil], or [method Vector4.ceil]."
-msgstr ""
-"向上舍入 [param x](朝正无穷大),返回不小于 [param x] 的最小整数。支持的类"
-"型:[int]、[float]、[Vector2]、[Vector3]、[Vector4]。\n"
-"[codeblock]\n"
-"var i = ceil(1.45) # i 是 2.0\n"
-"i = ceil(1.001) # i 是 2.0\n"
-"[/codeblock]\n"
-"另请参见 [method floor]、[method round]、以及 [method snapped]。\n"
-"[b]注意:[/b]为了更好的类型安全,使用 [method ceilf]、[method ceili]、[method "
-"Vector2.ceil]、[method Vector3.ceil] 或 [method Vector4.ceil]。"
-
msgid ""
"Rounds [param x] upward (towards positive infinity), returning the smallest "
"whole number that is not less than [param x].\n"
@@ -1724,17 +1898,6 @@ msgstr ""
"根据 [param weight] 中定义的因子以及 [param pre] 和 [param post] 值,在具有最"
"短路径的两个旋转值之间三次插值 。另见 [method lerp_angle]。"
-msgid ""
-"Cubic interpolates between two rotation values with shortest path by the "
-"factor defined in [param weight] with [param pre] and [param post] values. "
-"See also [method lerp_angle].\n"
-"It can perform smoother interpolation than [code]cubic_interpolate()[/code] "
-"by the time values."
-msgstr ""
-"根据 [param weight] 中定义的因子以及 [param pre] 和 [param post] 值,在具有最"
-"短路径的两个旋转值之间进行三次插值。另见 [method lerp_angle]。\n"
-"它可以根据时间值执行比 [code]cubic_interpolate()[/code] 更平滑的插值。"
-
msgid ""
"Cubic interpolates between two values by the factor defined in [param weight] "
"with [param pre] and [param post] values.\n"
@@ -1759,6 +1922,41 @@ msgstr ""
"var r = deg_to_rad(180) # r 是 3.141593\n"
"[/codeblock]"
+msgid ""
+"Returns an \"eased\" value of [param x] based on an easing function defined "
+"with [param curve]. This easing function is based on an exponent. The [param "
+"curve] can be any floating-point number, with specific values leading to the "
+"following behaviors:\n"
+"[codeblock]\n"
+"- Lower than -1.0 (exclusive): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Between -1.0 and 0.0 (exclusive): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Between 0.0 to 1.0 (exclusive): Ease out\n"
+"- 1.0: Linear\n"
+"- Greater than 1.0 (exclusive): Ease in\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
+"See also [method smoothstep]. If you need to perform more advanced "
+"transitions, use [method Tween.interpolate_value]."
+msgstr ""
+"基于用 [param curve] 定义的缓动函数返回 [param x] 的“缓动后”的值。该缓动函数是"
+"基于指数的。[param curve] 可以是任意浮点数,具体数值会导致以下行为:\n"
+"[codeblock]\n"
+"- 低于 -1.0(开区间):缓入缓出\n"
+"- -1.0:线性\n"
+"- 在 -1.0 和 0.0 之间(开区间):缓出缓入\n"
+"- 0.0:恒定\n"
+"- 在 0.0 到 1.0 之间(开区间):缓出\n"
+"- 1.0:线性\n"
+"- 大于 1.0(开区间):缓入\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"ease_cheatsheet.png]ease() 曲线值速查表[/url]\n"
+"另见 [method smoothstep]。如果你需要执行更高级的过渡,请使用 [method Tween."
+"interpolate_value]。"
+
msgid ""
"Returns a human-readable name for the given [enum Error] code.\n"
"[codeblock]\n"
@@ -1777,26 +1975,21 @@ msgstr ""
"[/codeblock]"
msgid ""
-"Rounds [param x] downward (towards negative infinity), returning the largest "
-"whole number that is not more than [param x]. Supported types: [int], "
-"[float], [Vector2], [Vector3], [Vector4].\n"
+"The natural exponential function. It raises the mathematical constant [i]e[/"
+"i] to the power of [param x] and returns it.\n"
+"[i]e[/i] has an approximate value of 2.71828, and can be obtained with "
+"[code]exp(1)[/code].\n"
+"For exponents to other bases use the method [method pow].\n"
"[codeblock]\n"
-"var a = floor(2.99) # a is 2.0\n"
-"a = floor(-2.99) # a is -3.0\n"
-"[/codeblock]\n"
-"See also [method ceil], [method round], and [method snapped].\n"
-"[b]Note:[/b] For better type safety, use [method floorf], [method floori], "
-"[method Vector2.floor], [method Vector3.floor], or [method Vector4.floor]."
+"var a = exp(2) # Approximately 7.39\n"
+"[/codeblock]"
msgstr ""
-"向下舍入 [param x](朝负无穷大),返回不大于 [param x] 的最大整数。支持的类"
-"型:[int]、[float]、[Vector2]、[Vector3]、[Vector4]。\n"
+"自然指数函数。计算数学常数 [i]e[/i] 的 [param x] 次方并返回它。\n"
+"[i]e[/i] 的近似值为 2.71828,可以使用 [code]exp(1)[/code] 获得。\n"
+"求其他底数的指数应使用 [method pow] 方法。\n"
"[codeblock]\n"
-"var a = floor(2.99) # a 是 2.0\n"
-"a = floor(-2.99) # a 是 -3.0\n"
-"[/codeblock]\n"
-"另请参阅 [method ceil]、[method round]、以及 [method snapped]。\n"
-"[b]注意:[/b]为了更好的类型安全,请使用 [method floorf]、[method floori]、"
-"[method Vector2.floor]、[method Vector3.floor] 或 [method Vector4.floor]。"
+"var a = exp(2) # 大约是 7.39\n"
+"[/codeblock]"
msgid ""
"Rounds [param x] downward (towards negative infinity), returning the largest "
@@ -2350,6 +2543,36 @@ msgstr ""
"move_toward(10, 5, -1.5) # Returns 11.5\n"
"[/codeblock]"
+msgid ""
+"Returns the smallest integer power of 2 that is greater than or equal to "
+"[param value].\n"
+"[codeblock]\n"
+"nearest_po2(3) # Returns 4\n"
+"nearest_po2(4) # Returns 4\n"
+"nearest_po2(5) # Returns 8\n"
+"\n"
+"nearest_po2(0) # Returns 0 (this may not be expected)\n"
+"nearest_po2(-1) # Returns 0 (this may not be expected)\n"
+"[/codeblock]\n"
+"[b]Warning:[/b] Due to its implementation, this method returns [code]0[/code] "
+"rather than [code]1[/code] for values less than or equal to [code]0[/code], "
+"with an exception for [param value] being the smallest negative 64-bit "
+"integer ([code]-9223372036854775808[/code]) in which case the [param value] "
+"is returned unchanged."
+msgstr ""
+"返回大于等于 [param value] 的最小的 2 的幂。\n"
+"[codeblock]\n"
+"nearest_po2(3) # 返回 4\n"
+"nearest_po2(4) # 返回 4\n"
+"nearest_po2(5) # 返回 8\n"
+"\n"
+"nearest_po2(0) # 返回 0(可能出乎意料)\n"
+"nearest_po2(-1) # 返回 0(可能出乎意料)\n"
+"[/codeblock]\n"
+"[b]警告:[/b]由于其实现方式,该函数会对小于等于 [code]0[/code] 的值返回 "
+"[code]0[/code] 而不是 [code]1[/code],例外是 [param value] 为最小的负 64 位整"
+"数([code]-9223372036854775808[/code])时,会将 [param value] 原样返回。"
+
msgid ""
"Wraps [param value] between [code]0[/code] and the [param length]. If the "
"limit is reached, the next value the function returns is decreased to the "
@@ -2472,76 +2695,6 @@ msgstr ""
"误和警告消息,而不是 [method print] 或 [method print_rich]。这将它们与用于调试"
"目的的打印消息区分开来,同时还会在打印错误或警告时显示堆栈跟踪。"
-msgid ""
-"Converts one or more arguments of any type to string in the best way possible "
-"and prints them to the console.\n"
-"The following BBCode tags are supported: [code]b[/code], [code]i[/code], "
-"[code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], "
-"[code]url[/code], [code]center[/code], [code]right[/code], [code]color[/"
-"code], [code]bgcolor[/code], [code]fgcolor[/code].\n"
-"Color tags only support the following named colors: [code]black[/code], "
-"[code]red[/code], [code]green[/code], [code]yellow[/code], [code]blue[/code], "
-"[code]magenta[/code], [code]pink[/code], [code]purple[/code], [code]cyan[/"
-"code], [code]white[/code], [code]orange[/code], [code]gray[/code]. "
-"Hexadecimal color codes are not supported.\n"
-"URL tags only support URLs wrapped by a URL tag, not URLs with a different "
-"title.\n"
-"When printing to standard output, the supported subset of BBCode is converted "
-"to ANSI escape codes for the terminal emulator to display. Support for ANSI "
-"escape codes varies across terminal emulators, especially for italic and "
-"strikethrough. In standard output, [code]code[/code] is represented with "
-"faint text but without any font change. Unsupported tags are left as-is in "
-"standard output.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"print_rich(\"[color=green][b]Hello world![/b][/color]\") # Prints out \"Hello "
-"world!\" in green with a bold font\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"GD.PrintRich(\"[color=green][b]Hello world![/b][/color]\"); // Prints out "
-"\"Hello world!\" in green with a bold font\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to "
-"print error and warning messages instead of [method print] or [method "
-"print_rich]. This distinguishes them from print messages used for debugging "
-"purposes, while also displaying a stack trace when an error or warning is "
-"printed.\n"
-"[b]Note:[/b] On Windows, only Windows 10 and later correctly displays ANSI "
-"escape codes in standard output."
-msgstr ""
-"以尽可能最佳的方式将一个或多个任意类型的参数转换为字符串,并将其打印到控制"
-"台。\n"
-"支持以下 BBCode 标签: [code]b[/code]、[code]i[/code]、[code]u[/code]、"
-"[code]s[/code]、[code]indent[/code]、[code]code[/code]、[code]url[/code]、"
-"[code]center[/code]、[code]right[/code]、[code]color[/code]、[code]bgcolor[/"
-"code]、[code]fgcolor[/code]。\n"
-"颜色标签仅支持以下颜色名称:[code]black[/code]、[code]red[/code]、"
-"[code]green[/code]、[code]yellow[/code]、[code]blue[/code]、[code]magenta[/"
-"code]、[code]pink[/code]、[code]purple[/code]、[code]cyan[/code]、"
-"[code]white[/code]、[code]orange[/code]、[code]gray[/code]。不支持十六进制颜色"
-"代码。\n"
-"URL 标签仅支持在 URL 标签中包含 URL,不支持使用不同标题的 URL。\n"
-"当打印到标准输出时,支持的 BBCode 子集被转换为 ANSI 转义码以供终端仿真器显示。"
-"对 ANSI 转义码的支持可能因终端仿真器而异,尤其是斜体和删除线。在标准输出中,"
-"[code]code[/code] 会使用较弱的文本表示,但字体不变。不支持的标签在标准输出中会"
-"原样保留。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"print_rich(\"[color=green][b]Hello world![/b][/color]\") # 输出绿色的粗"
-"体“Hello world!”\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"GD.PrintRich(\"[color=green][b]Hello world![/b][/color]\"); // 输出绿色的粗"
-"体“Hello world!”\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]注意:[/b]请考虑使用 [method push_error] 和 [method push_warning] 来打印错"
-"误和警告消息,而不是 [method print] 或 [method print_rich]。这将它们与用于调试"
-"目的的打印消息区分开来,同时还会在打印错误或警告时显示堆栈跟踪。\n"
-"[b]注意:[/b]在 Windows 中,只有 Windows 10 及后续版本能够在标准输出中正确显"
-"示 ANSI 转义码。"
-
msgid ""
"If verbose mode is enabled ([method OS.is_stdout_verbose] returning "
"[code]true[/code]), converts one or more arguments of any type to string in "
@@ -2913,27 +3066,19 @@ msgid ""
msgstr "从 [param base] 创建一个 RID。这主要被本地扩展使用以构建服务器。"
msgid ""
-"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
-"from 0. Supported types: [int], [float], [Vector2], [Vector3], [Vector4].\n"
-"[codeblock]\n"
-"round(2.4) # Returns 2\n"
-"round(2.5) # Returns 3\n"
-"round(2.6) # Returns 3\n"
-"[/codeblock]\n"
-"See also [method floor], [method ceil], and [method snapped].\n"
-"[b]Note:[/b] For better type safety, use [method roundf], [method roundi], "
-"[method Vector2.round], [method Vector3.round], or [method Vector4.round]."
+"Rotates [param from] toward [param to] by the [param delta] amount. Will not "
+"go past [param to].\n"
+"Similar to [method move_toward], but interpolates correctly when the angles "
+"wrap around [constant @GDScript.TAU].\n"
+"If [param delta] is negative, this function will rotate away from [param to], "
+"toward the opposite angle, and will not go past the opposite angle."
msgstr ""
-"将 [param x] 舍入到最接近的整数,中间情况远离 0 舍入。支持的类型:[int]、"
-"[float]、[Vector2]、[Vector3]、[Vector4]。\n"
-"[codeblock]\n"
-"round(2.4) # 返回 2\n"
-"round(2.5) # 返回 3\n"
-"round(2.6) # 返回 3\n"
-"[/codeblock]\n"
-"另请参见 [method floor]、[method ceil] 和 [method snapped]。\n"
-"[b]注意:[/b]为了更好的类型安全,使用 [method roundf]、[method roundi]、"
-"[method Vector2.round]、[method Vector3.round] 或 [method Vector4.round]。"
+"将 [param from] 朝 [param to] 旋转,旋转的量为 [param delta]。不会越过 [param "
+"to]。\n"
+"与 [method move_toward] 类似,但是能够让夹角正确绕过 [constant @GDScript."
+"TAU]。\n"
+"如果 [param delta] 为负,则该函数会进行远离 [param to] 的旋转,朝向相反的角"
+"度,但不会越过该角度。"
msgid ""
"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
@@ -2995,6 +3140,61 @@ msgstr ""
"[/csharp]\n"
"[/codeblocks]"
+msgid ""
+"Returns the same type of [Variant] as [param x], with [code]-1[/code] for "
+"negative values, [code]1[/code] for positive values, and [code]0[/code] for "
+"zeros. For [code]nan[/code] values it returns 0.\n"
+"Supported types: [int], [float], [Vector2], [Vector2i], [Vector3], "
+"[Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"sign(-6.0) # Returns -1\n"
+"sign(0.0) # Returns 0\n"
+"sign(6.0) # Returns 1\n"
+"sign(NAN) # Returns 0\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method signf], [method signi], "
+"[method Vector2.sign], [method Vector2i.sign], [method Vector3.sign], [method "
+"Vector3i.sign], [method Vector4.sign], or [method Vector4i.sign]."
+msgstr ""
+"返回与 [param x] 相同类型的 [Variant],负值返回 [code]-1[/code]、正值返回 "
+"[code]1[/code],零则返回 [code]0[/code]。如果是 [code]nan[/code] 则返回 0。\n"
+"支持的类型有:[int]、[float]、[Vector2]、[Vector2i]、[Vector3]、[Vector3i]、"
+"[Vector4]、[Vector4i]。\n"
+"[codeblock]\n"
+"sign(-6.0) # 返回 -1\n"
+"sign(0.0) # 返回 0\n"
+"sign(6.0) # 返回 1\n"
+"sign(NAN) # 返回 0\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # 返回 (-1, 0, 1)\n"
+"[/codeblock]\n"
+"[b]注意:[/b]为了更好的类型安全,请使用 [method signf]、[method signi]、"
+"[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. For "
+"[code]nan[/code] values of [param x] it returns 0.0.\n"
+"[codeblock]\n"
+"signf(-6.5) # Returns -1.0\n"
+"signf(0.0) # Returns 0.0\n"
+"signf(6.5) # Returns 1.0\n"
+"signf(NAN) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"如果 [param x] 为负,则返回 [code]-1.0[/code];如果 [param x] 为正,则返回 "
+"[code]1.0[/code];如果 [param x] 为零,则返回 [code]0.0[/code]。如果 [param "
+"x] 为 [code]nan[/code] 则返回 0.0。\n"
+"[codeblock]\n"
+"signf(-6.5) # 返回 -1.0\n"
+"signf(0.0) # 返回 0.0\n"
+"signf(6.5) # 返回 1.0\n"
+"signf(NAN) # 返回 0.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"
@@ -3038,6 +3238,51 @@ msgstr ""
"sinh(a) # 返回 0.75\n"
"[/codeblock]"
+msgid ""
+"Returns the result of smoothly interpolating the value of [param x] between "
+"[code]0[/code] and [code]1[/code], based on the where [param x] lies with "
+"respect to the edges [param from] and [param to].\n"
+"The return value is [code]0[/code] if [code]x <= from[/code], and [code]1[/"
+"code] if [code]x >= to[/code]. If [param x] lies between [param from] and "
+"[param to], the returned value follows an S-shaped curve that maps [param x] "
+"between [code]0[/code] and [code]1[/code].\n"
+"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = "
+"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # Returns 0.0\n"
+"smoothstep(0, 2, 0.5) # Returns 0.15625\n"
+"smoothstep(0, 2, 1.0) # Returns 0.5\n"
+"smoothstep(0, 2, 2.0) # Returns 1.0\n"
+"[/codeblock]\n"
+"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method "
+"smoothstep] returns the smoothest possible curve with no sudden changes in "
+"the derivative. If you need to perform more advanced transitions, use [Tween] "
+"or [AnimationPlayer].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, "
+"-1.6521) return values[/url]"
+msgstr ""
+"返回 [param x] 在 [code]0[/code] 和 [code]1[/code] 之间平滑插值的结果,基于 "
+"[param x] 相对于边 [param from] 和 [param to] 的位置。\n"
+"如果 [code]x <= from[/code],则返回值为 [code]0[/code];如果 [code]x >= to[/"
+"code],则返回值为 [code]1[/code]。如果 [param x] 位于 [param from] 和 [param "
+"to] 之间,则返回值遵循一条将 [param x] 映射到 [code]0[/code] 和 [code]1[/"
+"code] 之间的 S 形曲线。\n"
+"这条 S 形曲线是三次 Hermite 插值器,由 [code]f(y) = 3*y^2 - 2*y^3[/code] 给"
+"出,其中 [code]y = (x-from) / (to-from)[/code]。\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # 返回 0.0\n"
+"smoothstep(0, 2, 0.5) # 返回 0.15625\n"
+"smoothstep(0, 2, 1.0) # 返回 0.5\n"
+"smoothstep(0, 2, 2.0) # 返回 1.0\n"
+"[/codeblock]\n"
+"与曲线值为 [code]-1.6521[/code] 的 [method ease] 相比,[method smoothstep] 返"
+"回最平滑的曲线,导数没有突然变化。如果需要执行更高级的过渡,请使用 [Tween] 或 "
+"[AnimationPlayer]。\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"smoothstep_ease_comparison.png]smoothstep() 与 ease(x, -1.6521) 返回值的比较[/"
+"url]"
+
msgid ""
"Returns the multiple of [param step] that is the closest to [param x]. This "
"can also be used to round a floating point number to an arbitrary number of "
@@ -3219,30 +3464,6 @@ msgstr ""
"tanh(a) # 返回 0.6\n"
"[/codeblock]"
-msgid ""
-"Returns the internal type of the given [param variable], using the [enum "
-"Variant.Type] values.\n"
-"[codeblock]\n"
-"var json = JSON.new()\n"
-"json.parse('[\"a\", \"b\", \"c\"]')\n"
-"var result = json.get_data()\n"
-"if typeof(result) == TYPE_ARRAY:\n"
-" print(result[0]) # Prints a\n"
-"else:\n"
-" print(\"Unexpected result\")\n"
-"[/codeblock]"
-msgstr ""
-"使用 [enum Variant.Type] 值返回给定 [param variable] 的内部类型。\n"
-"[codeblock]\n"
-"var json = JSON.new()\n"
-"json.parse('[\"a\", \"b\", \"c\"]')\n"
-"var result = json.get_data()\n"
-"if typeof(result) == TYPE_ARRAY:\n"
-" print(result[0]) # 输出 a\n"
-"else:\n"
-" print(\"出乎意料的结果\")\n"
-"[/codeblock]"
-
msgid ""
"Encodes a [Variant] value to a byte array, without encoding objects. "
"Deserialization can be done with [method bytes_to_var].\n"
@@ -3351,44 +3572,6 @@ msgstr ""
"# a 为 5.5 (浮点类型)\n"
"[/codeblock]"
-msgid ""
-"Wraps the float [param value] between [param min] and [param max]. Can be "
-"used for creating loop-alike behavior or infinite surfaces.\n"
-"[codeblock]\n"
-"# Infinite loop between 5.0 and 9.9\n"
-"value = wrapf(value + 0.1, 5.0, 10.0)\n"
-"[/codeblock]\n"
-"[codeblock]\n"
-"# Infinite rotation (in radians)\n"
-"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
-"[/codeblock]\n"
-"[codeblock]\n"
-"# Infinite rotation (in radians)\n"
-"angle = wrapf(angle + 0.1, -PI, PI)\n"
-"[/codeblock]\n"
-"[b]Note:[/b] If [param min] is [code]0[/code], this is equivalent to [method "
-"fposmod], so prefer using that instead.\n"
-"[code]wrapf[/code] is more flexible than using the [method fposmod] approach "
-"by giving the user control over the minimum value."
-msgstr ""
-"在 [param min] 和 [param max] 之间将浮点数 [param value] 循环。可用于创建类似"
-"循环的行为或无限曲面。\n"
-"[codeblock]\n"
-"# 在 5.0 和 9.9 之间无限循环\n"
-"value = wrapf(value + 0.1, 5.0, 10.0)\n"
-"[/codeblock]\n"
-"[codeblock]\n"
-"# 无限旋转(弧度)\n"
-"angle = wrapf(angle + 0.1, 0.0, TAU)\n"
-"[/codeblock]\n"
-"[codeblock]\n"
-"# 无限旋转(弧度)\n"
-"angle = wrapf(angle + 0.1, -PI, PI)\n"
-"[/codeblock]\n"
-"[b]注意:[/b]如果 [param min] 为 [code]0[/code],则相当于 [method fposmod],因"
-"此请改用它。\n"
-"通过让用户控制最小值,[code]wrapf[/code] 比使用 [method fposmod] 方法更灵活。"
-
msgid ""
"Wraps the integer [param value] between [param min] and [param max]. Can be "
"used for creating loop-alike behavior or infinite surfaces.\n"
@@ -3424,6 +3607,13 @@ msgstr "[ClassDB] 单例。"
msgid "The [DisplayServer] singleton."
msgstr "[DisplayServer] 单例。"
+msgid ""
+"The [EditorInterface] singleton.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+"[EditorInterface] 单例。\n"
+"[b]注意:[/b]仅在编辑器构建中可用。"
+
msgid "The [Engine] singleton."
msgstr "[Engine] 单例。"
@@ -4079,6 +4269,9 @@ msgstr "快捷启动键 F。"
msgid "\"Globe\" key on Mac / iPad keyboard."
msgstr "Mac / iPad 键盘上的“地球”键。"
+msgid "\"On-screen keyboard\" key on iPad keyboard."
+msgstr "iPad 键盘上的“屏幕键盘”键。"
+
msgid "英数 key on Mac keyboard."
msgstr "Mac 键盘上的“英数”键。"
@@ -4424,9 +4617,6 @@ msgid ""
"button."
msgstr "游戏控制器 SDL guide 按钮。对应于索尼 PS、Xbox 的 Home 键。"
-msgid "Game controller SDL start button. Corresponds to the Nintendo + button."
-msgstr "游戏控制器 SDL start 按钮。对应 Nintendo + 按钮。"
-
msgid ""
"Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS "
"button."
@@ -4831,6 +5021,29 @@ msgstr "打印机起火错误(这是个彩蛋,引擎中没有内置方法会
msgid "The property has no hint for the editor."
msgstr "该属性没有编辑器提示。"
+msgid ""
+"Hints that an [int] or [float] property should be within a range specified "
+"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
+"code]. The hint string can optionally include [code]\"or_greater\"[/code] and/"
+"or [code]\"or_less\"[/code] to allow manual input going respectively above "
+"the max or below the min values.\n"
+"[b]Example:[/b] [code]\"-360,360,1,or_greater,or_less\"[/code].\n"
+"Additionally, other keywords can be included: [code]\"exp\"[/code] for "
+"exponential range editing, [code]\"radians_as_degrees\"[/code] for editing "
+"radian angles in degrees (the range values are also in degrees), "
+"[code]\"degrees\"[/code] to hint at an angle and [code]\"hide_slider\"[/code] "
+"to hide the slider."
+msgstr ""
+"提示 [int] 或 [float] 属性应在提示字符串 [code]\"最小值,最大值\"[/code] 或 "
+"[code]\"最小值,最大值,步长\"[/code] 指定的范围内。提示字符串可以选择包含 "
+"[code]\"or_greater\"[/code] 和/或 [code]\"or_less\"[/code],从而允许手动输入高"
+"于最大值或低于最小值的值。\n"
+"[b]示例:[/b][code]\"-360,360,1,or_greater,or_less\"[/code]。\n"
+"此外,还可以包含其他关键字:[code]\"exp\"[/code] 用于指数范围编辑,"
+"[code]\"radians_as_degrees\"[/code] 用于以度数编辑弧度角(范围的取值也使用度"
+"数),[code]\"degrees\"[/code] 提示角度,[code]\"hide_slider\"[/code] 则会隐藏"
+"滑块。"
+
msgid ""
"Hints that an [int] or [String] property is an enumerated value to pick in a "
"list specified via a hint string.\n"
@@ -5612,6 +5825,12 @@ msgstr ""
msgid "Returns the scalar length of the shortest axis of the [AABB]."
msgstr "返回该 [AABB] 最短轴的标量长度。"
+msgid ""
+"Returns the vertex of the AABB that's the farthest in a given direction. This "
+"point is commonly known as the support point in collision detection "
+"algorithms."
+msgstr "返回指定方向上最远的 AABB 顶点。该点通常称为碰撞检测算法的支撑点。"
+
msgid "Returns the volume of the [AABB]."
msgstr "返回该 [AABB] 的体积。"
@@ -5718,11 +5937,6 @@ msgstr ""
"[b]注意:[/b]由于浮点数精度误差,请考虑改用 [method is_equal_approx],会更可"
"靠。"
-msgid ""
-"Inversely transforms (multiplies) the [AABB] by the given [Transform3D] "
-"transformation matrix."
-msgstr "通过给定的 [Transform3D] 变换矩阵对该 [AABB] 进行逆变换(相乘)。"
-
msgid ""
"Returns [code]true[/code] if the AABBs are exactly equal.\n"
"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
@@ -6080,6 +6294,23 @@ msgid ""
"manually, it affects other bodies in its path."
msgstr "无法被外力移动的 2D 物理物体。手动移动时会影响路径上的其他物体。"
+msgid ""
+"An animatable 2D physics body. It can't be moved by external forces or "
+"contacts, but can be moved manually by other means such as code, "
+"[AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform2D].\n"
+"When [AnimatableBody2D] is moved, its linear and angular velocity are "
+"estimated and used to affect other physics bodies in its path. This makes it "
+"useful for moving platforms, doors, and other moving objects."
+msgstr ""
+"可动画的 2D 物理物体。无法因外力和接触而移动,但可以通过代码、[AnimationMixer]"
+"([member AnimationMixer.callback_mode_process] 设为 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS])、[RemoteTransform2D] 等方法手动移"
+"动。\n"
+"[AnimatableBody2D] 发生移动时,会对线速度和角速度进行估算,并用于影响其路径上"
+"的其他物理物体。因此适用于移动平台、门等移动的对象。"
+
msgid ""
"If [code]true[/code], the body's movement will be synchronized to the physics "
"frame. This is useful when animating movement via [AnimationPlayer], for "
@@ -6095,6 +6326,23 @@ msgid ""
"manually, it affects other bodies in its path."
msgstr "无法被外力移动的 3D 物理物体。手动移动时会影响路径上的其他物体。"
+msgid ""
+"An animatable 3D physics body. It can't be moved by external forces or "
+"contacts, but can be moved manually by other means such as code, "
+"[AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform3D].\n"
+"When [AnimatableBody3D] is moved, its linear and angular velocity are "
+"estimated and used to affect other physics bodies in its path. This makes it "
+"useful for moving platforms, doors, and other moving objects."
+msgstr ""
+"可动画的 3D 物理物体。无法因外力或接触而移动,但可以通过代码、[AnimationMixer]"
+"([member AnimationMixer.callback_mode_process] 设为 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS])、[RemoteTransform3D] 等方法手动移"
+"动。\n"
+"[AnimatableBody3D] 发生移动时,会对线速度和角速度进行估算,并用于影响其路径上"
+"的其他物理物体。因此适用于移动平台、门等移动的对象。"
+
msgid "3D Physics Tests Demo"
msgstr "3D 物理测试演示"
@@ -6696,10 +6944,6 @@ msgstr ""
"[b]注意:[/b]压缩轨道有各种限制(比如不能从编辑器中编辑),所以只有在你真正需"
"要时才使用压缩动画。"
-msgid ""
-"Adds a new track that is a copy of the given track from [param to_animation]."
-msgstr "添加一个新的轨道,这个轨道是给定轨道 [param to_animation] 的副本。"
-
msgid ""
"Returns the index of the specified track. If the track is not found, return "
"-1."
@@ -7093,8 +7337,21 @@ msgid ""
"[param to_name]."
msgstr "当 [Animation] 的键从 [param name] 更改为 [param to_name] 时发出。"
+msgid "Base class for [AnimationPlayer] and [AnimationTree]."
+msgstr "[AnimationPlayer] 和 [AnimationTree] 的基类。"
+
+msgid ""
+"Base class for [AnimationPlayer] and [AnimationTree] to manage animation "
+"lists. It also has general properties and methods for playback and blending.\n"
+"After instantiating the playback information data within the extended class, "
+"the blending is processed by the [AnimationMixer]."
+msgstr ""
+"[AnimationPlayer] 和 [AnimationTree] 的基类,用于管理动画列表。同时还提供了用"
+"于播放和混合的常用属性和方法。\n"
+"在扩展后的类中实例化播放信息数据后,就会由 [AnimationMixer] 负责处理混合。"
+
msgid "A virtual function for processing after key getting during playback."
-msgstr "一个用于播放期间键获取之后的处理的虚函数。"
+msgstr "虚函数,用于播放期间在获取关键帧之后的处理。"
msgid ""
"Adds [param library] to the animation player, under the key [param name]."
@@ -7103,6 +7360,13 @@ msgstr "将 [param library] 添加到该动画播放器的键 [param name] 下
msgid "Manually advance the animations by the specified time (in seconds)."
msgstr "手动将动画前进指定的时间(单位为秒)。"
+msgid ""
+"[AnimationMixer] caches animated nodes. It may not notice if a node "
+"disappears; [method clear_caches] forces it to update the cache again."
+msgstr ""
+"[AnimationMixer] 会缓存动画节点。如果一个节点消失,它可能不会注意到;[method "
+"clear_caches] 能够强制它再次更新缓存。"
+
msgid ""
"Returns the key of [param animation] or an empty [StringName] if not found."
msgstr "返回 [param animation] 的键;如果未找到,则返回一个空的 [StringName]。"
@@ -7466,6 +7730,9 @@ msgid ""
msgstr ""
"将与键 [param name] 关联的 [AnimationLibrary] 移动到键 [param newname]。"
+msgid "If [code]true[/code], the [AnimationMixer] will be processing."
+msgstr "如果 [code]true[/code] 时,[AnimationMixer] 将执行逻辑处理。"
+
msgid ""
"The number of possible simultaneous sounds for each of the assigned "
"AudioStreamPlayers.\n"
@@ -7483,6 +7750,42 @@ msgstr "方法调用轨道所使用的调用模式。"
msgid "The process notification in which to update animations."
msgstr "更新动画的过程通知。"
+msgid ""
+"If [code]true[/code], the blending uses the deterministic algorithm. The "
+"total weight is not normalized and the result is accumulated with an initial "
+"value ([code]0[/code] or a [code]\"RESET\"[/code] animation if present).\n"
+"This means that if the total amount of blending is [code]0.0[/code], the "
+"result is equal to the [code]\"RESET\"[/code] animation.\n"
+"If the number of tracks between the blended animations is different, the "
+"animation with the missing track is treated as if it had the initial value.\n"
+"If [code]false[/code], The blend does not use the deterministic algorithm. "
+"The total weight is normalized and always [code]1.0[/code]. If the number of "
+"tracks between the blended animations is different, nothing is done about the "
+"animation that is missing a track.\n"
+"[b]Note:[/b] In [AnimationTree], the blending with [AnimationNodeAdd2], "
+"[AnimationNodeAdd3], [AnimationNodeSub2] or the weight greater than "
+"[code]1.0[/code] may produce unexpected results.\n"
+"For example, if [AnimationNodeAdd2] blends two nodes with the amount "
+"[code]1.0[/code], then total weight is [code]2.0[/code] but it will be "
+"normalized to make the total amount [code]1.0[/code] and the result will be "
+"equal to [AnimationNodeBlend2] with the amount [code]0.5[/code]."
+msgstr ""
+"如果为 [code]true[/code],则混合使用确定性算法。总权重不进行归一化,在初始值的"
+"基础上进行累加(初始值为 [code]0[/code],表示可能存在的 [code]\"RESET\"[/"
+"code] 动画)。\n"
+"这意味着如果混合总权重为 [code]0.0[/code],则结果等于 [code]\"RESET\"[/code] "
+"动画。\n"
+"如果混合动画之间的轨道数量不同,则缺少轨道的动画将被视为具有初始值。\n"
+"如果为 [code]false[/code],则混合不会使用确定性算法。总权重将归一化且始终为 "
+"[code]1.0[/code]。如果混合动画之间的轨道数量不同,则不会对缺少轨道的动画执行任"
+"何操作。\n"
+"[b] 注意:[/b] 在 [AnimationTree] 中,与 [AnimationNodeAdd2] 、 "
+"[AnimationNodeAdd3] 、 [AnimationNodeSub2] 或权重大于 [code]1.0[/code] 混合可"
+"能产生意想不到的结果。\n"
+"例如,如果 [AnimationNodeAdd2] 混合了两个取值为 [code]1.0[/code] 的节点,则总"
+"权重为 [code]2.0[/code],但它将被归一化使总权重保持 [code]1.0[/code],且结果将"
+"等于取值为 [code]0.5[/code] 的 [AnimationNodeBlend2]。"
+
msgid ""
"This is used by the editor. If set to [code]true[/code], the scene will be "
"saved with the effects of the reset animation (the animation with the key "
@@ -7548,6 +7851,13 @@ msgstr ""
"当缓存被清除时通知,可以是自动清除,也可以是通过 [method clear_caches] 手动清"
"除。"
+msgid ""
+"Editor only. Notifies when the property have been updated to update dummy "
+"[AnimationPlayer] in animation player editor."
+msgstr ""
+"仅用于编辑器。当属性已完成更新进而更新动画播放编辑器中的虚拟 "
+"[AnimationPlayer] 时发出通知。"
+
msgid ""
"Process animation during physics frames (see [constant Node."
"NOTIFICATION_INTERNAL_PHYSICS_PROCESS]). This is especially useful when "
@@ -9028,6 +9338,16 @@ msgstr ""
"动画轨道编辑器比用代码实现更方便,也可以优先于 [Tween] 使用。\n"
"更新动画的目标属性是在处理帧中进行的。"
+msgid ""
+"Returns the key of the animation which is queued to play after the [param "
+"animation_from] animation."
+msgstr "返回在 [param animation_from] 动画之后排队播放的动画的键。"
+
+msgid ""
+"Triggers the [param animation_to] animation when the [param animation_from] "
+"animation completes."
+msgstr "当 [param animation_from] 动画完成时,触发 [param animation_to] 动画。"
+
msgid "Clears all queued, unplayed animations."
msgstr "清除所有已排队、未播放的动画。"
@@ -9036,9 +9356,22 @@ msgid ""
"their keys."
msgstr "返回两个动画之间的混合时间(以秒为单位),由它们的键引用。"
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeMethod]."
+msgstr "用于向后兼容。见 [enum AnimationMixer.AnimationCallbackModeMethod]。"
+
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeProcess]."
+msgstr "用于向后兼容。见 [enum AnimationMixer.AnimationCallbackModeProcess]。"
+
msgid "Returns a list of the animation keys that are currently queued to play."
msgstr "返回当前排队播放的动画键列表。"
+msgid "For backward compatibility. See [member AnimationMixer.root_node]."
+msgstr "用于向后兼容。见 [member AnimationMixer.root_node]。"
+
msgid ""
"Pauses the currently playing animation. The [member "
"current_animation_position] will be kept and calling [method play] or [method "
@@ -9090,6 +9423,26 @@ msgstr ""
"[b]注意:[/b]如果当前正在播放循环动画,除非以某种方式停止循环动画,否则排队的"
"动画将永远不会播放。"
+msgid ""
+"Seeks the animation to the [param seconds] point in time (in seconds). If "
+"[param update] is [code]true[/code], the animation updates too, otherwise it "
+"updates at process time. Events between the current frame and [param seconds] "
+"are skipped.\n"
+"If [param update_only] is true, the method / audio / animation playback "
+"tracks will not be processed.\n"
+"[b]Note:[/b] Seeking to the end of the animation doesn't emit [signal "
+"AnimationMixer.animation_finished]. If you want to skip animation and emit "
+"the signal, use [method AnimationMixer.advance]."
+msgstr ""
+"将动画寻道到时间点 [param seconds](单位为秒)。[param update] 为 [code]true[/"
+"code] 时会同时更新动画,否则会在处理时更新。当前帧和 [param seconds] 之间的事"
+"件会被跳过。\n"
+"如果 [param update_only] 为 true,则不会处理方法轨道、音频轨道、动画播放轨"
+"道。\n"
+"[b]注意:[/b]寻道至动画的末尾不会触发 [signal AnimationMixer."
+"animation_finished]。如果想要跳过动画并触发该信号,请使用 [method "
+"AnimationMixer.advance]。"
+
msgid ""
"Specifies a blend time (in seconds) between two animations, referenced by "
"their keys."
@@ -9138,11 +9491,75 @@ msgstr "当前正在播放的动画的长度(以秒为单位)。"
msgid "The position (in seconds) of the currently playing animation."
msgstr "当前播放的动画的位置(以秒为单位)。"
+msgid ""
+"If [code]true[/code] and the engine is running in Movie Maker mode (see "
+"[MovieWriter]), exits the engine with [method SceneTree.quit] as soon as an "
+"animation is done playing in this [AnimationPlayer]. A message is printed "
+"when the engine quits for this reason.\n"
+"[b]Note:[/b] This obeys the same logic as the [signal AnimationMixer."
+"animation_finished] signal, so it will not quit the engine if the animation "
+"is set to be looping."
+msgstr ""
+"如果为 [code]true[/code],并且引擎在 Movie Maker 模式下运行(见 "
+"[MovieWriter]),则会在此 [AnimationPlayer] 中播放完动画后,立即使用 [method "
+"SceneTree.quit] 退出引擎。当引擎因此而退出时,会打印一条消息。\n"
+"[b]注意:[/b]这与 [signal AnimationMixer.animation_finished] 信号遵循相同的逻"
+"辑,因此如果动画被设置为循环,它不会退出引擎。"
+
msgid ""
"The default time in which to blend animations. Ranges from 0 to 4096 with "
"0.01 precision."
msgstr "混合动画的默认时间。范围从 0 到 4096,精度为 0.01。"
+msgid ""
+"Emitted when a queued animation plays after the previous animation finished. "
+"See also [method AnimationPlayer.queue].\n"
+"[b]Note:[/b] The signal is not emitted when the animation is changed via "
+"[method AnimationPlayer.play] or by an [AnimationTree]."
+msgstr ""
+"在前一个动画完成后,队列中的动画播放时发出。另见 [method AnimationPlayer."
+"queue]。\n"
+"[b]注意:[/b]通过 [method AnimationPlayer.play] 或 [AnimationTree] 改变动画"
+"时,不会发出此信号。"
+
+msgid "Emitted when [member current_animation] changes."
+msgstr "当 [member current_animation] 更改时发出。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]."
+msgstr ""
+"用于向后兼容。见 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]."
+msgstr ""
+"用于向后兼容。见 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]."
+msgstr ""
+"用于向后兼容。见 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]."
+msgstr ""
+"用于向后兼容。见 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]."
+msgstr ""
+"用于向后兼容。见 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]。"
+
msgid ""
"Base class for [AnimationNode]s that hold one or multiple composite "
"animations. Usually used for [member AnimationTree.tree_root]."
@@ -9190,9 +9607,20 @@ msgstr ""
"法将不会像预期的那样发挥作用。播放和过渡应该只使用 [AnimationTree] 和组成它的 "
"[AnimationNode] 来处理。[AnimationPlayer] 节点应仅用于添加、删除和编辑动画。"
+msgid ""
+"The path to the [Node] used to evaluate the [AnimationNode] [Expression] if "
+"one is not explicitly specified internally."
+msgstr ""
+"用于评估 [AnimationNode] [Expression] 的 [Node] 的路径,内部未明确指定路径时使"
+"用。"
+
msgid "The path to the [AnimationPlayer] used for animating."
msgstr "用于动画的 [AnimationPlayer] 的路径。"
+msgid ""
+"The root animation node of this [AnimationTree]. See [AnimationRootNode]."
+msgstr "该 [AnimationTree] 的根动画节点。见 [AnimationRootNode]。"
+
msgid "Emitted when the [member anim_player] is changed."
msgstr "当 [member anim_player] 被改变时发出。"
@@ -9574,6 +10002,33 @@ msgid ""
"exiting it."
msgstr "3D 空间中的一个区域,能够检测到其他 [CollisionObject3D] 的进入或退出。"
+msgid ""
+"[Area3D] is a region of 3D space defined by one or multiple "
+"[CollisionShape3D] or [CollisionPolygon3D] child nodes. It detects when other "
+"[CollisionObject3D]s enter or exit it, and it also keeps track of which "
+"collision objects haven't exited it yet (i.e. which one are overlapping it).\n"
+"This node can also locally alter or override physics parameters (gravity, "
+"damping) and route audio to custom audio buses.\n"
+"[b]Warning:[/b] Using a [ConcavePolygonShape3D] inside a [CollisionShape3D] "
+"child of this node (created e.g. by using the [b]Create Trimesh Collision "
+"Sibling[/b] option in the [b]Mesh[/b] menu that appears when selecting a "
+"[MeshInstance3D] node) may give unexpected results, since this collision "
+"shape is hollow. If this is not desired, it has to be split into multiple "
+"[ConvexPolygonShape3D]s or primitive shapes like [BoxShape3D], or in some "
+"cases it may be replaceable by a [CollisionPolygon3D]."
+msgstr ""
+"[Area3D] 是 3D 空间中的一个区域,由一个或多个 [CollisionShape3D] 或 "
+"[CollisionPolygon3D] 子节点定义,能够检测到其他 [CollisionObject3D] 进入或退出"
+"该区域,同时也会记录哪些碰撞对象尚未退出(即哪些对象与其存在重叠)。\n"
+"这个节点也可以在局部修改或覆盖物理参数(重力、阻尼),将音频引导至自定义音频总"
+"线。\n"
+"[b]警告:[/b]在这个节点的 [CollisionShape3D] 子节点中使用 "
+"[ConcavePolygonShape3D](创建方法是在选中 [MeshInstance3D] 节点后,在出现的 "
+"[b]Mesh[/b] 菜单中选择[b]创建三角网格碰撞同级[/b]选项)可能得到意外的结果,因"
+"为碰撞形状是空心的。如果不想要这种行为,则应该将其拆分为多个 "
+"[ConvexPolygonShape3D] 或 [BoxShape3D] 等基础网格,有些情况下也可以用 "
+"[CollisionPolygon3D] 代替。"
+
msgid "GUI in 3D Demo"
msgstr "3D GUI 演示"
@@ -10213,6 +10668,23 @@ msgstr ""
"或字典。请注意,无论 [param deep] 如何设置,任何 [Object] 派生的元素都是浅拷贝"
"的。"
+msgid ""
+"Removes the first occurrence of a value from the array. If the value does not "
+"exist in the array, nothing happens. To remove an element by index, use "
+"[method remove_at] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] Do not erase entries while iterating over the array."
+msgstr ""
+"从数组中移除第一个匹配的值。如果数组中不存在该值,则什么也不会发生。要通过索引"
+"移除元素,请改用 [method remove_at]。\n"
+"[b]注意:[/b]这个方法是就地操作的,不返回修改后的数组。\n"
+"[b]注意:[/b]在大型数组上,如果移除的元素靠近数组的开头(索引 0),则此方法会"
+"较慢。这是因为所有放置在移除元素之后的元素都必须重新索引。\n"
+"[b]注意:[/b]在遍历数组时不要移除条目。"
+
msgid ""
"Assigns the given value to all elements in the array. This can typically be "
"used together with [method resize] to create an array with a given size and "
@@ -10394,6 +10866,23 @@ msgstr ""
"哈希值[i]并不[/i]意味着数组相等,因为不同的数组可能因为哈希碰撞而得到一致的哈"
"希值。"
+msgid ""
+"Inserts a new element at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]pos == size()[/code]). Returns "
+"[constant OK] on success, or one of the other [enum Error] values if the "
+"operation failed.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the inserted "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the newly inserted element have to be reindexed."
+msgstr ""
+"在给定的数组位置插入一个新值。位置必须合法,或者是在数组末尾([code]pos == "
+"size()[/code])。操作成功时返回 [constant OK],而如果操作失败则返回其他任意一"
+"个 [enum Error] 值。\n"
+"[b]注意:[/b]该方法在原地执行,不会返回修改过的数组。\n"
+"[b]注意:[/b]在较大的数组中,如果插入值的位置在数组偏前的位置,这个方法的运行"
+"速度会比较慢,因为在插入值后面所有的元素都要被重新索引。"
+
msgid "Returns [code]true[/code] if the array is empty."
msgstr "该数组为空时,返回 [code]true[/code]。"
@@ -10500,6 +10989,33 @@ msgstr ""
"返回 [code]null[/code]。\n"
"使用自定义比较器的示例见 [method max]。"
+msgid ""
+"Returns a random value from the target array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # Prints either of the four numbers.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // Prints either of the four numbers.\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"从目标数组中返回一个随机值。如果数组为空,则打印一个错误并返回 [code]null[/"
+"code]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # 打印四个数字中的任何一个。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // 打印四个数字中的任何一个。\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
msgid ""
"Removes and returns the element of the array at index [param position]. If "
"negative, [param position] is considered relative to the end of the array. "
@@ -10587,6 +11103,40 @@ msgstr ""
"[/codeblock]\n"
"另见 [method map]、[method filter]、[method any]、[method all]。"
+msgid ""
+"Removes an element from the array by index. If the index does not exist in "
+"the array, nothing happens. To remove an element by searching for its value, "
+"use [method erase] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] [param position] cannot be negative. To remove an element "
+"relative to the end of the array, use [code]arr.remove_at(arr.size() - (i + "
+"1))[/code]. To remove the last element from the array without returning the "
+"value, use [code]arr.resize(arr.size() - 1)[/code]."
+msgstr ""
+"通过索引从数组中移除元素。如果索引在数组中不存在,则什么也不会发生。要通过搜索"
+"一个元素的值来移除,请改用 [method erase]。\n"
+"[b]注意:[/b]这个方法是就地操作的,不返回修改后的数组。\n"
+"[b]注意:[/b]在大数组中,如果被删除的元素靠近数组的开头(索引 0),这个方法会"
+"比较慢。这是因为所有放置在被移除元素之后的元素都要被重新索引。\n"
+"[b]注意:[/b][param position] 不能为负。要移除数组末尾的元素,请使用 "
+"[code]arr.remove_at(arr.size() - (i + 1))[/code]。要移除数组末尾的元素并不返回"
+"值,请使用 [code]arr.resize(arr.size() - 1)[/code]。"
+
+msgid ""
+"Resizes the array to contain a different number of elements. If the array "
+"size is smaller, elements are cleared, if bigger, new elements are "
+"[code]null[/code]. Returns [constant OK] on success, or one of the other "
+"[enum Error] values if the operation failed.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array."
+msgstr ""
+"调整数组的大小,让包含的元素数量发生变化。如果数组变小则清除多余元素,变大则新"
+"元素为 [code]null[/code]。成功时返回 [constant OK],操作失败时返回其他 [enum "
+"Error] 值。\n"
+"[b]注意:[/b]这个方法是就地操作的,不返回修改后的数组。"
+
msgid "Reverses the order of the elements in the array."
msgstr "将数组中的元素逆序排列。"
@@ -11132,6 +11682,9 @@ msgstr ""
"类似于 [ArrayMesh],但适用于遮挡物。\n"
"有关设置遮挡剔除的说明,请参阅 [OccluderInstance3D] 的文档。"
+msgid "Occlusion culling"
+msgstr "遮挡剔除"
+
msgid ""
"Sets [member indices] and [member vertices], while updating the final "
"occluder only once after both values are set."
@@ -11615,124 +12168,6 @@ msgid ""
"a connected graph in 3D space."
msgstr "A* 的一种实现,用于寻找 3D 空间中连接图中的两个顶点之间的最短路径。"
-msgid ""
-"A* (A star) is a computer algorithm used in pathfinding and graph traversal, "
-"the process of plotting short paths among vertices (points), passing through "
-"a given set of edges (segments). It enjoys widespread use due to its "
-"performance and accuracy. Godot's A* implementation uses points in 3D space "
-"and Euclidean distances by default.\n"
-"You must add points manually with [method add_point] and create segments "
-"manually with [method connect_points]. Once done, you can test if there is a "
-"path between two points with the [method are_points_connected] function, get "
-"a path containing indices by [method get_id_path], or one containing actual "
-"coordinates with [method get_point_path].\n"
-"It is also possible to use non-Euclidean distances. To do so, create a class "
-"that extends [code]AStar3D[/code] and override methods [method _compute_cost] "
-"and [method _estimate_cost]. Both take two indices and return a length, as is "
-"shown in the following example.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"class MyAStar:\n"
-" extends AStar3D\n"
-"\n"
-" func _compute_cost(u, v):\n"
-" return abs(u - v)\n"
-"\n"
-" func _estimate_cost(u, v):\n"
-" return min(0, abs(u - v) - 1)\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public partial class MyAStar : AStar3D\n"
-"{\n"
-" public override float _ComputeCost(long fromId, long toId)\n"
-" {\n"
-" return Mathf.Abs((int)(fromId - toId));\n"
-" }\n"
-"\n"
-" public override float _EstimateCost(long fromId, long toId)\n"
-" {\n"
-" return Mathf.Min(0, Mathf.Abs((int)(fromId - toId)) - 1);\n"
-" }\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[method _estimate_cost] should return a lower bound of the distance, i.e. "
-"[code]_estimate_cost(u, v) <= _compute_cost(u, v)[/code]. This serves as a "
-"hint to the algorithm because the custom [code]_compute_cost[/code] might be "
-"computation-heavy. If this is not the case, make [method _estimate_cost] "
-"return the same value as [method _compute_cost] to provide the algorithm with "
-"the most accurate information.\n"
-"If the default [method _estimate_cost] and [method _compute_cost] methods are "
-"used, or if the supplied [method _estimate_cost] method returns a lower bound "
-"of the cost, then the paths returned by A* will be the lowest-cost paths. "
-"Here, the cost of a path equals the sum of the [method _compute_cost] results "
-"of all segments in the path multiplied by the [code]weight_scale[/code]s of "
-"the endpoints of the respective segments. If the default methods are used and "
-"the [code]weight_scale[/code]s of all points are set to [code]1.0[/code], "
-"then this equals the sum of Euclidean distances of all segments in the path."
-msgstr ""
-"A*(A 星)是一种计算机算法,用于寻路和图遍历,是通过一组给定的边(线段),在顶"
-"点(点)之间绘制短路径的过程。由于其性能和准确性,它被广泛使用。Godot 的 A* 实"
-"现默认使用 3D 空间中的点和欧几里得距离。\n"
-"你需要使用 [method add_point] 手动添加点,并使用 [method connect_points] 手动"
-"创建线段。完成后,可以使用 [method are_points_connected] 函数,测试两点之间是"
-"否存在路径,通过 [method get_id_path] 获取包含索引的路径,或使用 [method "
-"get_point_path] 获取包含实际坐标的路径。\n"
-"也可以使用非欧几里得距离。为此,创建一个扩展 [code]AStar3D[/code] 的类,并覆盖"
-"方法 [method _compute_cost] 和 [method _estimate_cost]。两者都接受两个索引并返"
-"回一个长度,如以下示例所示。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"class MyAStar:\n"
-" extends AStar3D\n"
-"\n"
-" func _compute_cost(u, v):\n"
-" return abs(u - v)\n"
-"\n"
-" func _estimate_cost(u, v):\n"
-" return min(0, abs(u - v) - 1)\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public partial class MyAStar : AStar3D\n"
-"{\n"
-" public override float _ComputeCost(long fromId, long toId)\n"
-" {\n"
-" return Mathf.Abs((int)(fromId - toId));\n"
-" }\n"
-"\n"
-" public override float _EstimateCost(long fromId, long toId)\n"
-" {\n"
-" return Mathf.Min(0, Mathf.Abs((int)(fromId - toId)) - 1);\n"
-" }\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[method _estimate_cost] 应该返回距离的下限,即 [code]_estimate_cost(u, v) <= "
-"_compute_cost(u, v)[/code]。这可以作为算法的提示,因为自定义 "
-"[code]_compute_cost[/code] 可能计算量很大。如果不是这种情况,请使 [method "
-"_estimate_cost] 返回与 [method _compute_cost] 相同的值,以便为算法提供最准确的"
-"信息。\n"
-"如果使用默认的 [method _estimate_cost] 和 [method _compute_cost] 方法,或者如"
-"果提供的 [method _estimate_cost] 方法返回成本的下限,则 A* 返回的路径将是成本"
-"最低的路径。这里,路径的代价等于路径中所有段的 [method _compute_cost] 结果乘以"
-"各个段端点的权重 [code]weight_scale[/code] 之和。如果使用默认方法,并且所有点"
-"的 [code]weight_scale[/code] 设置为 [code]1.0[/code],则这等于路径中所有段的欧"
-"几里得距离之和。"
-
-msgid ""
-"Called when computing the cost between two connected points.\n"
-"Note that this function is hidden in the default [code]AStar3D[/code] class."
-msgstr ""
-"在计算两个连接点之间的成本时调用。\n"
-"请注意,此函数隐藏在默认的 [code]AStar3D[/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]AStar3D[/code] class."
-msgstr ""
-"在估算一个点和路径终点之间的成本时调用。\n"
-"请注意,此函数隐藏在默认的 [code]AStar3D[/code] 类中。"
-
msgid ""
"Adds a new point at the given position with the given identifier. The [param "
"id] must be 0 or larger, and the [param weight_scale] must be 0.0 or "
@@ -11936,11 +12371,6 @@ msgstr ""
"如果将第2个点的权重更改为 3,则结果将改为 [code][1, 4, 3][/code],因为现在即使"
"距离更长,但通过第 4 点也比通过第 2 点“更容易”。"
-msgid ""
-"Returns the capacity of the structure backing the points, useful in "
-"conjunction with [code]reserve_space[/code]."
-msgstr "返回支持点的结构的容量,与 [code]reserve_space[/code] 配合使用。"
-
msgid ""
"Returns an array with the IDs of the points that form the connection with the "
"given point.\n"
@@ -12023,26 +12453,91 @@ msgid ""
msgstr "A* 的一种实现,用于寻找疏松 2D 网格中两点之间的最短路径。"
msgid ""
-"Called when computing the cost between two connected points.\n"
-"Note that this function is hidden in the default [code]AStarGrid2D[/code] "
-"class."
+"[AStarGrid2D] is a variant of [AStar2D] that is specialized for partial 2D "
+"grids. It is simpler to use because it doesn't require you to manually create "
+"points and connect them together. This class also supports multiple types of "
+"heuristics, modes for diagonal movement, and a jumping mode to speed up "
+"calculations.\n"
+"To use [AStarGrid2D], you only need to set the [member region] 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.region = Rect2i(0, 0, 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.Region = new Rect2I(0, 0, 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]\n"
+"To remove a point from the pathfinding grid, it must be set as \"solid\" with "
+"[method set_point_solid]."
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] 类中是隐藏的。"
+"[AStarGrid2D] 是 [AStar2D] 的变种,针对疏松 2D 网格进行了优化。因为不需要手动"
+"创建点并进行连接,所以用起来更加简单。这个类还支持使用不同的启发方法、斜向移动"
+"模式、跳跃模式,从而加速运算。\n"
+"要使用 [AStarGrid2D],你只需要设置网格的 [member region],[member cell_size] "
+"可以不设置,最后调用 [method update] 方法即可:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar_grid = AStarGrid2D.new()\n"
+"astar_grid.region = Rect2i(0, 0, 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))) # 输出 (0, 0), "
+"(1, 1), (2, 2), (3, 3), (3, 4)\n"
+"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # 输出 (0, "
+"0), (16, 16), (32, 32), (48, 48), (48, 64)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"AStarGrid2D astarGrid = new AStarGrid2D();\n"
+"astarGrid.Region = new Rect2I(0, 0, 32, 32);\n"
+"astarGrid.CellSize = new Vector2I(16, 16);\n"
+"astarGrid.Update();\n"
+"GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // 输出 (0, "
+"0), (1, 1), (2, 2), (3, 3), (3, 4)\n"
+"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // 输出 "
+"(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"要从寻路网格中移除某个点,必须使用 [method set_point_solid] 将其设置为“实心”。"
msgid ""
"Clears the grid and sets the [member region] to [code]Rect2i(0, 0, 0, 0)[/"
"code]."
msgstr "清空网格并将 [member region] 设置为 [code]Rect2i(0, 0, 0, 0)[/code]。"
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"solid flag.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"使用指定的值填充网格上 [param region] 区域的实心标志。\n"
+"[b]注意:[/b]调用该函数后不需要调用 [method update]。"
+
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"weight scale.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"使用指定的值填充网格上 [param region] 区域的权重缩放。\n"
+"[b]注意:[/b]调用该函数后不需要调用 [method update]。"
+
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 "
@@ -12051,33 +12546,11 @@ 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."
msgstr "表示网格参数发生改变,需要调用 [method update]。"
-msgid ""
-"Returns [code]true[/code] if the [param x] and [param y] is a valid grid "
-"coordinate (id)."
-msgstr ""
-"如果 [param x] 和 [param y] 是有效的网格坐标(ID),则返回 [code]true[/code]。"
-
-msgid ""
-"Returns [code]true[/code] if the [param id] vector is a valid grid coordinate."
-msgstr "如果 [param id] 向量是有效的网格坐标,则返回 [code]true[/code]。"
-
msgid ""
"Returns [code]true[/code] if a point is disabled for pathfinding. By default, "
"all points are enabled."
@@ -12595,11 +13068,42 @@ msgstr "如果为 [code]true[/code],则启用反馈。"
msgid "Feedback delay time in milliseconds."
msgstr "反馈延迟时间,单位为毫秒。"
+msgid "Sound level for feedback."
+msgstr "反馈的声级。"
+
msgid ""
"Low-pass filter for feedback, in Hz. Frequencies below this value are "
"filtered out of the source signal."
msgstr "反馈的低通滤波器,单位为 Hz。低于此值的频率会被源信号过滤掉。"
+msgid "If [code]true[/code], the first tap will be enabled."
+msgstr "如果为 [code]true[/code],将启用第一拍。"
+
+msgid "First tap delay time in milliseconds."
+msgstr "第一拍延迟时间,单位为毫秒。"
+
+msgid "Sound level for the first tap."
+msgstr "第一拍的声级。"
+
+msgid ""
+"Pan position for the first tap. Value can range from -1 (fully left) to 1 "
+"(fully right)."
+msgstr "第一拍的声像位置。取值范围为 -1(完全向左)到 1(完全向右)。"
+
+msgid "If [code]true[/code], the second tap will be enabled."
+msgstr "如果为 [code]true[/code],将启用第二拍。"
+
+msgid "Second tap delay time in milliseconds."
+msgstr "第二拍的延迟时间,单位为毫秒。"
+
+msgid "Sound level for the second tap."
+msgstr "第二拍的声级。"
+
+msgid ""
+"Pan position for the second tap. Value can range from -1 (fully left) to 1 "
+"(fully right)."
+msgstr "第二拍的声像位置。取值范围为 -1(完全向左)到 1(完全向右)。"
+
msgid ""
"Adds a distortion audio effect to an Audio bus.\n"
"Modifies the sound to make it distorted."
@@ -13325,6 +13829,19 @@ msgstr "返回 [AudioServer] 输出的采样率。"
msgid "Returns the names of all audio output devices detected on the system."
msgstr "返回系统中检测到的所有音频输出设备的名称。"
+msgid ""
+"Returns the audio driver's effective output latency. This is based on [member "
+"ProjectSettings.audio/driver/output_latency], but the exact returned value "
+"will differ depending on the operating system and audio driver.\n"
+"[b]Note:[/b] This can be expensive; it is not recommended to call [method "
+"get_output_latency] every frame."
+msgstr ""
+"返回音频驱动程序的有效输出延迟。该方法基于 [ 成员 ProjectSettings.audio/"
+"driver/output_latency],但精确的返回值将依赖操作系统和音频驱动程序而有所不"
+"同。\n"
+"[b] 注意:[/b] 该方法可能存在大量性能开销;不建议逐帧调用 [ 方法 "
+"get_output_latency]。"
+
msgid "Returns the speaker configuration."
msgstr "返回扬声器的配置。"
@@ -13435,6 +13952,16 @@ msgstr ""
"音频播放的缩放速率(即将其设置为 [code]0.5[/code] 将使音频以其一半的速度播"
"放)。"
+msgid "Emitted when an audio bus is added, deleted, or moved."
+msgstr "添加、修改、删除音频总线时发出。"
+
+msgid ""
+"Emitted when the audio bus at [param bus_index] is renamed from [param "
+"old_name] to [param new_name]."
+msgstr ""
+"当索引为 [param bus_index] 的音频总线的名称从 [param old_name] 更改为 [param "
+"new_name] 时发出。"
+
msgid "Two or fewer speakers were detected."
msgstr "检测到两个或更少的扬声器。"
@@ -13488,69 +14015,6 @@ msgstr ""
msgid "An audio stream with utilities for procedural sound generation."
msgstr "提供程序式声音生成工具的音频流。"
-msgid ""
-"[AudioStreamGenerator] is a type of audio stream that does not play back "
-"sounds on its own; instead, it expects a script to generate audio data for "
-"it. See also [AudioStreamGeneratorPlayback].\n"
-"Here's a sample on how to use it to generate a sine wave:\n"
-"[codeblock]\n"
-"var playback # Will hold the AudioStreamGeneratorPlayback.\n"
-"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate\n"
-"var pulse_hz = 440.0 # The frequency of the sound wave.\n"
-"\n"
-"func _ready():\n"
-" $AudioStreamPlayer.play()\n"
-" playback = $AudioStreamPlayer.get_stream_playback()\n"
-" fill_buffer()\n"
-"\n"
-"func fill_buffer():\n"
-" var phase = 0.0\n"
-" var increment = pulse_hz / sample_hz\n"
-" var frames_available = playback.get_frames_available()\n"
-"\n"
-" for i in range(frames_available):\n"
-" playback.push_frame(Vector2.ONE * sin(phase * TAU))\n"
-" phase = fmod(phase + increment, 1.0)\n"
-"[/codeblock]\n"
-"In the example above, the \"AudioStreamPlayer\" node must use an "
-"[AudioStreamGenerator] as its stream. The [code]fill_buffer[/code] function "
-"provides audio data for approximating a sine wave.\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 ""
-"[AudioStreamGenerator] 是一种音频流,它自己并不播放声音,而是要用脚本来为它生"
-"成音频数据。另见 [AudioStreamGeneratorPlayback]。\n"
-"以下是用它来生成正弦波的例子:\n"
-"[codeblock]\n"
-"var playback # 存放 AudioStreamGeneratorPlayback。\n"
-"@onready var sample_hz = $AudioStreamPlayer.stream.mix_rate\n"
-"var pulse_hz = 440.0 # 声音波形的频率。\n"
-"\n"
-"func _ready():\n"
-" $AudioStreamPlayer.play()\n"
-" playback = $AudioStreamPlayer.get_stream_playback()\n"
-" fill_buffer()\n"
-"\n"
-"func fill_buffer():\n"
-" var phase = 0.0\n"
-" var increment = pulse_hz / sample_hz\n"
-" var frames_available = playback.get_frames_available()\n"
-"\n"
-" for i in range(frames_available):\n"
-" playback.push_frame(Vector2.ONE * sin(phase * TAU))\n"
-" phase = fmod(phase + increment, 1.0)\n"
-"[/codeblock]\n"
-"上面的例子中,“AudioStreamPlayer”节点必须使用 [AudioStreamGenerator] 作为其"
-"流。[code]fill_buffer[/code] 函数负责提供模拟正弦波的音频数据。\n"
-"要执行实时音频频谱分析,见 [AudioEffectSpectrumAnalyzer]。\n"
-"[b]注意:[/b]由于性能的限制,这个类最好在 C# 或者在利用 GDExtension 的编译语言"
-"中使用。如果你仍然想要在 GDScript 中使用这个类,请考虑使用 11,025 Hz 或 "
-"22,050 Hz 等较低的 [member mix_rate]。"
-
msgid ""
"The length of the buffer to generate (in seconds). Lower values result in "
"less latency, but require the script to generate audio data faster, resulting "
@@ -13709,6 +14173,42 @@ msgstr "如果为 [code]true[/code],当流到达末尾时将自动循环。"
msgid "Time in seconds at which the stream starts after being looped."
msgstr "循环时,流开始的时间,单位为秒。"
+msgid "A class representing an Ogg Vorbis audio stream."
+msgstr "代表 Ogg Vorbis 音频流的类。"
+
+msgid ""
+"The AudioStreamOggVorbis class is a specialized [AudioStream] for handling "
+"Ogg Vorbis file formats. It offers functionality for loading and playing back "
+"Ogg Vorbis files, as well as managing looping and other playback properties. "
+"This class is part of the audio stream system, which also supports WAV files "
+"through the [AudioStreamWAV] class."
+msgstr ""
+"AudioStreamOggVorbis 类是专用于处理 Ogg Vorbis 文件格式的 [ 音频流 ] 类。它提"
+"供加载和播放 Ogg Vorbis 文件以及管理循环和其他播放属性的功能。该类是音频流系统"
+"的一部分,该系统还通过 [AudioStreamWAV] 类支持 WAV 系统。"
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer "
+"must contain Ogg Vorbis data."
+msgstr ""
+"从给定缓冲区创建一个新的 AudioStreamOggVorbis 实例。缓冲区必须包含 Ogg Vorbis "
+"数据。"
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given file path. The "
+"file must be in Ogg Vorbis format."
+msgstr ""
+"从给定文件路径创建新的 AudioStreamOggVorbis 实例。文件必须采用 Ogg Vorbis 格"
+"式。"
+
+msgid ""
+"If [code]true[/code], the audio will play again from the specified [member "
+"loop_offset] once it is done playing. Useful for ambient sounds and "
+"background music."
+msgstr ""
+"如果为 [code]true[/code],则音频播放完成后将从 [ 成员 loop_offset] 指定的位置"
+"再次播放。该方法对环境声音和背景音乐很有用。"
+
msgid "Contains the raw Ogg data for this stream."
msgstr "包含用于这个流的原始 Ogg 数据。"
@@ -13866,10 +14366,10 @@ msgstr "要播放的 [AudioStream] 对象。"
msgid ""
"If [code]true[/code], the playback is paused. You can resume it by setting "
-"[code]stream_paused[/code] to [code]false[/code]."
+"[member stream_paused] to [code]false[/code]."
msgstr ""
-"如果为 [code]true[/code],则暂停播放。你可以通过将 [code]stream_paused[/code] "
-"设置为 [code]false[/code] 来恢复播放。"
+"如果为 [code]true[/code],则播放会暂停。你可以通过将 [member stream_paused] 设"
+"置为 [code]false[/code]来恢复它。"
msgid "Volume of sound, in dB."
msgstr "音量,单位为 dB。"
@@ -14097,13 +14597,6 @@ msgstr ""
msgid "The [AudioStream] resource to be played."
msgstr "要播放的 [AudioStream] 资源。"
-msgid ""
-"If [code]true[/code], the playback is paused. You can resume it by setting "
-"[member stream_paused] to [code]false[/code]."
-msgstr ""
-"如果为 [code]true[/code],则播放会暂停。你可以通过将 [member stream_paused] 设"
-"置为 [code]false[/code]来恢复它。"
-
msgid ""
"The factor for the attenuation effect. Higher values make the sound audible "
"over a larger distance."
@@ -14372,6 +14865,31 @@ msgid ""
msgstr ""
"音频在 [member loop_begin] 和 [member loop_end] 之间循环数据,仅向后播放。"
+msgid ""
+"A node that copies a region of the screen to a buffer for access in shader "
+"code."
+msgstr "这种节点能够将屏幕中的某个区域复制到缓冲中,方便从着色器代码中访问。"
+
+msgid ""
+"Node for back-buffering the currently-displayed screen. The region defined in "
+"the [BackBufferCopy] node is buffered with the content of the screen it "
+"covers, or the entire screen according to the [member copy_mode]. It can be "
+"accessed in shader scripts using the screen texture (i.e. a uniform sampler "
+"with [code]hint_screen_texture[/code]).\n"
+"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
+"anchors and margins won't apply to child [Control]-derived nodes. This can be "
+"problematic when resizing the window. To avoid this, add [Control]-derived "
+"nodes as [i]siblings[/i] to the [BackBufferCopy] node instead of adding them "
+"as children."
+msgstr ""
+"用于后台缓冲当前显示屏幕的节点。会根据 [member copy_mode] 对 [BackBufferCopy] "
+"节点中定义的区域所覆盖的屏幕内容或整个屏幕进行缓冲。可以在着色器脚本中使用屏幕"
+"纹理来访问(即带有 [code]hint_screen_texture[/code] 的 uniform 采样器)。\n"
+"[b]注意:[/b]由于该节点继承自 [Node2D](而非 [Control]),因此锚点和边距不适用"
+"于子 [Control] 派生节点。这在调整窗口大小时可能会出现问题。为避免这种情况,请"
+"将 [Control] 派生节点添加为 [BackBufferCopy] 节点的[i]同级[/i]节点,而不是将它"
+"们添加为子节点。"
+
msgid "Buffer mode. See [enum CopyMode] constants."
msgstr "缓冲区模式。见 [enum CopyMode] 常量。"
@@ -14538,6 +15056,14 @@ msgstr ""
"如果需要知道按钮的按下状态(并且 [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 toggled_on] argument."
+msgstr ""
+"当按钮刚刚在按下和正常状态之间切换时发出(仅当 [member toggle_mode] 处于活动状"
+"态时)。新状态包含在 [param toggled_on] 参数中。"
+
msgid ""
"The normal state (i.e. not pressed, not hovered, not toggled and enabled) of "
"buttons."
@@ -14563,6 +15089,17 @@ msgid ""
"clicked."
msgstr "要求按下后再释放,才算点击了按钮。"
+msgid "Abstract base class for defining the 3D rendering properties of meshes."
+msgstr "用于定义网格 3D 渲染属性的抽象基类。"
+
+msgid ""
+"This class serves as a default material with a wide variety of rendering "
+"features and properties without the need to write shader code. See the "
+"tutorial below for details."
+msgstr ""
+"这个类提供了默认的材质,具有多种渲染功能和属性,无需编写着色器代码。详情见下面"
+"的教程。"
+
msgid "Standard Material 3D and ORM Material 3D"
msgstr "标准 3D 材质与 ORM 3D 材质"
@@ -14928,38 +15465,20 @@ msgstr "用于漫反射光散射的算法。见 [enum DiffuseMode]。"
msgid "If [code]true[/code], the object receives no ambient light."
msgstr "如果为 [code]true[/code],则对象不接收环境光。"
+msgid ""
+"If [code]true[/code], the object will not be affected by fog (neither "
+"volumetric nor depth fog). This is useful for unshaded or transparent "
+"materials (e.g. particles), which without this setting will be affected even "
+"if fully transparent."
+msgstr ""
+"如果为 [code]true[/code],则对象不会受到雾的影响(包括体积雾和深度雾)。可用于"
+"不着色材质和透明材质(例如例子),不开启时即便完全透明也会受到影响。"
+
msgid ""
"If [code]true[/code], the object receives no shadow that would otherwise be "
"cast onto it."
msgstr "如果为 [code]true[/code],则对象不会收到投射到其上的阴影。"
-msgid ""
-"Distance at which the object appears fully opaque.\n"
-"[b]Note:[/b] If [code]distance_fade_max_distance[/code] is less than "
-"[code]distance_fade_min_distance[/code], the behavior will be reversed. The "
-"object will start to fade away at [code]distance_fade_max_distance[/code] and "
-"will fully disappear once it reaches [code]distance_fade_min_distance[/code]."
-msgstr ""
-"物体看起来完全不透明的距离。\n"
-"[b]注意:[/b]如果 [code]distance_fade_max_distance[/code] 小于 "
-"[code]distance_fade_min_distance[/code],则行为相反。物体将在 "
-"[code]distance_fade_max_distance[/code] 处开始逐渐消失,并在到达 "
-"[code]distance_fade_min_distance[/code] 时完全消失。"
-
-msgid ""
-"Distance at which the object starts to become visible. If the object is less "
-"than this distance away, it will be invisible.\n"
-"[b]Note:[/b] If [code]distance_fade_min_distance[/code] is greater than "
-"[code]distance_fade_max_distance[/code], the behavior will be reversed. The "
-"object will start to fade away at [code]distance_fade_max_distance[/code] and "
-"will fully disappear once it reaches [code]distance_fade_min_distance[/code]."
-msgstr ""
-"物体开始变得可见的距离。如果物体的距离小于这个距离,它将是不可见的。\n"
-"[b]注意:[/b]如果 [code]distance_fade_min_distance[/code] 大于 "
-"[code]distance_fade_max_distance[/code],则行为将相反。物体将在 "
-"[code]distance_fade_max_distance[/code] 处开始逐渐消失,并在到达 "
-"[code]distance_fade_min_distance[/code] 时完全消失。"
-
msgid ""
"Specifies which type of fade to use. Can be any of the [enum "
"DistanceFadeMode]s."
@@ -15221,6 +15740,9 @@ msgstr ""
"在单个纹理中时,这很有用。例如,如果在红色通道中存储金属度,在蓝色通道中存储粗"
"糙度,在绿色通道中存储环境遮挡,则可以减少使用的纹理数量。"
+msgid "The width of the shape outline."
+msgstr "形状轮廓的宽度。"
+
msgid ""
"The width of the range around the shape between the minimum and maximum "
"representable signed distance."
@@ -16083,6 +16605,9 @@ msgstr ""
msgid "Enables multichannel signed distance field rendering shader."
msgstr "启用多通道有符号距离场渲染着色器。"
+msgid "Disables receiving depth-based or volumetric fog."
+msgstr "禁用接收基于深度或体积雾。"
+
msgid "Represents the size of the [enum Flags] enum."
msgstr "代表 [enum Flags] 枚举的大小。"
@@ -16117,18 +16642,6 @@ 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 "用来读取纹理的红色通道。"
@@ -16378,16 +16891,6 @@ msgid ""
"code]."
msgstr "基矩阵的 Z 向量(第 2 列)。相当于数组索引 [code]2[/code]。"
-msgid ""
-"The identity basis, with no rotation or scaling applied.\n"
-"This is identical to calling [code]Basis()[/code] without any parameters. "
-"This constant can be used to make your code clearer, and for consistency with "
-"C#."
-msgstr ""
-"恒等基,未应用旋转或缩放。\n"
-"这与不带任何参数调用 [code]Basis()[/code] 是一样的。这个常量可以用来让你的代码"
-"更清晰,并与 C# 保持一致。"
-
msgid ""
"The basis that will flip something along the X axis when used in a "
"transformation."
@@ -16585,13 +17088,6 @@ msgstr "返回节点在整个骨架中的索引号。见 [Skeleton2D]。"
msgid "Returns the length of the bone in the [Bone2D] node."
msgstr "返回 [Bone2D] 节点中骨骼的长度。"
-msgid ""
-"Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have "
-"a parent, or its rest pose relative to its parent."
-msgstr ""
-"如果节点没有父节点,返回节点的 [member rest] [code]Transform2D[/code],或者返"
-"回它相对于父节点的放松姿势。"
-
msgid ""
"When set to [code]true[/code], the [Bone2D] node will attempt to "
"automatically calculate the bone angle and length using the first child "
@@ -16602,6 +17098,18 @@ msgstr ""
"点(如果存在)自动计算骨骼角度和长度。如果不存在子节点,[Bone2D] 将无法自动计"
"算这些值,并将输出一条警告。"
+msgid ""
+"Sets the bone angle for the [Bone2D]. This is typically set to the rotation "
+"from the [Bone2D] to a child [Bone2D] node.\n"
+"[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle "
+"is the rotation of the bone shown by the gizmo, which is unaffected by the "
+"[Bone2D]'s [member Node2D.transform]."
+msgstr ""
+"设置 [Bone2D] 节点的骨骼角度。这通常设置为从 [Bone2D] 节点到子 [Bone2D] 节点的"
+"旋转。\n"
+"[b]注意:[/b]这与 [Bone2D] 的旋转不同。骨骼角度是 [Bone2D] 小工具显示的骨骼旋"
+"转,不受 [Bone2D] 的 [member Node2D.transform] 的影响。"
+
msgid "Sets the length of the bone in the [Bone2D]."
msgstr "设置该 [Bone2D] 中骨骼的长度。"
@@ -16748,9 +17256,146 @@ msgstr ""
msgid "A built-in boolean type."
msgstr "内置布尔类型。"
+msgid ""
+"The [bool] is a built-in [Variant] type that may only store one of two "
+"values: [code]true[/code] or [code]false[/code]. You can imagine it as a "
+"switch that can be either turned on or off, or as a binary digit that can "
+"either be 1 or 0.\n"
+"Booleans can be directly used in [code]if[/code], and other conditional "
+"statements:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var can_shoot = true\n"
+"if can_shoot:\n"
+" launch_bullet()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"bool canShoot = true;\n"
+"if (canShoot)\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"All comparison operators return booleans ([code]==[/code], [code]>[/code], "
+"[code]<=[/code], etc.). As such, it is not necessary to compare booleans "
+"themselves. You do not need to add [code]== true[/code] or [code]== false[/"
+"code].\n"
+"Booleans can be combined with the logical operators [code]and[/code], "
+"[code]or[/code], [code]not[/code] to create complex conditions:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"if bullets > 0 and not is_reloading():\n"
+" launch_bullet()\n"
+"\n"
+"if bullets == 0 or is_reloading():\n"
+" play_clack_sound()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"if (bullets > 0 && !IsReloading())\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"\n"
+"if (bullets == 0 || IsReloading())\n"
+"{\n"
+" PlayClackSound();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] In modern programming languages, logical operators are evaluated "
+"in order. All remaining conditions are skipped if their result would have no "
+"effect on the final value. This concept is known as [url=https://en.wikipedia."
+"org/wiki/Short-circuit_evaluation]short-circuit evaluation[/url] and can be "
+"useful to avoid evaluating expensive conditions in some performance-critical "
+"cases.\n"
+"[b]Note:[/b] By convention, built-in methods and properties that return "
+"booleans are usually defined as yes-no questions, single adjectives, or "
+"similar ([method String.is_empty], [method Node.can_process], [member "
+"Camera2D.enabled], etc.)."
+msgstr ""
+"布尔类型 [bool] 是内置的 [Variant] 类型,只能存储 [code]true[/code](真)和 "
+"[code]false[/code](假)的其中之一。你可以把它理解为开关,要么处于打开状态,要"
+"么处于关闭状态。也可以理解为二进制所使用的数字,只有 1 或者 0。\n"
+"[code]if[/code] 等条件语句中可以直接使用布尔值:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var can_shoot = true\n"
+"if can_shoot:\n"
+" launch_bullet()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"bool canShoot = true;\n"
+"if (canShoot)\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"比较运算符返回的都是布尔值([code]==[/code]、[code]>[/code]、[code]<=[/code] "
+"等)。没有必要比较布尔值本身,因此不需要在这些比较后面加上 [code]== true[/"
+"code] 或 [code]== false[/code]。\n"
+"布尔值可以和逻辑运算符 [code]and[/code]、[code]or[/code]、[code]not[/code] 组"
+"合,构成复杂的条件:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"if bullets > 0 and not is_reloading():\n"
+" launch_bullet()\n"
+"\n"
+"if bullets == 0 or is_reloading():\n"
+" play_clack_sound()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"if (bullets > 0 && !IsReloading())\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"\n"
+"if (bullets == 0 || IsReloading())\n"
+"{\n"
+" PlayClackSound();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]在现代编程语言中,逻辑运算符是按顺序求值的。如果后续条件不会对最"
+"终结果产生影响,那么就会跳过对这些条件的求值。这种行为叫作[url=https://zh."
+"wikipedia.org/wiki/%E7%9F%AD%E8%B7%AF%E6%B1%82%E5%80%BC]短路求值[/url],在注重"
+"性能的场合能够避免对开销较大的条件进行求值。\n"
+"[b]注意:[/b]根据惯例,返回布尔值的内置方法和属性通常都以判断题、形容词等形式"
+"命名([method String.is_empty]、[method Node.can_process]、[member Camera2D."
+"enabled] 等)。"
+
+msgid "Constructs a [bool] set to [code]false[/code]."
+msgstr "构造设置为 [code]false[/code] 的 [bool]。"
+
msgid "Constructs a [bool] as a copy of the given [bool]."
msgstr "构造给定 [bool] 的副本。"
+msgid ""
+"Cast a [float] value to a boolean value. Returns [code]false[/code] if [param "
+"from] is equal to [code]0.0[/code] (including [code]-0.0[/code]), and "
+"[code]true[/code] for all other values (including [constant @GDScript.INF] "
+"and [constant @GDScript.NAN])."
+msgstr ""
+"将 [float] 值转换为布尔值。如果 [param from] 等于 [code]0.0[/code](包括 "
+"[code]-0.0[/code])则返回 [code]false[/code],其他值则返回 [code]true[/code]"
+"(包括 [constant @GDScript.INF] 和 [constant @GDScript.NAN])。"
+
+msgid ""
+"Cast an [int] value to a boolean value. Returns [code]false[/code] if [param "
+"from] is equal to [code]0[/code], and [code]true[/code] for all other values."
+msgstr ""
+"将 [int] 值转换为布尔值。如果 [param from] 等于 [code]0[/code] 则返回 "
+"[code]false[/code],其他值则返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the two booleans are not equal. That is, one is "
+"[code]true[/code] and the other is [code]false[/code]. This operation can be "
+"seen as a logical XOR."
+msgstr ""
+"如果两个布尔值不同则返回 [code]true[/code],即一个是 [code]true[/code]、一个"
+"是 [code]false[/code] 的情况。这个运算可以视为逻辑异或(XOR)。"
+
msgid ""
"Returns [code]true[/code] if the left operand is [code]false[/code] and the "
"right operand is [code]true[/code]."
@@ -16758,6 +17403,14 @@ msgstr ""
"如果左操作数为 [code]false[/code] 且右操作数为 [code]true[/code],则返回 "
"[code]true[/code]。"
+msgid ""
+"Returns [code]true[/code] if the two booleans are equal. That is, both are "
+"[code]true[/code] or both are [code]false[/code]. This operation can be seen "
+"as a logical EQ or XNOR."
+msgstr ""
+"如果两个布尔值相同则返回 [code]true[/code],即都是 [code]true[/code] 或都是 "
+"[code]false[/code] 的情况。这个运算可以视为逻辑相等(EQ)或者同或(XNOR)。"
+
msgid ""
"Returns [code]true[/code] if the left operand is [code]true[/code] and the "
"right operand is [code]false[/code]."
@@ -17122,30 +17775,42 @@ msgid "[StyleBox] used when the [Button] is disabled."
msgstr "该 [Button] 处于禁用状态时使用的 [StyleBox]。"
msgid ""
-"[StyleBox] used when the [Button] is focused. The [code]focus[/code] "
-"[StyleBox] is displayed [i]over[/i] the base [StyleBox], so a partially "
-"transparent [StyleBox] should be used to ensure the base [StyleBox] remains "
-"visible. A [StyleBox] that represents an outline or an underline works well "
-"for this purpose. To disable the focus visual effect, assign a "
-"[StyleBoxEmpty] resource. Note that disabling the focus visual effect will "
-"harm keyboard/controller navigation usability, so this is not recommended for "
-"accessibility reasons."
-msgstr ""
-"该 [Button] 处于聚焦状态时使用的 [StyleBox]。[code]focus[/code] [StyleBox] 显"
-"示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 [StyleBox],确保基础 "
-"[StyleBox] 仍然可见。代表轮廓或下划线的 [StyleBox] 可以很好地实现这个目的。要"
-"禁用聚焦的视觉效果,请指定 [StyleBoxEmpty] 资源。请注意,禁用聚焦的视觉效果会"
-"影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原因,不建议这样做。"
+"[StyleBox] used when the [Button] is disabled (for right-to-left layouts)."
+msgstr "该 [Button] 处于禁用状态时使用的 [StyleBox](用于从右至左布局)。"
msgid "[StyleBox] used when the [Button] is being hovered."
msgstr "该 [Button] 处于悬停状态时使用的 [StyleBox]。"
+msgid ""
+"[StyleBox] used when the [Button] is being hovered (for right-to-left "
+"layouts)."
+msgstr "该 [Button] 处于悬停状态时使用的 [StyleBox](用于从右至左布局)。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being pressed and hovered at the same "
+"time."
+msgstr "该 [Button] 同时处于按下和悬停状态时使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being pressed and hovered at the same "
+"time (for right-to-left layouts)."
+msgstr ""
+"该 [Button] 同时处于按下和悬停状态时使用的 [StyleBox](用于从右至左布局)。"
+
msgid "Default [StyleBox] for the [Button]."
msgstr "该 [Button] 的默认 [StyleBox]。"
+msgid "Default [StyleBox] for the [Button] (for right-to-left layouts)."
+msgstr "该 [Button] 的默认 [StyleBox](用于从右至左布局)。"
+
msgid "[StyleBox] used when the [Button] is being pressed."
msgstr "该 [Button] 处于按下状态时使用的 [StyleBox]。"
+msgid ""
+"[StyleBox] used when the [Button] is being pressed (for right-to-left "
+"layouts)."
+msgstr "该 [Button] 处于按下状态时使用的 [StyleBox](用于从右至左布局)。"
+
msgid ""
"A group of buttons that doesn't allow more than one button to be pressed at a "
"time."
@@ -17404,6 +18069,14 @@ msgstr ""
"返回通过成功调用 [method bind] 或 [method unbind] 绑定(或解绑)参数的总数。如"
"果解绑参数的总数比绑定参数大,则这个函数的返回值小于零。"
+msgid ""
+"Returns the name of the method represented by this [Callable]. If the "
+"callable is a GDScript lambda function, returns the function's name or "
+"[code]\"\"[/code]."
+msgstr ""
+"返回该 [Callable] 所代表的方法的名称。如果该可调用体是 GDScript lambda 函数,"
+"则返回该函数的名称或 [code]\"\"[/code]。"
+
msgid "Returns the object on which this [Callable] is called."
msgstr "返回该 [Callable] 所调用的对象。"
@@ -18150,25 +18823,6 @@ msgstr ""
"该相机相对于其局部 Z 轴到远剔除边界的距离。较高的值允许相机看得更远,而减少 "
"[member far] 如果会导致对象被部分或完全剔除,则可以提高性能。"
-msgid ""
-"The camera's field of view angle (in degrees). Only applicable in perspective "
-"mode. Since [member keep_aspect] locks one axis, [code]fov[/code] sets the "
-"other axis' field of view angle.\n"
-"For reference, the default vertical field of view value ([code]75.0[/code]) "
-"is equivalent to a horizontal FOV of:\n"
-"- ~91.31 degrees in a 4:3 viewport\n"
-"- ~101.67 degrees in a 16:10 viewport\n"
-"- ~107.51 degrees in a 16:9 viewport\n"
-"- ~121.63 degrees in a 21:9 viewport"
-msgstr ""
-"相机的视野角度(单位为度)。仅适用于透视模式。由于 [member keep_aspect] 锁定一"
-"个轴,因此 [code]fov[/code] 设置另一个轴的视角。\n"
-"作为参考,默认的垂直视野值([code]70.0[/code])相当于以下水平 FOV:\n"
-"- 在 4:3 视口中约 91.31 度\n"
-"- 在 16:10 视口中约 101.67 度\n"
-"- 在 16:9 视口中约 107.51 度\n"
-"- 在 21:9 视口中约 121.63 度"
-
msgid ""
"The camera's frustum offset. This can be changed from the default to create "
"\"tilted frustum\" effects such as [url=https://zdoom.org/wiki/Y-shearing]Y-"
@@ -18375,6 +19029,9 @@ msgstr ""
"示。\n"
"[b]注意:[/b]景深模糊只支持 Forward+ 和移动渲染方式,不支持兼容模式。"
+msgid "Physical light and camera units"
+msgstr "物理灯光与相机单位"
+
msgid ""
"Returns the vertical field of view that corresponds to the [member "
"frustum_focal_length]. This value is calculated internally whenever [member "
@@ -18849,34 +19506,6 @@ 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 "使用自定义字体绘制字符串的第一个字符。"
@@ -19073,49 +19702,6 @@ msgstr ""
"能够使用骨骼),请改用 [method RenderingServer."
"canvas_item_add_triangle_array]。"
-msgid ""
-"Draws interconnected line segments with a uniform [param color] and [param "
-"width] and optional antialiasing (supported only for positive [param width]). "
-"When drawing large amounts of lines, this is faster than using individual "
-"[method draw_line] calls. To draw disconnected lines, use [method "
-"draw_multiline] instead. See also [method draw_polygon].\n"
-"If [param width] is negative, the polyline is drawn using [constant "
-"RenderingServer.PRIMITIVE_LINE_STRIP]. This means that when the CanvasItem is "
-"scaled, the polyline will remain thin. If this behavior is not desired, then "
-"pass a positive [param width] like [code]1.0[/code]."
-msgstr ""
-"使用一个 uniform [param color] 和 [param width] 以及可选的抗锯齿(仅支持正 "
-"[param width] ),绘制相互连接的线段。绘制大量线条时,这比使用单独的 [method "
-"draw_line] 调用更快。要绘制不相连的的线段,请改用 [method draw_multiline]。另"
-"见 [method draw_polygon]。\n"
-"如果 [param width] 为负,则使用 [constant RenderingServer."
-"PRIMITIVE_LINE_STRIP] 绘制折线。这意味着当缩放 CanvasItem 时,多段线将保持为细"
-"线。如果不需要该行为,请传递一个正的 [param width],如 [code]1.0[/code]。"
-
-msgid ""
-"Draws interconnected line segments with a uniform [param width], point-by-"
-"point coloring, and optional antialiasing (supported only for positive [param "
-"width]). Colors assigned to line points match by index between [param points] "
-"and [param colors], i.e. each line segment is filled with a gradient between "
-"the colors of the endpoints. When drawing large amounts of lines, this is "
-"faster than using individual [method draw_line] calls. To draw disconnected "
-"lines, use [method draw_multiline_colors] instead. See also [method "
-"draw_polygon].\n"
-"If [param width] is negative, then the polyline is drawn using [constant "
-"RenderingServer.PRIMITIVE_LINE_STRIP]. This means that when the CanvasItem is "
-"scaled, the polyline will remain thin. If this behavior is not desired, then "
-"pass a positive [param width] like [code]1.0[/code]."
-msgstr ""
-"绘制相连的线段,使用一致的宽度 [param width],按点指定颜色,还可以开启抗锯齿"
-"(仅支持正的 [param width])。将颜色与线段上的点匹配时,使用的是 [param "
-"points] 和 [param colors] 的索引,即每条线段填充的都是在两个端点之间颜色的渐变"
-"色。绘制大量线段时,这种方法比使用 [method draw_line] 一条条画要快。要绘制不相"
-"连的线段,请改用 [method draw_multiline_colors]。另见 [method "
-"draw_polygon]。\n"
-"如果 [param width] 为负数,则折线使用 [constant RenderingServer."
-"PRIMITIVE_LINE_STRIP] 绘制。此时如果 CanvasItem 发生缩放,则线段仍然会很细。如"
-"果不想要这样的行为,请传入 [code]1.0[/code] 等正数 [param width]。"
-
msgid ""
"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
@@ -19897,6 +20483,17 @@ msgstr ""
"使用 [member follow_viewport_enabled] 时缩放图层。移入到前景的图层应具有增加的"
"缩放,而移入到背景的图层应具有减小的缩放。"
+msgid ""
+"Layer index for draw order. Lower values are drawn behind higher values.\n"
+"[b]Note:[/b] If multiple CanvasLayers have the same layer index, [CanvasItem] "
+"children of one CanvasLayer are drawn behind the [CanvasItem] children of the "
+"other CanvasLayer. Which CanvasLayer is drawn in front is non-deterministic."
+msgstr ""
+"画布层的索引,用于确定绘制顺序。索引值小的画布层绘制在索引值大的画布层后面。\n"
+"[b]注意:[/b]如果多个 CanvasLayer 的画布层索引相同,一个 CanvasLayer 的 "
+"[CanvasItem] 子节点都会绘制在另一个 CanvasLayer 的 [CanvasItem] 子节点之后。哪"
+"个 CanvasLayer 画在前面并不一定。"
+
msgid "The layer's base offset."
msgstr "图层的基本偏移量。"
@@ -19955,6 +20552,9 @@ msgstr ""
"[b]注意:[/b][CanvasTexture] 不能用于 3D 渲染。对于 3D 中基于物理的材质,请使"
"用 [BaseMaterial3D] 来代替。"
+msgid "2D Lights and Shadows"
+msgstr "2D 灯光和阴影"
+
msgid ""
"The diffuse (color) texture to use. This is the main texture you want to set "
"in most cases."
@@ -20114,16 +20714,6 @@ msgstr ""
"允许手动应用向地板的吸附,无论该物体的速度多大。[method is_on_floor] 返回 "
"[code]true[/code] 时这个函数什么都不做。"
-msgid ""
-"Returns the floor's collision angle at the last collision point according to "
-"[param up_direction], which is [code]Vector2.UP[/code] by default. This value "
-"is always positive and only valid after calling [method move_and_slide] and "
-"when [method is_on_floor] returns [code]true[/code]."
-msgstr ""
-"返回地板在最近一次碰撞点的碰撞角度,依据为 [param up_direction],默认为 "
-"[code]Vector2.UP[/code]。该值始终为正数,只有在调用了 [method move_and_slide] "
-"并且 [method is_on_floor] 返回值为 [code]true[/code] 时才有效。"
-
msgid ""
"Returns the surface normal of the floor at the last collision point. Only "
"valid after calling [method move_and_slide] and when [method is_on_floor] "
@@ -20438,18 +21028,6 @@ msgstr ""
"如果为 [code]true[/code],则该物体在跳到天花板时会滑动;如果为 [code]false[/"
"code],则会停止并垂直下落。"
-msgid ""
-"Vector pointing upwards, used to determine what is a wall and what is a floor "
-"(or a ceiling) when calling [method move_and_slide]. Defaults to "
-"[code]Vector2.UP[/code]. As the vector will be normalized it can't be equal "
-"to [constant Vector2.ZERO], if you want all collisions to be reported as "
-"walls, consider using [constant MOTION_MODE_FLOATING] as [member motion_mode]."
-msgstr ""
-"指向上方的向量,用于在调用 [method move_and_slide] 时决定什么是墙壁、什么是地"
-"板(或者天花板)。默认为 [code]Vector2.UP[/code]。因为会对该向量进行归一化,所"
-"以不能等于 [constant Vector2.ZERO],如果你想要让所有碰撞都被报告为墙壁,请考虑"
-"使用 [constant MOTION_MODE_FLOATING] 作为 [member motion_mode]。"
-
msgid ""
"Current velocity vector in pixels per second, used and modified during calls "
"to [method move_and_slide]."
@@ -20462,7 +21040,7 @@ msgid ""
"encounters a slope. The default value equals 15 degrees. This property only "
"affects movement when [member motion_mode] is [constant MOTION_MODE_FLOATING]."
msgstr ""
-"该物体遇到斜坡时,允许滑动的最小角度(单位为弧度)。默认值等于 15 度。仅在 "
+"该物体遇到斜面时,允许滑动的最小角度(单位为弧度)。默认值等于 15 度。只有在 "
"[member motion_mode] 为 [constant MOTION_MODE_FLOATING] 时,该属性才会影响运"
"动。"
@@ -20522,16 +21100,6 @@ msgstr ""
"如果是移动平台等不需要复杂移动和碰撞检测的游戏对象,[AnimatableBody3D] 更方便"
"配置。"
-msgid ""
-"Returns the floor's collision angle at the last collision point according to "
-"[param up_direction], which is [code]Vector3.UP[/code] by default. This value "
-"is always positive and only valid after calling [method move_and_slide] and "
-"when [method is_on_floor] returns [code]true[/code]."
-msgstr ""
-"返回地板在最近一次碰撞点的碰撞角度,依据为 [param up_direction],默认为 "
-"[code]Vector3.UP[/code]。该值始终为正数,只有在调用了 [method move_and_slide] "
-"并且 [method is_on_floor] 返回值为 [code]true[/code] 时才有效。"
-
msgid ""
"Returns the last motion applied to the [CharacterBody3D] during the last call "
"to [method move_and_slide]. The movement can be split into multiple motions "
@@ -20608,18 +21176,6 @@ msgstr ""
"用于检测墙壁物体的碰撞层,该墙壁物体会被用作 [CharacterBody3D] 所要跟随的移动"
"平台。默认情况下会忽略所有墙壁物体。"
-msgid ""
-"Vector pointing upwards, used to determine what is a wall and what is a floor "
-"(or a ceiling) when calling [method move_and_slide]. Defaults to "
-"[code]Vector3.UP[/code]. As the vector will be normalized it can't be equal "
-"to [constant Vector3.ZERO], if you want all collisions to be reported as "
-"walls, consider using [constant MOTION_MODE_FLOATING] as [member motion_mode]."
-msgstr ""
-"指向上方的向量,用于在调用 [method move_and_slide] 时决定什么是墙壁、什么是地"
-"板(或者天花板)。默认为 [code]Vector3.UP[/code]。因为会对该向量进行归一化,所"
-"以不能等于 [constant Vector3.ZERO],如果你想要让所有碰撞都被报告为墙壁,请考虑"
-"使用 [constant MOTION_MODE_FLOATING] 作为 [member motion_mode]。"
-
msgid ""
"Current velocity vector (typically meters per second), used and modified "
"during calls to [method move_and_slide]."
@@ -20633,7 +21189,7 @@ msgid ""
"motion_mode] is [constant MOTION_MODE_GROUNDED], it only affects movement if "
"[member floor_block_on_wall] is [code]true[/code]."
msgstr ""
-"该物体遇到斜坡时,允许滑动的最小角度(单位为弧度)。默认值等于 15 度。当 "
+"该物体遇到斜面时,允许滑动的最小角度(单位为弧度)。默认值等于 15 度。当 "
"[member motion_mode] 为 [constant MOTION_MODE_GROUNDED] 时,只有 [member "
"floor_block_on_wall] 为 [code]true[/code] 才会影响运动。"
@@ -20734,8 +21290,7 @@ msgid ""
"If [code]true[/code], FX transform is called for outline drawing. Setting "
"this property won't affect drawing."
msgstr ""
-"如果为 [code]为true[/code],则调用 FX 变换进行轮廓绘制。设置该属性不会影响绘"
-"制。"
+"如果为 [code]true[/code],则调用 FX 变换进行轮廓绘制。设置该属性不会影响绘制。"
msgid ""
"Absolute character range in the string, corresponding to the glyph. Setting "
@@ -20749,6 +21304,14 @@ msgstr ""
"该字形的字符偏移量,相对于当前 [RichTextEffect] 自定义块。设置该属性不会影响绘"
"制。"
+msgid ""
+"The current transform of the current glyph. It can be overridden (for "
+"example, by driving the position and rotation from a curve). You can also "
+"alter the existing value to apply transforms on top of other effects."
+msgstr ""
+"当前字形的当前变换。可以被覆盖(例如根据曲线来确定位置和旋转)。你还可以修改现"
+"有值,在其他效果的基础上应用变换。"
+
msgid ""
"If [code]true[/code], the character will be drawn. If [code]false[/code], the "
"character will be hidden. Characters around hidden characters will reflow to "
@@ -21137,13 +21700,6 @@ msgstr "清除所有已执行的行。"
msgid "Removes all string delimiters."
msgstr "移除所有字符串分隔符。"
-msgid ""
-"Inserts the selected entry into the text. If [param replace] is true, any "
-"existing text is replaced rather then merged."
-msgstr ""
-"将选定的条目插入文本中。如果 [param replace] 为真,任何现有的文本都会被替换,"
-"而不是合并。"
-
msgid ""
"Converts the indents of lines between [param from_line] and [param to_line] "
"to tabs or spaces as set by [member indent_use_spaces].\n"
@@ -21230,11 +21786,15 @@ msgstr "返回当前折叠的所有行。"
msgid ""
"Returns the full text with char [code]0xFFFF[/code] at the caret location."
-msgstr "返回在插入符号位置带有 [code]0xFFFF[/code] 字符的全文。"
+msgstr "返回在文本光标位置带有 [code]0xFFFF[/code] 字符的全文。"
msgid ""
"Returns the full text with char [code]0xFFFF[/code] at the cursor location."
-msgstr "返回在光标位置处带有 [code]0xFFFF[/code] 字符的全文。"
+msgstr "返回在鼠标光标处带有 [code]0xFFFF[/code] 字符的全文。"
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the specified location."
+msgstr "返回在指定位置带有 [code]0xFFFF[/code] 字符的全文。"
msgid "Returns [code]true[/code] if close key [param close_key] exists."
msgstr "如果关闭键 [param close_key] 存在,则返回 [code]true[/code]。"
@@ -21308,6 +21868,9 @@ msgstr "设置代码提示文本。传递一个空字符串来清除。"
msgid "Sets if the code hint should draw below the text."
msgstr "设置代码提示是否应绘制在文本下方。"
+msgid "Sets the code region start and end tags (without comment delimiter)."
+msgstr "设置代码区块的开始和结束标签(不含注释分隔符)。"
+
msgid "Sets the line as bookmarked."
msgstr "将该行设置为书签。"
@@ -21391,12 +21954,6 @@ msgstr "设置是否启用自动缩进,如果找到前缀或括号,这将添
msgid "Prefixes to trigger an automatic indent."
msgstr "触发自动缩进的前缀。"
-msgid ""
-"Size of tabs, if [code]indent_use_spaces[/code] is enabled the number of "
-"spaces to use."
-msgstr ""
-"制表符的大小,如果启用 [code]indent_use_spaces[/code],则代表使用的空格数。"
-
msgid "Use spaces instead of tabs for indentation."
msgstr "使用空格代替制表符进行缩进。"
@@ -21527,6 +22084,9 @@ msgstr "代码补全弹出窗口中,当前选定选项的背景高亮的 [Colo
msgid "[Color] of the executing icon for executing lines."
msgstr "执行行执行图标的 [Color]。"
+msgid "[Color] of background line highlight for folded code region."
+msgstr "折叠代码区块的背景行高亮 [Color]。"
+
msgid ""
"[Color] of the main line length guideline, secondary guidelines will have 50% "
"alpha applied."
@@ -21539,11 +22099,6 @@ 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."
-msgstr "代码补全弹出窗口中选项的最大宽度。更长的选项将被切断。"
-
msgid "Width of the scrollbar in the code completion popup."
msgstr "代码补全弹出窗口中滚动条的宽度。"
@@ -21711,18 +22266,6 @@ msgstr ""
"[b]注意:[/b]仅支持相同画布中不同对象的碰撞([Viewport] 画布或 "
"[CanvasLayer])。不同画布中的对象之间的碰撞行为是未定义的。"
-msgid ""
-"Accepts unhandled [InputEvent]s. [param shape_idx] is the child index of the "
-"clicked [Shape2D]. Connect to the [code]input_event[/code] signal to easily "
-"pick up these events.\n"
-"[b]Note:[/b] [method _input_event] requires [member input_pickable] to be "
-"[code]true[/code] and at least one [member collision_layer] bit to be set."
-msgstr ""
-"接收未处理的 [InputEvent]。[param shape_idx] 是被点击的 [Shape2D] 的子索引。连"
-"接到 [code]input_event[/code] 信号即可轻松获取这些事件。\n"
-"[b]注意:[/b][method _input_event] 要求 [member input_pickable] 为 "
-"[code]true[/code],并且至少要设置一个 [member collision_layer] 位。"
-
msgid ""
"Called 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 "
@@ -22293,19 +22836,6 @@ msgid ""
"for more details."
msgstr "生成的 [Shape3D] 的碰撞边距。详情见 [member Shape3D.margin]。"
-msgid ""
-"Array of vertices which define the 2D polygon in the local XY plane.\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 ""
-"顶点数组,定义局部 XY 平面上的 2D 多边形。\n"
-"[b]注意:[/b]返回值为原始值的副本。修改返回值大小或属性的方法不会影响原始的多"
-"边形。要修改该多边形的属性,请先将其赋值给临时变量,修改完成后再重新赋值给 "
-"[code]polygon[/code] 成员。"
-
msgid "A node that provides a [Shape2D] to a [CollisionObject2D] parent."
msgstr "向 [CollisionObject2D] 父级提供 [Shape2D] 的节点。"
@@ -22380,6 +22910,9 @@ msgid ""
"[MeshInstance3D] siblings geometry."
msgstr "将碰撞形状的形状设置为其所有凸面 [MeshInstance3D] 兄弟几何体的相加。"
+msgid "[i]Obsoleted.[/i] Use [signal Resource.changed] instead."
+msgstr "[i]已废弃 [/i] 请改用 [signal Resource.changed] 。"
+
msgid "A disabled collision shape has no effect in the world."
msgstr "禁用的碰撞形状对世界没有任何影响。"
@@ -23886,6 +24419,9 @@ msgstr ""
msgid "The fill color of the rectangle."
msgstr "该矩形的填充颜色。"
+msgid "An optionally compressed [Cubemap]."
+msgstr "可选压缩的 [Cubemap] 。"
+
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 "
@@ -23923,6 +24459,9 @@ msgstr ""
"染,而不是 2D。\n"
"有关立方体贴图的一般描述,请参阅 [Cubemap]。"
+msgid "An optionally compressed [CubemapArray]."
+msgstr "一个可选压缩的 [CubemapArray] 。"
+
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 "
@@ -24105,49 +24644,6 @@ msgstr ""
msgid "A 3D trimesh shape used for physics collision."
msgstr "用于物理碰撞的 3D 三角网格形状。"
-msgid ""
-"A 3D trimesh shape, intended for use in physics. Usually used to provide a "
-"shape for a [CollisionShape3D].\n"
-"Being just a collection of interconnected triangles, [ConcavePolygonShape3D] "
-"is the most freely configurable single 3D shape. It can be used to form "
-"polyhedra of any nature, or even shapes that don't enclose a volume. However, "
-"[ConvexPolygonShape3D] is [i]hollow[/i] even if the interconnected triangles "
-"do enclose a volume, which often makes it unsuitable for physics or "
-"detection.\n"
-"[b]Note:[/b] When used for collision, [ConcavePolygonShape3D] is intended to "
-"work with static [CollisionShape3D] nodes like [StaticBody3D] and will likely "
-"not behave well for [CharacterBody3D]s or [RigidBody3D]s in a mode other than "
-"Static.\n"
-"[b]Warning:[/b] Physics bodies that are small have a chance to clip through "
-"this shape when moving fast. This happens because on one frame, the physics "
-"body may be on the \"outside\" of the shape, and on the next frame it may be "
-"\"inside\" it. [ConcavePolygonShape3D] is hollow, so it won't detect a "
-"collision.\n"
-"[b]Performance:[/b] Due to its complexity, [ConcavePolygonShape3D] is the "
-"slowest 3D collision shape to check collisions against. Its use should "
-"generally be limited to level geometry. For convex geometry, "
-"[ConvexPolygonShape3D] should be used. For dynamic physics bodies that need "
-"concave collision, several [ConvexPolygonShape3D]s can be used to represent "
-"its collision by using convex decomposition; see [ConvexPolygonShape3D]'s "
-"documentation for instructions."
-msgstr ""
-"一种用于物理模拟的三维三角网格形状。通常用于为 [CollisionShape3D] 提供形状。\n"
-"作为一组相互连接的三角形, [ConcavePolygonShape3D] 是最自由配置的单一三维形状"
-"之一。它可以用于形成任何性质的多面体,甚至是不封闭体积的形状。然而,即使相互连"
-"接的三角形封闭了一个体积, [ConvexPolygonShape3D] 仍然是[i]中空[/i]的,这常常"
-"使其不适用于物理模拟或碰撞检测。\n"
-"[b]注意:[/b]当用于碰撞计算时, [ConcavePolygonShape3D] 旨在与静态的 "
-"[CollisionShape3D] 节点一起使用,如 [StaticBody3D] 。并且可能不适用于处于除静"
-"态外的其他模式下的 [CharacterBody3D] 或 [RigidBody3D] 。\n"
-"[b]警告:[/b]当移动速度较快时,较小的物体有可能穿过该形状。这是因为在一帧中,"
-"物理体可能在形状的“外部”,而在下一帧中可能在其“内部”。 "
-"[ConcavePolygonShape3D] 是中空的,因此不会检测到碰撞。\n"
-"[b]性能:[/b]由于其复杂性, [ConcavePolygonShape3D] 是用于检测三维碰撞的形状中"
-"最慢的。它的使用通常应限制在关卡几何体上。对于凸几何体,应使用 "
-"[ConvexPolygonShape3D] 。对于需要凹碰撞的动态物体,可以使用多个 "
-"[ConvexPolygonShape3D] 通过凸分解来表示其碰撞;请参阅 [ConvexPolygonShape3D] "
-"的文档以获取指示。"
-
msgid ""
"Returns the faces of the trimesh shape as an array of vertices. The array (of "
"length divisible by three) is naturally divided into triples; each triple of "
@@ -26377,35 +26873,6 @@ msgstr ""
"[Theme] 资源,则会合并主题项,子节点的定义优先级更高。\n"
"[b]注意:[/b]除非 [Window] 为嵌入式,否则窗口样式无效。"
-msgid ""
-"The name of a theme type variation used by this [Control] to look up its own "
-"theme items. When empty, the class name of the node is used (e.g. "
-"[code]Button[/code] for the [Button] control), as well as the class names of "
-"all parent classes (in order of inheritance).\n"
-"When set, this property gives the highest priority to the type of the "
-"specified name. This type can in turn extend another type, forming a "
-"dependency chain. See [method Theme.set_type_variation]. If the theme item "
-"cannot be found using this type or its base types, lookup falls back on the "
-"class names.\n"
-"[b]Note:[/b] To look up [Control]'s own items use various [code]get_theme_*[/"
-"code] methods without specifying [code]theme_type[/code].\n"
-"[b]Note:[/b] Theme items are looked for in the tree order, from branch to "
-"root, where each [Control] node is checked for its [member theme] property. "
-"The earliest match against any type/class name is returned. The project-level "
-"Theme and the default Theme are checked last."
-msgstr ""
-"该 [Control] 用于查找其自有的主题项的主题类型变体的名称。当为空时,将使用节点"
-"的类名(例如 [code]Button[/code] 用于 [Button] 控件),以及所有父类的类名(按"
-"继承顺序)。\n"
-"设置后,该属性将最高优先级赋予指定名称的类型。这种类型又可以扩展另一种类型,形"
-"成依赖链。参见 [method Theme.set_type_variation]。如果使用该类型或其基类型无法"
-"找到主题项,则查找会回退到依赖类名查找。\n"
-"[b]注意:[/b]要查找 [Control] 自有的项目,请使用各种 [code]get_theme_*[/code] "
-"方法且无需指定 [code]theme_type[/code]。\n"
-"[b]注意:[/b]主题项按树状顺序查找,从分支到根,其中每个 [Control] 节点的 "
-"[member theme] 属性都将被检查。最早匹配任意类型名称/类名称的项将被返回。最后检"
-"查项目级的主题和默认主题。"
-
msgid ""
"The default tooltip text. The tooltip appears when the user's mouse cursor "
"stays idle over this control for a few moments, provided that the [member "
@@ -26536,16 +27003,6 @@ msgstr ""
"[b]注意:[/b]作为一种优化,当该节点在场景树之外时,发生的更改不会发送该通知。"
"相反,所有的主题项更新可以在该节点进入场景树时一次性应用。"
-msgid ""
-"Sent when this node is inside a [ScrollContainer] which has begun being "
-"scrolled."
-msgstr "当此节点在已开始滚动的 [ScrollContainer] 内部时发送。"
-
-msgid ""
-"Sent when this node is inside a [ScrollContainer] which has stopped being "
-"scrolled."
-msgstr "当此节点在已停止滚动的 [ScrollContainer] 内部时发送。"
-
msgid "Sent when control layout direction is changed."
msgstr "当控件的布局方向改变时发送。"
@@ -26992,6 +27449,9 @@ msgstr ""
msgid "The list of 3D points forming the convex polygon shape."
msgstr "形成凸多边形的 3D 点列表。"
+msgid "A CPU-based 2D particle emitter."
+msgstr "基于 CPU 的 2D 粒子发射器。"
+
msgid ""
"CPU-based 2D particle node used to create a variety of particle systems and "
"effects.\n"
@@ -27490,6 +27950,9 @@ msgstr ""
msgid "Represents the size of the [enum EmissionShape] enum."
msgstr "代表 [enum EmissionShape] 枚举的大小。"
+msgid "A CPU-based 3D particle emitter."
+msgstr "基于 CPU 的 3D 粒子发射器。"
+
msgid ""
"CPU-based 3D particle node used to create a variety of particle systems and "
"effects.\n"
@@ -28070,6 +28533,9 @@ msgstr ""
"[X509Certificate],并可作为 [method StreamPeerTLS.accept_stream] 中相应的证书"
"的私钥。"
+msgid "SSL certificates"
+msgstr "SSL 证书"
+
msgid ""
"Returns [code]true[/code] if this CryptoKey only has the public part, and not "
"the private one."
@@ -28668,6 +29134,9 @@ msgid ""
"Creates a placeholder version of this resource ([PlaceholderCubemapArray])."
msgstr "创建该资源的占位符版本([PlaceholderCubemapArray])。"
+msgid "A mathematical curve."
+msgstr "数学曲线。"
+
msgid ""
"Adds a point to the curve. For each side, if the [code]*_mode[/code] is "
"[constant TANGENT_LINEAR], the [code]*_tangent[/code] angle (in degrees) uses "
@@ -29099,52 +29568,6 @@ msgstr ""
"略。如果曲线没有点,则该函数将向控制台发送一个错误,并返回 [code](0, 0, 0)[/"
"code]。"
-msgid ""
-"Returns a point within the curve at position [param offset], where [param "
-"offset] is measured as a distance in 3D units along the curve.\n"
-"To do that, it finds the two cached points where the [param offset] lies "
-"between, then interpolates the values. This interpolation is cubic if [param "
-"cubic] is set to [code]true[/code], or linear if set to [code]false[/code].\n"
-"Cubic interpolation tends to follow the curves better, but linear is faster "
-"(and often, precise enough)."
-msgstr ""
-"返回曲线内位于 [param offset] 位置的一个点,其中 [param offset] 为沿曲线的 3D "
-"单位测量距离。\n"
-"为此,它会找到 [param offset] 位于其间的两个缓存点,然后对值进行插值。如果 "
-"[param cubic] 被设置为 [code]true[/code],则该插值是立方插值;如果被设置为 "
-"[code]false[/code],则该插值是线性插值。\n"
-"立方插值往往能更好地跟随曲线,但线性插值速度更快(而且通常足够精确)。"
-
-msgid ""
-"Returns an up vector within the curve at position [param offset], where "
-"[param offset] is measured as a distance in 3D units along the curve.\n"
-"To do that, it finds the two cached up vectors where the [param offset] lies "
-"between, then interpolates the values. If [param apply_tilt] is [code]true[/"
-"code], an interpolated tilt is applied to the interpolated up vector.\n"
-"If the curve has no up vectors, the function sends an error to the console, "
-"and returns [code](0, 1, 0)[/code]."
-msgstr ""
-"返回曲线内位于 [param offset] 位置的向上向量,其中 [param offset] 为沿曲线的 "
-"3D 单位测量距离。\n"
-"为此,它会找到 [param offset] 位于其间的两个缓存向上向量,然后对值进行插值。如"
-"果 [param apply_tilt] 为 [code]true[/code],则对插值后的向上向量应用插值后的倾"
-"斜。\n"
-"如果曲线没有向上向量,则该函数将向控制台发送一个错误,并返回 [code](0, 1, 0)[/"
-"code]。"
-
-msgid ""
-"Similar with [code]interpolate_baked()[/code]. The return value is "
-"[code]Transform3D[/code], with [code]origin[/code] as point position, "
-"[code]basis.x[/code] as sideway vector, [code]basis.y[/code] as up vector, "
-"[code]basis.z[/code] as forward vector. When the curve length is 0, there is "
-"no reasonable way to calculate the rotation, all vectors aligned with global "
-"space axes."
-msgstr ""
-"与 [code]interpolate_baked()[/code] 类似。返回值为 [code]Transform3D[/code],"
-"其中 [code]origin[/code] 作为点位置,[code]basis.x[/code] 作为横向向量,"
-"[code]basis.y[/code] 作为向上向量,[code]basis.z[/code] 作为前向向量。当曲线长"
-"度为 0 时,将没有合理的方法来计算旋转,所有向量都会与全局空间轴对齐。"
-
msgid ""
"Sets the tilt angle in radians for the point [param idx]. If the index is out "
"of bounds, the function sends an error to the console.\n"
@@ -29210,6 +29633,11 @@ msgid ""
msgstr ""
"仅将曲线存储在红色通道中。这可以节省显存,但某些自定义着色器可能无法使用它。"
+msgid ""
+"A 1D texture where the red, green, and blue color channels correspond to "
+"points on 3 curves."
+msgstr "一维纹理,其中红色、绿色和蓝色通道分别对应 3 条曲线上的点。"
+
msgid "The [Curve] that is rendered onto the texture's red channel."
msgstr "渲染到该纹理红色通道上的 [Curve]。"
@@ -29314,16 +29742,6 @@ msgstr ""
"通过类似弹簧的力连接两个 2D 物理物体的物理关节。这就像一个总是想拉伸到给定长度"
"的弹簧。"
-msgid ""
-"The spring joint's damping ratio. A value between [code]0[/code] and [code]1[/"
-"code]. When the two bodies move into different directions the system tries to "
-"align them to the spring axis again. A high [code]damping[/code] value forces "
-"the attached bodies to align faster."
-msgstr ""
-"弹簧关节的阻尼比。值在 [code]0[/code] 和 [code]1[/code] 之间。当两个机构移动到"
-"不同的方向时,系统会尝试将它们再次对准弹簧轴。高的 [code]damping[/code] 值迫使"
-"连接的机构更快地对齐。"
-
msgid ""
"The spring joint's maximum length. The two attached bodies cannot stretch it "
"past this value."
@@ -30152,14 +30570,6 @@ msgid ""
msgstr ""
"使该字典只读,即禁用字典内容的修改。不适用于嵌套内容,例如内嵌字典的内容。"
-msgid ""
-"Adds entries from [param dictionary] to this dictionary. By default, "
-"duplicate keys are not copied over, unless [param overwrite] is [code]true[/"
-"code]."
-msgstr ""
-"将 [param dictionary] 中的条目添加到该字典中。默认不复制重复的键,除非 [param "
-"overwrite] 为 [code]true[/code]。"
-
msgid ""
"Returns the number of entries in the dictionary. Empty dictionaries ([code]{ }"
"[/code]) always return [code]0[/code]. See also [method is_empty]."
@@ -30325,18 +30735,6 @@ msgstr ""
msgid "File system"
msgstr "文件系统"
-msgid ""
-"Changes the currently opened directory to the one passed as an argument. The "
-"argument can be relative to the current directory (e.g. [code]newdir[/code] "
-"or [code]../newdir[/code]), or an absolute path (e.g. [code]/tmp/newdir[/"
-"code] or [code]res://somedir/newdir[/code]).\n"
-"Returns one of the [enum Error] code constants ([constant OK] on success)."
-msgstr ""
-"将当前打开的目录改为作为参数传递的目录。该参数可以是相对于当前目录的(例如 "
-"[code]newdir[/code] 或 [code]../newdir[/code]),也可以是绝对路径(例如 "
-"[code]/tmp/newdir[/code] 或 [code]res://somedir/newdir[/code])。\n"
-"返回 [enum Error] 错误码常量之一(成功时为 [constant OK])。"
-
msgid ""
"Copies the [param from] file to the [param to] destination. Both arguments "
"should be paths to files, either relative or absolute. If the destination "
@@ -30670,6 +31068,9 @@ msgstr ""
msgid "3D lights and shadows"
msgstr "3D 灯光与阴影"
+msgid "Faking global illumination"
+msgstr "伪造全局光照"
+
msgid ""
"If [code]true[/code], shadow detail is sacrificed in exchange for smoother "
"transitions between splits. Enabling shadow blend splitting also has a "
@@ -32001,41 +32402,6 @@ msgstr ""
"设置活动的数位板驱动程序的名称。\n"
"[b]注意:[/b]该方法仅在 Windows 上实现。"
-msgid ""
-"Returns an [Array] of voice information dictionaries.\n"
-"Each [Dictionary] contains two [String] entries:\n"
-"- [code]name[/code] is voice name.\n"
-"- [code]id[/code] is voice identifier.\n"
-"- [code]language[/code] is language code in [code]lang_Variant[/code] format. "
-"[code]lang[/code] part is a 2 or 3-letter code based on the ISO-639 standard, "
-"in lowercase. And [code]Variant[/code] part is an engine dependent string "
-"describing country, region or/and dialect.\n"
-"Note that Godot depends on system libraries for text-to-speech functionality. "
-"These libraries are installed by default on Windows and macOS, but not on all "
-"Linux distributions. If they are not present, this method will return an "
-"empty list. This applies to both Godot users on Linux, as well as end-users "
-"on Linux running Godot games that use text-to-speech.\n"
-"[b]Note:[/b] This method is implemented on Android, iOS, Web, Linux (X11), "
-"macOS, and Windows.\n"
-"[b]Note:[/b] [member ProjectSettings.audio/general/text_to_speech] should be "
-"[code]true[/code] to use text-to-speech."
-msgstr ""
-"返回语音信息字典的 [Array]。\n"
-"每个 [Dictionary] 包含两个 [String] 条目:\n"
-"- [code]name[/code] 是语音名称。\n"
-"- [code]id[/code] 是语音标识符。\n"
-"- [code]language[/code] 是语言代码,格式为 [code]lang_Variant[/code] 。"
-"[code]lang[/code] 部分是小写的基于 ISO-639 标准的 2 或 3 字母代码。而 "
-"[code]Variant[/code] 部分是一个依赖于引擎的字符串,描述国家、地区或/和方言。\n"
-"请注意,Godot 依赖于系统库来实现文本到语音的功能。这些库在 Windows 和 MacOS 上"
-"是默认安装的,但并非安装在所有 Linux 发行版上。如果它们不存在,此方法将返回一"
-"个空列表。这适用于 Linux 上的 Godot 用户,以及在 Linux 上运行使用文本到语音的 "
-"Godot 游戏的最终用户。\n"
-"[b]注意:[/b]这个方法在 Android、iOS、Web、Linux(X11)、macOS 和 Windows 上实"
-"现。\n"
-"[b]注意:[/b][member ProjectSettings.audio/general/text_to_speech] 应当为 "
-"[code]true[/code] 才能够使用文本到语音功能。"
-
msgid ""
"Returns an [PackedStringArray] of voice identifiers for the [param "
"language].\n"
@@ -32387,17 +32753,6 @@ msgstr ""
"将由 [param window_id] 指定的窗口移动至指定的屏幕 [param screen]。另见 "
"[method window_get_current_screen]。"
-msgid ""
-"Sets the [param callback] that should be called when files are dropped from "
-"the operating system's file manager to the window specified by [param "
-"window_id].\n"
-"[b]Note:[/b] This method is implemented on Windows, macOS, Linux (X11) and "
-"Web."
-msgstr ""
-"设置回调 [param callback],将文件从操作系统的文件管理器拖放到由 [param "
-"window_id] 指定的窗口中时会进行调用。\n"
-"[b]注意:[/b]这个方法在 Windows、macOS、Linux(X11)、Web 上实现。"
-
msgid ""
"If set to [code]true[/code], this window will always stay on top of its "
"parent window, parent window will ignore input while this window is opened.\n"
@@ -32437,20 +32792,6 @@ msgstr ""
"%E8%BE%93%E5%85%A5%E6%B3%95]输入法编辑器[/url]弹出框的位置。仅在指定 [param "
"window_id] 的 [method window_set_ime_active] 为 [code]true[/code] 时有效。"
-msgid ""
-"Sets the [param callback] that should be called when any [InputEvent] is sent "
-"to the window specified by [param window_id]."
-msgstr ""
-"设置回调 [param callback],向由 [param window_id] 指定的窗口发送任何 "
-"[InputEvent] 时会进行回调。"
-
-msgid ""
-"Sets the [param callback] that should be called when text is entered using "
-"the virtual keyboard to the window specified by [param window_id]."
-msgstr ""
-"设置回调 [param callback],使用虚拟键盘向由 [param window_id] 指定的窗口输入文"
-"本时会进行回调。"
-
msgid ""
"Sets the maximum size of the window specified by [param window_id] in pixels. "
"Normally, the user will not be able to drag the window to make it smaller "
@@ -32598,13 +32939,6 @@ msgstr ""
"另见 [method window_get_position] 和 [method window_set_size]。\n"
"[b]注意:[/b]建议改用 [member Window.position] 更改此值。"
-msgid ""
-"Sets the [param callback] that will be called when the window specified by "
-"[param window_id] is moved or resized."
-msgstr ""
-"设置回调 [param callback],由 [param window_id] 指定的窗口发生移动或调整大小时"
-"会进行回调。"
-
msgid ""
"Sets the size of the given window to [param size] (in pixels). See also "
"[method window_get_size] and [method window_get_position].\n"
@@ -32670,13 +33004,6 @@ msgstr ""
"心的偏移量。\n"
"[b]注意:[/b]这个标志仅在 macOS 上实现。"
-msgid ""
-"Sets the [param callback] that will be called when an event occurs in the "
-"window specified by [param window_id]."
-msgstr ""
-"设置回调 [param callback],由 [param window_id] 指定的窗口发生事件时会进行回"
-"调。"
-
msgid ""
"Display server supports global menu. This allows the application to display "
"its menu items in the operating system's top bar. [b]macOS[/b]"
@@ -33080,48 +33407,6 @@ msgstr ""
"最大化窗口模式,即 [Window] 会占据整个屏幕区域,任务栏除外,并且会显示边框。通"
"常发生在按下最大化按钮时。"
-msgid ""
-"Full screen mode with full multi-window support.\n"
-"Full screen window cover the entire display area of a screen, have no border "
-"or decorations. Display video mode is not changed.\n"
-"[b]Note:[/b] Regardless of the platform, enabling full screen will change the "
-"window size to match the monitor's size. Therefore, make sure your project "
-"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions."
-"html]multiple resolutions[/url] when enabling full screen mode."
-msgstr ""
-"具有完整多窗口支持的全屏模式。\n"
-"全屏窗口覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有更改。\n"
-"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,"
-"请确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/"
-"multiple_resolutions.html]多种分辨率[/url]。"
-
-msgid ""
-"A single window full screen mode. This mode has less overhead, but only one "
-"window can be open on a given screen at a time (opening a child window or "
-"application switching will trigger a full screen transition).\n"
-"Full screen window cover the entire display area of a screen, have no border "
-"or decorations. Display video mode is not changed.\n"
-"[b]On Windows:[/b] Depending on video driver, full screen transition might "
-"cause screens to go black for a moment.\n"
-"[b]On macOS:[/b] Exclusive full screen mode prevents Dock and Menu from "
-"showing up when the mouse pointer is hovering the edge of the screen.\n"
-"[b]On Linux (X11):[/b] Exclusive full screen mode bypasses compositor.\n"
-"[b]Note:[/b] Regardless of the platform, enabling full screen will change the "
-"window size to match the monitor's size. Therefore, make sure your project "
-"supports [url=$DOCS_URL/tutorials/rendering/multiple_resolutions."
-"html]multiple resolutions[/url] when enabling full screen mode."
-msgstr ""
-"单窗口全屏模式。这种模式开销较小,但一次只能在给定屏幕上打开一个窗口(打开子窗"
-"口或切换应用程序会触发全屏过渡)。\n"
-"全屏窗口会覆盖屏幕的整个显示区域,没有边框或装饰。显示视频模式没有改变。\n"
-"[b]在 Windows 上:[/b]取决于视频驱动程序,全屏过渡可能会导致屏幕暂时变黑。\n"
-"[b]在 macOS 上:[/b]当鼠标指针悬停在屏幕边缘时,独占全屏模式会阻止 Dock 和 "
-"Menu 出现。\n"
-"[b]在 Linux(X11)上:[/b]独占全屏模式会绕过合成器。\n"
-"[b]注意:[/b]无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,"
-"确保你的项目在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/"
-"multiple_resolutions.html]多个分辨率[/url]。"
-
msgid ""
"The window can't be resized by dragging its resize grip. It's still possible "
"to resize the window using [method window_set_size]. This flag is ignored for "
@@ -33197,62 +33482,6 @@ msgstr "所有鼠标事件都被传递到同一应用程序的底层窗口。"
msgid "Max value of the [enum WindowFlags]."
msgstr "[enum WindowFlags] 的最大值。"
-msgid ""
-"Sent when the mouse pointer enters the window, see [method "
-"window_set_window_event_callback]."
-msgstr ""
-"当鼠标指针进入该窗口时发送,见 [method window_set_window_event_callback]。"
-
-msgid ""
-"Sent when the mouse pointer exits the window, see [method "
-"window_set_window_event_callback]."
-msgstr ""
-"当鼠标指针退出该窗口时发送,见 [method window_set_window_event_callback]。"
-
-msgid ""
-"Sent when the window grabs focus, see [method "
-"window_set_window_event_callback]."
-msgstr "当该窗口获得焦点时发送,见 [method window_set_window_event_callback]。"
-
-msgid ""
-"Sent when the window loses focus, see [method "
-"window_set_window_event_callback]."
-msgstr "当该窗口失去焦点时发送,见 [method window_set_window_event_callback]。"
-
-msgid ""
-"Sent when the user has attempted to close the window (e.g. close button is "
-"pressed), see [method window_set_window_event_callback]."
-msgstr ""
-"当用户试图关闭该窗口时发送(例如按下关闭按钮),见 [method "
-"window_set_window_event_callback]。"
-
-msgid ""
-"Sent when the device \"Back\" button is pressed, see [method "
-"window_set_window_event_callback].\n"
-"[b]Note:[/b] This event is implemented only on Android."
-msgstr ""
-"当按下设备的“后退”按钮时发送,见 [method window_set_window_event_callback]。\n"
-"[b]注意:[/b]该事件仅在 Android 上实现。"
-
-msgid ""
-"Sent when the window is moved to the display with different DPI, or display "
-"DPI is changed, see [method window_set_window_event_callback].\n"
-"[b]Note:[/b] This flag is implemented only on macOS."
-msgstr ""
-"当窗口被移动到具有不同 DPI 的显示器上,或者显示器的 DPI 更改时发送,见 "
-"[method window_set_window_event_callback]。\n"
-"[b]注意:[/b]该标志仅在 macOS 上实现。"
-
-msgid ""
-"Sent when the window title bar decoration is changed (e.g. [constant "
-"WINDOW_FLAG_EXTEND_TO_TITLE] is set or window entered/exited full screen "
-"mode), see [method window_set_window_event_callback].\n"
-"[b]Note:[/b] This flag is implemented only on macOS."
-msgstr ""
-"当窗口标题栏的装饰改变时发送(例如 [constant WINDOW_FLAG_EXTEND_TO_TITLE] 被设"
-"置或窗口进入/退出全屏模式),见 [method window_set_window_event_callback]。\n"
-"[b]注意:[/b]该标志仅在 macOS 上实现。"
-
msgid ""
"Display handle:\n"
"- Linux (X11): [code]X11::Display*[/code] for the display.\n"
@@ -33782,6 +34011,16 @@ msgstr ""
msgid "Returns the [EditorDebuggerSession] with the given [param id]."
msgstr "返回具有给定 [param id] 的 [EditorDebuggerSession]。"
+msgid ""
+"Returns an array of [EditorDebuggerSession] currently available to this "
+"debugger plugin.\n"
+"[b]Note:[/b] Sessions in the array may be inactive, check their state via "
+"[method EditorDebuggerSession.is_active]."
+msgstr ""
+"返回该调试器插件当前可用的 [EditorDebuggerSession] 数组。\n"
+"[b]注意:[/b]数组中的会话可能处于非活动状态,请通过 [method "
+"EditorDebuggerSession.is_active] 检查它们的状态。"
+
msgid "A class to interact with the editor debugger."
msgstr "与编辑器调试器交互的类。"
@@ -33880,14 +34119,17 @@ msgstr ""
"信息,请参阅 [method EditorExportPlugin._begin_customize_scenes] 和 [method "
"EditorExportPlugin._begin_customize_resources]。"
+msgid "$DOCS_URL/tutorials/platform/consoles.html"
+msgstr "$DOCS_URL/tutorials/platform/consoles.html"
+
msgid "Exporter for Android."
msgstr "适用于 Android 的导出器。"
msgid "Exporting for Android"
msgstr "为 Android 导出"
-msgid "Custom builds for Android"
-msgstr "适用于 Android 的自定义构建"
+msgid "Android plugins documentation index"
+msgstr "Android 插件文档索引"
msgid ""
"Array of random bytes that the licensing Policy uses to create an "
@@ -34149,6 +34391,14 @@ msgid ""
"AccountManager."
msgstr "允许应用程序在 AccountManager 中扮演 AccountAuthenticator 的角色。"
+msgid ""
+"Allows an application to collect battery statistics. See [url=https://"
+"developer.android.com/reference/android/Manifest."
+"permission#BATTERY_STATS]BATTERY_STATS[/url]."
+msgstr ""
+"允许应用程序收集电池统计信息。见 [url=https://developer.android.com/reference/"
+"android/Manifest.permission#BATTERY_STATS]BATTERY_STATS[/url]。"
+
msgid ""
"Must be required by an AccessibilityService, to ensure that only the system "
"can bind to it. See [url=https://developer.android.com/reference/android/"
@@ -35152,12 +35402,21 @@ msgid ""
"restore infrastructure."
msgstr "如果为 [code]true[/code],则允许应用程序参与基础设施的备份与恢复。"
+msgid ""
+"Machine-readable application version. This must be incremented for every new "
+"release pushed to the Play Store."
+msgstr ""
+"机器可读的应用程序版本。每向 Play Store 推送一个新版本,该版本都必须递增。"
+
msgid "Exporter for iOS."
msgstr "iOS 导出器。"
msgid "Exporting for iOS"
msgstr "为 iOS 导出"
+msgid "iOS plugins documentation index"
+msgstr "iOS 插件文档索引"
+
msgid ""
"Apple Team ID, unique 10-character string. To locate your Team ID check "
"\"Membership details\" section in your Apple developer account dashboard, or "
@@ -35566,6 +35825,15 @@ msgstr "捆绑包的(英文)版权声明,用户可见。"
msgid "Copyright notice for the bundle visible to the user (localized)."
msgstr "捆绑包的(本地化)版权声明,用户可见。"
+msgid ""
+"Application icon file. If left empty, it will fallback to [member "
+"ProjectSettings.application/config/macos_native_icon], and then to [member "
+"ProjectSettings.application/config/icon]."
+msgstr ""
+"应用程序图标文件。如果留空,则会回退至 [member ProjectSettings.application/"
+"config/macos_native_icon],继而回退至 [member ProjectSettings.application/"
+"config/icon]。"
+
msgid ""
"Minimum version of macOS required for this application to run in the "
"[code]major.minor.patch[/code] or [code]major.minor[/code] format, can only "
@@ -35769,45 +36037,6 @@ msgstr ""
"com_apple_security_automation_apple-events]com.apple.security.automation."
"apple-events[/url]。"
-msgid ""
-"Enable if you need to use the microphone or other audio input sources, if "
-"it's enabled you should also provide usage message in the [code]privacy/"
-"microphone_usage_description[/code] option. See [url=https://developer.apple."
-"com/documentation/bundleresources/entitlements/"
-"com_apple_security_device_audio-input]com.apple.security.device.audio-input[/"
-"url]."
-msgstr ""
-"请在需要使用麦克风或其他音频输入源时启用,启用时还应在 [code]privacy/"
-"microphone_usage_description[/code] 选项中提供用途信息。见 [url=https://"
-"developer.apple.com/documentation/bundleresources/entitlements/"
-"com_apple_security_device_audio-input]com.apple.security.device.audio-input[/"
-"url]。"
-
-msgid ""
-"Enable to allow access to the user's calendar, if it's enabled you should "
-"also provide usage message in the [code]privacy/calendar_usage_description[/"
-"code] option. See [url=https://developer.apple.com/documentation/"
-"bundleresources/entitlements/com_apple_security_personal-"
-"information_calendars]com.apple.security.personal-information.calendars[/url]."
-msgstr ""
-"启用后允许访问用户的日历,启用时还应在 [code]privacy/"
-"calendar_usage_description[/code] 选项中提供用途信息。见 [url=https://"
-"developer.apple.com/documentation/bundleresources/entitlements/"
-"com_apple_security_personal-information_calendars]com.apple.security.personal-"
-"information.calendars[/url]。"
-
-msgid ""
-"Enable if you need to use the camera, if it's enabled you should also provide "
-"usage message in the [code]privacy/camera_usage_description[/code] option. "
-"See [url=https://developer.apple.com/documentation/bundleresources/"
-"entitlements/com_apple_security_device_camera]com.apple.security.device."
-"camera[/url]."
-msgstr ""
-"请在需要访问相机时启用,启用时还应在 [code]privacy/camera_usage_description[/"
-"code] 选项中提供用途信息。见 [url=https://developer.apple.com/documentation/"
-"bundleresources/entitlements/com_apple_security_device_camera]com.apple."
-"security.device.camera[/url]。"
-
msgid ""
"Custom entitlements [code].plist[/code] file, if specified the rest of "
"entitlements in the export config are ignored."
@@ -35840,33 +36069,6 @@ msgstr ""
"documentation/bundleresources/entitlements/com_apple_security_cs_disable-"
"library-validation]com.apple.security.cs.disable-library-validation[/url]。"
-msgid ""
-"Enable if you need to use location information from Location Services, if "
-"it's enabled you should also provide usage message in the [code]privacy/"
-"location_usage_description[/code] option. See [url=https://developer.apple."
-"com/documentation/bundleresources/entitlements/com_apple_security_personal-"
-"information_location]com.apple.security.personal-information.location[/url]."
-msgstr ""
-"如果你需要使用位置服务的位置信息,请启用此选项。如果已启用,则还应在"
-"[code]privacy/location_usage_description[/code]选项中提供使用说明。请参阅"
-"[url=https://developer.apple.com/documentation/bundleresources/entitlements/"
-"com_apple_security_personal-information_location]com.apple.security.personal-"
-"information.location[/url]。"
-
-msgid ""
-"Enable to allow access to the user's Photos library, if it's enabled you "
-"should also provide usage message in the [code]privacy/"
-"photos_library_usage_description[/code] option. See [url=https://developer."
-"apple.com/documentation/bundleresources/entitlements/"
-"com_apple_security_personal-information_photos-library]com.apple.security."
-"personal-information.photos-library[/url]."
-msgstr ""
-"启用后允许对用户的照片库进行访问,启用时还应在 [code]privacy/"
-"photos_library_usage_description[/code] 选项中提供用途信息。见 [url=https://"
-"developer.apple.com/documentation/bundleresources/entitlements/"
-"com_apple_security_personal-information_photos-library]com.apple.security."
-"personal-information.photos-library[/url]。"
-
msgid ""
"The \"Full Name\", \"Common Name\" or SHA-1 hash of the signing identity used "
"to sign [code].app[/code] bundle."
@@ -36060,6 +36262,9 @@ msgstr "Web 导出器。"
msgid "Exporting for the Web"
msgstr "为 Web 导出"
+msgid "Web documentation index"
+msgstr "网页文档索引"
+
msgid ""
"The canvas resize policy determines how the canvas should be resized by Godot."
msgstr "画布大小调整策略决定 Godot 应当如何调整画布的大小。"
@@ -36104,6 +36309,15 @@ msgstr ""
"展示给用户的文件说明。必填。见 [url=https://learn.microsoft.com/en-us/windows/"
"win32/menurc/stringfileinfo-block]StringFileInfo[/url]。"
+msgid ""
+"Application icon file. If left empty, it will fallback to [member "
+"ProjectSettings.application/config/windows_native_icon], and then to [member "
+"ProjectSettings.application/config/icon]."
+msgstr ""
+"应用程序图标文件。如果留空,则会回退至 [member ProjectSettings.application/"
+"config/windows_native_icon],继而回退至 [member ProjectSettings.application/"
+"config/icon]。"
+
msgid ""
"If enabled, icon and metadata of the exported executable is set according to "
"the other [code]application/*[/code] values."
@@ -36236,6 +36450,9 @@ msgstr ""
"要使用 [EditorExportPlugin],请先用 [method EditorPlugin.add_export_plugin] 注"
"册。"
+msgid "Export Android plugins"
+msgstr "导出 Android 插件"
+
msgid ""
"Return [code]true[/code] if this plugin will customize resources based on the "
"platform and features used.\n"
@@ -36384,20 +36601,6 @@ msgstr ""
"将 C++ 代码添加到 iOS 导出中。最终的代码是由每个激活的导出插件附加的代码创建"
"的。"
-msgid ""
-"Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode "
-"project and embeds it into resulting binary.\n"
-"[b]Note:[/b] For static libraries (*.a) works in same way as "
-"[code]add_ios_framework[/code].\n"
-"This method should not be used for System libraries as they are already "
-"present on the device."
-msgstr ""
-"将动态库(*.dylib、*.framework)添加到iOS的Xcode项目的链接阶段,并将其嵌入到生"
-"成的二进制文件中。\n"
-"[b]注意:[/b]对于静态库(*.a),该方法的工作方式与[code]add_ios_framework[/"
-"code]相同。\n"
-"此方法不该用于系统库,因为它们已经存在于设备上。"
-
msgid ""
"Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to "
"Linking Phase in iOS's Xcode project."
@@ -36627,16 +36830,6 @@ msgstr ""
"[b]警告:[/b]这是一个必需的内部节点,删除和释放它可能会导致崩溃。如果你希望隐"
"藏它或其任何子项,请使用它们的 [member CanvasItem.visible] 属性。"
-msgid ""
-"Returns the [code]VBoxContainer[/code] used to display the file system.\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 CanvasItem.visible] property."
-msgstr ""
-"返回用于显示文件系统的 [code]VBoxContainer[/code]。\n"
-"[b]警告:[/b]这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏"
-"它或它的任何子节点,请使用 [member CanvasItem.visible] 属性。"
-
msgid ""
"Notify the [EditorFileDialog] that its view of the data is no longer "
"accurate. Updates the view contents on next view update."
@@ -37340,28 +37533,6 @@ msgstr ""
"组。\n"
"必须重写这个方法才能完成实际的导入工作。参阅本类的描述以了解如何重写该方法。"
-msgid ""
-"This function can only be called during the [method _import] callback and it "
-"allows manually importing resources from it. This is useful when the imported "
-"file generates external resources that require importing (as example, "
-"images). Custom parameters for the \".import\" file can be passed via the "
-"[param custom_options]. Additionally, in cases where multiple importers can "
-"handle a file, the [param custom_importer] ca be specified to force a "
-"specific one. This function performs a resource import and returns "
-"immediately with a success or error code. [param generator_parameters] "
-"defines optional extra metadata which will be stored as "
-"[code]generator_parameters[/code] in the [code]remap[/code] section of the "
-"[code].import[/code] file, for example to store a md5 hash of the source data."
-msgstr ""
-"该函数只能在 [method _import] 回调期间调用,它允许从中手动导入资源。当导入的文"
-"件生成需要导入的外部资源(例如图像)时,这很有用。“.import”文件的自定义参数可"
-"以通过 [param custom_options] 传递。此外,在多个导入器可以处理一个文件的情况"
-"下,可以指定 [param custom_importer] 以强制使用某个特定的导入器。该函数会执行"
-"一次资源导入并立即返回成功或错误代码。[param generator_parameters] 定义可选的"
-"额外元数据,这些元数据将作为 [code]generator_parameters[/code] 存储在 [code]."
-"import[/code] 文件的 [code]remap[/code] 小节中,例如存储源数据的一个 md5 散列"
-"值。"
-
msgid "A control used to edit properties of an object."
msgstr "用于编辑对象属性的控件。"
@@ -37555,6 +37726,39 @@ msgstr ""
msgid "Godot editor's interface."
msgstr "Godot 编辑器的界面。"
+msgid ""
+"[EditorInterface] gives you control over Godot editor's window. It allows "
+"customizing the window, saving and (re-)loading scenes, rendering mesh "
+"previews, inspecting and editing resources and objects, and provides access "
+"to [EditorSettings], [EditorFileSystem], [EditorResourcePreview], "
+"[ScriptEditor], the editor viewport, and information about scenes.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton directly by its name.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var editor_settings = EditorInterface.get_editor_settings()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// In C# you can access it via the static Singleton property.\n"
+"EditorSettings settings = EditorInterface.Singleton.GetEditorSettings();\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"[EditorInterface] 允许控制 Godot 编辑器的窗口,包括自定义窗口,保存和重新加载"
+"场景,渲染网格预览,检查和编辑资源和对象,并提供对 [EditorSettings] , "
+"[EditorFileSystem] , [EditorResourcePreview] , [ScriptEditor] ,编辑器视口以"
+"及场景信息的访问。\n"
+"[b]注意:[/b] 这个类不应该被直接实例化。而是,直接通过名称访问单例。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var editor_settings = EditorInterface.get_editor_settings()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 在 C# 中,可以通过静态 Singleton 属性来访问。\n"
+"EditorSettings settings = EditorInterface.Singleton.GetEditorSettings();\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
msgid ""
"Edits the given [Node]. The node will be also selected if it's inside the "
"scene tree."
@@ -37638,6 +37842,31 @@ msgstr ""
msgid "Returns the editor's [EditorSettings] instance."
msgstr "返回编辑器的 [EditorSettings] 实例。"
+msgid ""
+"Returns the editor's [Theme].\n"
+"[b]Note:[/b] When creating custom editor UI, prefer accessing theme items "
+"directly from your GUI nodes using the [code]get_theme_*[/code] methods."
+msgstr ""
+"返回编辑器的 [Theme]。\n"
+"[b]注意:[/b]创建自定义编辑器 UI 时,请优先直接通过 GUI 节点的 "
+"[code]get_theme_*[/code] 方法来访问主题项目。"
+
+msgid ""
+"Returns the 2D editor [SubViewport]. It does not have a camera. Instead, the "
+"view transforms are done directly and can be accessed with [member Viewport."
+"global_canvas_transform]."
+msgstr ""
+"返回 2D 编辑器 [SubViewport]。视口中没有相机。视图是直接进行变换的,可以使用 "
+"[member Viewport.global_canvas_transform] 访问。"
+
+msgid ""
+"Returns the specified 3D editor [SubViewport], from [code]0[/code] to "
+"[code]3[/code]. The viewport can be used to access the active editor cameras "
+"with [method Viewport.get_camera_3d]."
+msgstr ""
+"返回指定的 3D 编辑器 [SubViewport],编号从 [code]0[/code] 到 [code]3[/code]。"
+"可以通过 [method Viewport.get_camera_3d] 访问视口中的活动编辑器相机。"
+
msgid ""
"Returns the editor's [FileSystemDock] instance.\n"
"[b]Warning:[/b] Removing and freeing this node will render a part of the "
@@ -37777,20 +38006,14 @@ msgstr ""
"重启编辑器。编辑器会关闭,然后再打开相同项目。如果 [param save] 为 "
"[code]true[/code],则重启前会保存项目。"
+msgid "Saves all opened scenes in the editor."
+msgstr "保存编辑器中打开的所有场景。"
+
msgid ""
"Selects the file, with the path provided by [param file], in the FileSystem "
"dock."
msgstr "在文件系统面板中选中文件,路径由 [param file] 提供。"
-msgid ""
-"Sets the editor's current main screen to the one specified in [param name]. "
-"[param name] must match the text of the tab in question exactly ([code]2D[/"
-"code], [code]3D[/code], [code]Script[/code], [code]AssetLib[/code])."
-msgstr ""
-"将编辑器的当前主屏幕设置为 [param name] 中指定的屏幕。[param name] 必须与相关"
-"选项卡的文本完全匹配([code]2D[/code]、[code]3D[/code]、[code]Script[/code]、"
-"[code]AssetLib[/code])。"
-
msgid ""
"Sets the enabled status of a plugin. The plugin name is the same as its "
"directory name."
@@ -37813,19 +38036,6 @@ msgstr ""
"如果为 [code]true[/code],则编辑器启用了 Movie Maker 模式。详见 "
"[MovieWriter]。"
-msgid "Gizmo for editing Node3D objects."
-msgstr "用于编辑 Node3D 对象的小工具。"
-
-msgid ""
-"Gizmo that is used for providing custom visualization and editing (handles "
-"and subgizmos) for Node3D objects. Can be overridden to create custom gizmos, "
-"but for simple gizmos creating a [EditorNode3DGizmoPlugin] is usually "
-"recommended."
-msgstr ""
-"小工具可用于为 Node3D 对象提供自定义可视化和编辑功能(控柄和子小工具)。可以被"
-"重写以创建自定义小工具,但对于简单的小工具而言,通常建议创建 "
-"[EditorNode3DGizmoPlugin]。"
-
msgid ""
"Override this method to commit a handle being edited (handles must have been "
"previously added by [method add_handles]). This usually means creating an "
@@ -37924,32 +38134,6 @@ msgstr ""
"当编辑的控柄是次要控柄时,[param secondary] 参数为 [code]true[/code](有关更多"
"信息,请参阅 [method add_handles])。"
-msgid ""
-"Override this method to update the node properties during subgizmo editing "
-"(see [method _subgizmos_intersect_ray] and [method "
-"_subgizmos_intersect_frustum]). The [param transform] is given in the "
-"Node3D's local coordinate system."
-msgstr ""
-"覆盖该方法,以在子小工具编辑期间更新节点属性(参见 [method "
-"_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。[param "
-"transform] 是在 Node3D 的局部坐标系中给出的。"
-
-msgid ""
-"Override this method to allow selecting subgizmos using mouse drag box "
-"selection. Given a [param camera] and a [param frustum], this method should "
-"return which subgizmos are contained within the frustum. The [param frustum] "
-"argument consists of an [code]Array[/code] with all the [code]Plane[/code]s "
-"that make up the selection frustum. The returned value should contain a list "
-"of unique subgizmo identifiers, which can have any non-negative value and "
-"will be used in other virtual methods like [method _get_subgizmo_transform] "
-"or [method _commit_subgizmos]."
-msgstr ""
-"覆盖该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和一"
-"个 [param frustum],这个方法应该返回哪些子小工具包含在锥体中。[param frustum] "
-"参数由一个构成选择锥体的所有 [code]Plane[/code] 的 [code]Array[/code] 组成。返"
-"回的值应该包含一个唯一的子小工具标识符列表,它可以有任何非负值,并将用于其他虚"
-"方法,如 [method _get_subgizmo_transform] 或 [method _commit_subgizmos]。"
-
msgid ""
"Override this method to allow selecting subgizmos using mouse clicks. Given a "
"[param camera] and a [param point] in screen coordinates, this method should "
@@ -37977,29 +38161,6 @@ msgstr ""
"将碰撞三角形添加到小工具以进行拾取。[TriangleMesh] 也可以从常规 [Mesh] 生成。"
"在 [method _redraw] 期间调用该方法。"
-msgid ""
-"Adds a list of handles (points) which can be used to edit the properties of "
-"the gizmo's Node3D. The [param ids] argument can be used to specify a custom "
-"identifier for each handle, if an empty [code]Array[/code] is passed, the ids "
-"will be assigned automatically from the [param handles] argument order.\n"
-"The [param secondary] argument marks the added handles as secondary, meaning "
-"they will normally have lower selection priority than regular handles. When "
-"the user is holding the shift key secondary handles will switch to have "
-"higher priority than regular handles. This change in priority can be used to "
-"place multiple handles at the same point while still giving the user control "
-"on their selection.\n"
-"There are virtual methods which will be called upon editing of these handles. "
-"Call this method during [method _redraw]."
-msgstr ""
-"添加可用于编辑该小工具的 Node3D 属性的一组控柄(点)。[param ids] 参数可用于为"
-"每个控柄指定一个自定义的标识符,如果传递了一个空的 [code]Array[/code],id 将按"
-"照 [param handles] 参数顺序自动分配。\n"
-"[param secondary] 参数将添加的控柄标记为次要控柄,这意味着它们通常比普通控柄具"
-"有更低的选择优先级。当用户按住 Shift 键时,次要控柄将被切换为比普通控柄具有更"
-"高的优先级。这种优先级的变化可用于在同一点放置多个控柄,同时仍让用户控制他们的"
-"选择。\n"
-"这些虚方法将在编辑这些控柄时被调用。在 [method _redraw] 期间将调用该方法。"
-
msgid ""
"Adds lines to the gizmo (as sets of 2 points), with a given material. The "
"lines are used for visualizing the gizmo. Call this method during [method "
@@ -38252,24 +38413,6 @@ msgstr ""
"_subgizmos_intersect_ray] 和 [method _subgizmos_intersect_frustum])。[param "
"transform] 在 Node3D 的局部坐标系中给出。为该插件的活动小工具而调用。"
-msgid ""
-"Override this method to allow selecting subgizmos using mouse drag box "
-"selection. Given a [param camera] and [param frustum_planes], this method "
-"should return which subgizmos are contained within the frustums. The [param "
-"frustum_planes] argument consists of an [code]Array[/code] with all the "
-"[code]Plane[/code]s that make up the selection frustum. The returned value "
-"should contain a list of unique subgizmo identifiers, these identifiers can "
-"have any non-negative value and will be used in other virtual methods like "
-"[method _get_subgizmo_transform] or [method _commit_subgizmos]. Called for "
-"this plugin's active gizmos."
-msgstr ""
-"覆盖该方法,以允许使用鼠标拖动框选来选择子小工具。给定一个 [param camera] 和 "
-"[param frustum_planes],该方法应返回哪些子小工具包含在视锥体中。[param "
-"frustum_planes] 参数由一个构成选择视锥体的所有 [code]Plane[/code] 的"
-"[code]Array[/code] 组成。返回的值应该包含一个唯一的子小工具标识符列表,这些标"
-"识符可以有任何非负值,并将用于其他虚方法,如 [method _get_subgizmo_transform] "
-"或 [method _commit_subgizmos]。为该插件的活动小工具而调用。"
-
msgid ""
"Override this method to allow selecting subgizmos using mouse clicks. Given a "
"[param camera] and a [param screen_pos] in screen coordinates, this method "
@@ -39201,14 +39344,6 @@ msgstr ""
"在[b]项目 > 工具[/b]中添加名为 [param name] 的自定义菜单项。点击时会调用所提供"
"的 [param callable]。"
-msgid ""
-"Adds a custom [PopupMenu] submenu under [b]Project > Tools >[/b] [param "
-"name]. Use [code]remove_tool_menu_item(name)[/code] on plugin clean up to "
-"remove the menu."
-msgstr ""
-"在[b]项目 > 工具[/b]中添加名为 [param name] 的自定义 [PopupMenu] 子菜单。请在"
-"清理插件时调用 [code]remove_tool_menu_item(name)[/code] 移除该菜单。"
-
msgid ""
"Registers a custom translation parser plugin for extracting translatable "
"strings from custom files."
@@ -39437,9 +39572,17 @@ msgid ""
"dock)."
msgstr "左侧停靠槽的右下(默认布局中为“文件系统”面板)。"
+msgid ""
+"Dock slot, right side, upper-left (in default layout includes Inspector, "
+"Node, and History docks)."
+msgstr "右侧停靠槽的左上(默认布局中为“检查器”“节点”以及“历史”面板)。"
+
msgid "Dock slot, right side, bottom-left (empty in default layout)."
msgstr "右侧停靠槽的左下(默认布局中为空)。"
+msgid "Dock slot, right side, upper-right (empty in default layout)."
+msgstr "右侧停靠槽的右上(默认布局中为空)。"
+
msgid "Dock slot, right side, bottom-right (empty in default layout)."
msgstr "右侧停靠槽的右下(默认布局中为空)。"
@@ -39765,6 +39908,15 @@ msgstr ""
msgid "A node used to generate previews of resources or files."
msgstr "用于生成资源或文件的预览的节点。"
+msgid ""
+"This node is used to generate previews for resources or files.\n"
+"[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access "
+"the singleton using [method EditorInterface.get_resource_previewer]."
+msgstr ""
+"该节点用于生成文件资源的预览。\n"
+"[b]注意:[/b]不应该直接实例化这个类。请使用 [method EditorInterface."
+"get_resource_previewer] 访问单例。"
+
msgid "Create an own, custom preview generator."
msgstr "创建一个自定义的预览生成器。"
@@ -39837,6 +39989,43 @@ msgstr ""
"_generate] 或 [method _generate_from_path]。\n"
"默认情况下,它返回 [code]false[/code]。"
+msgid ""
+"Generate a preview from a given resource with the specified size. This must "
+"always be implemented.\n"
+"Returning an empty texture is an OK way to fail and let another generator "
+"take care.\n"
+"Care must be taken because this function is always called from a thread (not "
+"the main thread).\n"
+"[param metadata] dictionary can be modified to store file-specific metadata "
+"that can be used in [method EditorResourceTooltipPlugin."
+"_make_tooltip_for_path] (like image size, sample length etc.)."
+msgstr ""
+"根据给定的资源生成指定大小的预览。必须始终实现。\n"
+"失败时允许返回空纹理,会由其他生成器接手。\n"
+"必须保持谨慎,因为这个函数始终是从(主线程以外的)线程中调用的。\n"
+"可以修改 [param metadata] 字典,从而保存能够在 [method "
+"EditorResourceTooltipPlugin._make_tooltip_for_path] 中使用的文件相关的源数据"
+"(例如图片大小、采样长度等)。"
+
+msgid ""
+"Generate a preview directly from a path with the specified size. Implementing "
+"this is optional, as default code will load and call [method _generate].\n"
+"Returning an empty texture is an OK way to fail and let another generator "
+"take care.\n"
+"Care must be taken because this function is always called from a thread (not "
+"the main thread).\n"
+"[param metadata] dictionary can be modified to store file-specific metadata "
+"that can be used in [method EditorResourceTooltipPlugin."
+"_make_tooltip_for_path] (like image size, sample length etc.)."
+msgstr ""
+"根据路径直接生成指定大小的预览。可选实现,默认代码会在加载后调用 [method "
+"_generate]。\n"
+"失败时允许返回空纹理,会由其他生成器接手。\n"
+"必须保持谨慎,因为这个函数始终是从(主线程以外的)线程中调用的。\n"
+"可以修改 [param metadata] 字典,从而保存能够在 [method "
+"EditorResourceTooltipPlugin._make_tooltip_for_path] 中使用的文件相关的源数据"
+"(例如图片大小、采样长度等)。"
+
msgid ""
"If this function returns [code]true[/code], the generator will automatically "
"generate the small previews from the normal preview texture generated by the "
@@ -40054,9 +40243,6 @@ msgstr ""
"[/csharp]\n"
"[/codeblocks]"
-msgid "Importing 3D scenes: Custom script"
-msgstr "导入 3D 场景:自定义脚本"
-
msgid ""
"Called after the scene was imported. This method must return the modified "
"version of the scene."
@@ -40758,6 +40944,23 @@ msgstr ""
"在 3D 编辑器中使用的栅格划分偏差。负值会使小的栅格划分出现得更早,而正值会使小"
"的栅格划分出现得更晚。"
+msgid ""
+"The largest grid division to use in the 3D editor. Together with [member "
+"editors/3d/primary_grid_steps], this determines how large the grid divisions "
+"can be. The grid divisions will not be able to get larger than "
+"[code]primary_grid_steps ^ grid_division_level_max[/code] units. By default, "
+"when [member editors/3d/primary_grid_steps] is [code]8[/code], this means "
+"grid divisions cannot get larger than [code]64[/code] units each (so primary "
+"grid lines are [code]512[/code] units apart), no matter how far away the "
+"camera is from the grid."
+msgstr ""
+"在 3D 编辑器中使用的最大栅格划分。这个属性与 [member editors/3d/"
+"primary_grid_steps] 一同决定栅格划分的大小。栅格不能大于 "
+"[code]primary_grid_steps ^ grid_division_level_max[/code] 个单位。默认情况下 "
+"[member editors/3d/primary_grid_steps] 为 [code]8[/code],这意味着无论相机离栅"
+"格有多远,每个栅格划分都不能大于 [code]64[/code] 个单位(因此主栅格线之间相距 "
+"[code]512[/code] 个单位)。"
+
msgid ""
"The smallest grid division to use in the 3D editor. Together with [member "
"editors/3d/primary_grid_steps], this determines how small the grid divisions "
@@ -41240,6 +41443,29 @@ msgstr ""
"编辑器的文件对话框中使用的缩略图大小(单位为像素)。另请参阅 [member docks/"
"filesystem/thumbnail_size]。"
+msgid ""
+"The path to the directory containing the Blender executable used for "
+"converting the Blender 3D scene files [code].blend[/code] to glTF 2.0 format "
+"during import. Blender 3.0 or later is required.\n"
+"To enable this feature for your specific project, use [member ProjectSettings."
+"filesystem/import/blender/enabled]."
+msgstr ""
+"包含 Blender 可执行文件的目录,导入时会使用 Blender 将 Blender 3D 场景文件 "
+"[code].blend[/code] 转换为 glTF 2.0 格式。需要 Blender 3.0 及更高版本。\n"
+"要为指定项目启用这个功能,请使用 [member ProjectSettings.filesystem/import/"
+"blender/enabled]。"
+
+msgid ""
+"The path to the FBX2glTF executable used for converting Autodesk FBX 3D scene "
+"files [code].fbx[/code] to glTF 2.0 format during import.\n"
+"To enable this feature for your specific project, use [member ProjectSettings."
+"filesystem/import/fbx/enabled]."
+msgstr ""
+"包含 FBX2glTF 可执行文件的目录,导入时会使用 FBX2glTF 将 Autodesk FBX 3D 场景"
+"文件 [code].fbx[/code] 转换为 glTF 2.0 格式。\n"
+"要为指定项目启用这个功能,请使用 [member ProjectSettings.filesystem/import/"
+"fbx/enabled]。"
+
msgid "If [code]true[/code], uses lossless compression for binary resources."
msgstr "如果为 [code]true[/code],则对二进制资源使用无损压缩。"
@@ -42506,20 +42732,9 @@ msgstr ""
msgid "Godot editor's control for editing numeric values."
msgstr "Godot 编辑器用于编辑数值的控件。"
-msgid ""
-"This [Control] node is used in the editor's Inspector dock to allow editing "
-"of numeric values. Can be used with [EditorInspectorPlugin] to recreate the "
-"same behavior."
-msgstr ""
-"这个 [Control] 节点在编辑器的检查器面板中使用,允许编辑数值。可以与 "
-"[EditorInspectorPlugin] 一起使用,以重新创建相同的行为。"
-
msgid "If [code]true[/code], the slider will not draw background."
msgstr "如果为 [code]true[/code],则滑块不会绘制背景。"
-msgid "If [code]true[/code], the slider is hidden."
-msgstr "如果为 [code]true[/code],则隐藏滑块。"
-
msgid "The text that displays to the left of the value."
msgstr "在值的左侧显示的文本。"
@@ -42549,6 +42764,18 @@ msgstr "值表单丢失焦点时发出。"
msgid "Base class for [SyntaxHighlighter] used by the [ScriptEditor]."
msgstr "[ScriptEditor] 所使用的 [SyntaxHighlighter] 的基类。"
+msgid ""
+"Base class that all [SyntaxHighlighter]s used by the [ScriptEditor] extend "
+"from.\n"
+"Add a syntax highlighter to an individual script by calling [method "
+"ScriptEditorBase.add_syntax_highlighter]. To apply to all scripts on open, "
+"call [method ScriptEditor.register_syntax_highlighter]."
+msgstr ""
+"扩展了 [ScriptEditor] 的编辑器所使用的所有 [SyntaxHighlighter] 的基类。\n"
+"请通过调用 [method ScriptEditorBase.add_syntax_highlighter] 为各个脚本添加语法"
+"高亮器。要在打开时应用于所有脚本,请调用 [method ScriptEditor."
+"register_syntax_highlighter]。"
+
msgid ""
"Virtual method which can be overridden to return the syntax highlighter name."
msgstr "虚函数,可以在重写后返回语法高亮器的名称。"
@@ -43023,6 +43250,9 @@ msgstr ""
"亲自执行操作,而是会去调用 VCS 插件中内部覆盖的函数,以提供即插即用的体验。自"
"定义 VCS 插件应当继承 [EditorVCSInterface] 并覆盖这些虚函数。"
+msgid "Version control systems"
+msgstr "版本控制系统"
+
msgid "Checks out a [param branch_name] in the VCS."
msgstr "检出 VCS 中的 [param branch_name] 分支。"
@@ -43508,14 +43738,6 @@ msgstr ""
"成时,生成该事件。该数组将包含断开连接的对等体。数据字段包含用户提供的描述断开"
"连接的数据,如果没有可用的数据,则为 0。"
-msgid ""
-"A packet has been received from a peer. The array will contain the peer which "
-"sent the packet, the channel number upon which the packet was received, and "
-"the received packet."
-msgstr ""
-"已从对等体接收到一个数据包。该数组将包含发送数据包的对等体、接收数据包的通道"
-"号、以及接收到的数据包。"
-
msgid "Total data sent."
msgstr "发送数据的总数。"
@@ -44686,6 +44908,9 @@ msgstr ""
msgid "Environment and post-processing"
msgstr "环境和后期处理"
+msgid "High dynamic range lighting"
+msgstr "高动态范围照明"
+
msgid "3D Material Testers Demo"
msgstr "3D 材质测试演示"
@@ -44702,30 +44927,6 @@ msgstr ""
"都依赖于前一个级别。这意味着启用较高的辉光等级会减慢辉光效果的渲染速度,即使之"
"前的等级没有启用。"
-msgid ""
-"The global brightness value of the rendered scene. Effective only if "
-"[code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"渲染场景的全局亮度值。只有当 [code]adjust_enabled[/code] 为 [code]true[/code] "
-"时才有效。"
-
-msgid ""
-"The [Texture2D] or [Texture3D] lookup table (LUT) to use for the built-in "
-"post-process color grading. Can use a [GradientTexture1D] for a 1-dimensional "
-"LUT, or a [Texture3D] for a more complex LUT. Effective only if "
-"[code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"用于内置后处理颜色分级的 [Texture2D] 或 [Texture3D] 查找表(LUT)。可以将 "
-"[GradientTexture1D] 用于一维 LUT,或将 [Texture3D] 用于更复杂的 LUT。仅当 "
-"[code]adjustment_enabled[/code] 为 [code]true[/code] 时有效。"
-
-msgid ""
-"The global contrast value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"渲染场景的全局对比度值(默认值为1)。只有当[code]adjust_enabled[/code]为 "
-"[code]true[/code] 时才有效。"
-
msgid ""
"If [code]true[/code], enables the [code]adjustment_*[/code] properties "
"provided by this resource. If [code]false[/code], modifications to the "
@@ -44739,13 +44940,6 @@ msgstr ""
"染场景产生影响。\n"
"[b]注意:[/b]调整仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。"
-msgid ""
-"The global color saturation value of the rendered scene (default value is 1). "
-"Effective only if [code]adjustment_enabled[/code] is [code]true[/code]."
-msgstr ""
-"渲染场景的全局色彩饱和度值(默认值为 1)。只有在 [code]adjustment_enabled[/"
-"code] 为 [code]true[/code] 时才有效。"
-
msgid ""
"The ambient light's [Color]. Only effective if [member "
"ambient_light_sky_contribution] is lower than [code]1.0[/code] (exclusive)."
@@ -46340,19 +46534,6 @@ msgstr ""
"返回试图执行操作时发生的最后一个错误。请与 [enum Error] 中的 "
"[code]ERR_FILE_*[/code] 常量比较。"
-msgid ""
-"Returns the whole [param path] file contents as a [PackedByteArray] without "
-"any decoding."
-msgstr ""
-"将 [param path] 文件中的所有内容作为 [PackedByteArray] 返回,不进行任何解码。"
-
-msgid ""
-"Returns the whole [param path] file contents as a [String]. Text is "
-"interpreted as being UTF-8 encoded."
-msgstr ""
-"将 [param path] 文件中的所有内容作为 [String] 返回。作为 UTF-8 编码的文本解"
-"析。"
-
msgid "Returns the next 32 bits from the file as a floating-point number."
msgstr "将文件中接下来的 32 位作为浮点数返回。"
@@ -46742,6 +46923,42 @@ msgstr ""
"使用 [url=https://github.com/google/brotli]brotli[/url] 压缩方法(仅支持解压"
"缩)。"
+msgid "Read for owner bit."
+msgstr "读取所有者比特位。"
+
+msgid "Write for owner bit."
+msgstr "写入所有者比特位。"
+
+msgid "Execute for owner bit."
+msgstr "执行所有者比特位。"
+
+msgid "Read for group bit."
+msgstr "读取组比特位。"
+
+msgid "Write for group bit."
+msgstr "写入组比特位。"
+
+msgid "Execute for group bit."
+msgstr "执行组比特位。"
+
+msgid "Read for other bit."
+msgstr "读取其他比特位。"
+
+msgid "Write for other bit."
+msgstr "写入其他比特位。"
+
+msgid "Execute for other bit."
+msgstr "执行其他比特位。"
+
+msgid "Set user id on execution bit."
+msgstr "在执行比特位上设置用户 ID 。"
+
+msgid "Set group id on execution bit."
+msgstr "在执行位上设置组 ID。"
+
+msgid "Restricted deletion (sticky) bit."
+msgstr "限制删除(粘性)比特位。"
+
msgid "A dialog for selecting files or directories in the filesystem."
msgstr "用于选择文件系统中的文件或目录的对话框。"
@@ -46970,34 +47187,6 @@ msgstr "外部资源 [param resource] 的对应文件被移除时发出。"
msgid "A built-in type for floating point numbers."
msgstr "浮点数内置类型。"
-msgid ""
-"The [float] built-in type is a 64-bit double-precision floating-point number, "
-"equivalent to [code]double[/code] in C++. This type has 14 reliable decimal "
-"digits of precision. The maximum value of [float] is approximately "
-"[code]1.79769e308[/code], and the minimum is approximately "
-"[code]-1.79769e308[/code].\n"
-"Many methods and properties in the engine use 32-bit single-precision "
-"floating-point numbers instead, equivalent to [code]float[/code] in C++, "
-"which have 6 reliable decimal digits of precision. For data structures such "
-"as [Vector2] and [Vector3], Godot uses 32-bit floating-point numbers by "
-"default, but it can be changed to use 64-bit doubles if Godot is compiled "
-"with the [code]precision=double[/code] option.\n"
-"Math done using the [float] type is not guaranteed to be exact and will often "
-"result in small errors. You should usually use the [method @GlobalScope."
-"is_equal_approx] and [method @GlobalScope.is_zero_approx] methods instead of "
-"[code]==[/code] to compare [float] values for equality."
-msgstr ""
-"[float] 内置类型是 64 位双精度浮点数,相当于 C++ 中的 [code]double[/code]。这"
-"个类型有 14 个可靠的十进制小数位精度。[float] 的最大值约为 [code]1.79769e308[/"
-"code],最小值约为 [code]-1.79769e308[/code]。\n"
-"不过引擎中的许多方法和属性默认使用的都是 32 位单精度浮点数,相当于 C++ 中的 "
-"[code]float[/code],有 6 位可靠的十进制小数位精度。Godot 在 [Vector2] 和 "
-"[Vector3] 等数据结构中默认使用 32 位浮点数,但如果 Godot 编译时使用了 "
-"[code]precision=double[/code] 选项,就会改为 64 位的 double。\n"
-"使用 [float] 类型进行的数学运算无法保证精确与稳定,经常会产生较小的误差。你通"
-"常应该使用 [method @GlobalScope.is_equal_approx] 和 [method @GlobalScope."
-"is_zero_approx] 方法来比较 [float] 值是否相等,不应该用 [code]==[/code]。"
-
msgid "Wikipedia: Double-precision floating-point format"
msgstr "维基百科:双精度浮点数格式"
@@ -47357,6 +47546,9 @@ msgstr ""
"[FogVolume] 节点内),请将 [member Environment.volumetric_fog_density] 设置为 "
"[code]0.0[/code]。"
+msgid "Volumetric fog and fog volumes"
+msgstr "体积雾及规模"
+
msgid ""
"The [Material] used by the [FogVolume]. Can be either a built-in "
"[FogMaterial] or a custom [ShaderMaterial]."
@@ -47924,13 +48116,6 @@ msgstr "如果为 [param script] 启用了支持覆盖,则返回 [code]true[/c
msgid "Returns list of script support overrides."
msgstr "返回文字支持覆盖的列表。"
-msgid ""
-"Returns list of the font sizes in the cache. Each size is [code]Vector2i[/"
-"code] with font size and outline size."
-msgstr ""
-"返回缓存中字体大小的列表。每个大小都是由字体大小和轮廓大小组成的 "
-"[code]Vector2i[/code]。"
-
msgid "Returns number of textures used by font cache entry."
msgstr "返回字体缓存条目所使用的纹理数。"
@@ -48305,29 +48490,6 @@ msgstr ""
msgid "Active face index in the TrueType / OpenType collection file."
msgstr "在 TrueType / OpenType 集合文件中的活动字体索引。"
-msgid ""
-"Font OpenType variation coordinates. More info: [url=https://docs.microsoft."
-"com/en-us/typography/opentype/spec/dvaraxisreg]OpenType variation tags[/"
-"url].\n"
-"[b]Note:[/b] This [Dictionary] uses OpenType tags as keys. Variation axes can "
-"be identified both by tags([code]int[/code]) and names ([code]string[/code]). "
-"Some axes might be accessible by multiple names. For example, [code]wght[/"
-"code] refers to the same axis as [code]weight[/code]. Tags on the other hand "
-"are unique. To convert between names and tags, use [method TextServer."
-"name_to_tag] and [method TextServer.tag_to_name].\n"
-"[b]Note:[/b] To get available variation axes of a font, use [method Font."
-"get_supported_variation_list]."
-msgstr ""
-"字体 OpenType 变体坐标。详见:[url=https://docs.microsoft.com/en-us/"
-"typography/opentype/spec/dvaraxisreg]OpenType 变体标签[/url]。\n"
-"[b]注意:[/b]这个 [Dictionary] 使用 OpenType 标签作为键。变体轴既可以用标签来"
-"标识([code]int[/code]),也可以用名称来标识([code]string[/code])。有些轴可"
-"以通过多个名称来访问。例如,[code]wght[/code] 和 [code]weight[/code] 引用的是"
-"同一个轴。而标签则是唯一的。要在名称和标签之间转换,请使用 [method TextServer."
-"name_to_tag] 和 [method TextServer.tag_to_name]。\n"
-"[b]注意:[/b]要获取字体的可用变体轴,请使用 [method Font."
-"get_supported_variation_list]。"
-
msgid ""
"2D transform, applied to the font outlines, can be used for slanting, "
"flipping and rotating glyphs.\n"
@@ -49241,6 +49403,9 @@ msgid ""
msgstr ""
"基于几何图形的视觉实例的基础节点。分享一些共同的机制,如可见性和自定义材质。"
+msgid "Visibility ranges (HLOD)"
+msgstr "可见范围(HLOD)"
+
msgid "Get the value of a shader parameter as set on this instance."
msgstr "获取在该实例上设置的着色器参数值。"
@@ -49653,6 +49818,12 @@ msgstr ""
"Godot 使用的是直径的米数。映射到 GLTF 的 [code]ymag[/code] 属性。只在正交相机"
"中使用,即 [member perspective] 为 false 时。"
+msgid "glTF 'What the duck?' guide"
+msgstr "glTF '鸭子是什么?' 指南"
+
+msgid "Khronos glTF specification"
+msgstr "Khronos glTF 规范"
+
msgid ""
"Takes a [PackedByteArray] defining a GLTF and imports the data to the given "
"[GLTFState] object through the [param state] parameter.\n"
@@ -50240,6 +50411,9 @@ msgstr ""
"截。这样就能够在 GLTF 文件中存储自定义数据,也可以将自定义数据保存到 Godot 节"
"点或者从 Godot 节点读取。"
+msgid "GLTF asset header schema"
+msgstr "GLTF 资产头的模式"
+
msgid ""
"Appends an extension to the list of extensions used by this GLTF file during "
"serialization. If [param required] is true, the extension will also be added "
@@ -50569,6 +50743,9 @@ msgstr ""
"如果 .NET 运行时已初始化,则返回 [code]true[/code],否则返回 [code]false[/"
"code]。"
+msgid "A 2D particle emitter."
+msgstr "2D 粒子发射器。"
+
msgid "2D Particles Demo"
msgstr "2D 粒子演示"
@@ -50587,11 +50764,6 @@ msgstr ""
msgid "Restarts all the existing particles."
msgstr "重新启动所有现有的粒子。"
-msgid ""
-"Multiplier for particle's collision radius. [code]1.0[/code] corresponds to "
-"the size of the sprite."
-msgstr "粒子碰撞半径的乘数。 [code]1.0[/code]对应精灵的大小。"
-
msgid ""
"Enables particle interpolation, which makes the particle movement smoother "
"when their [member fixed_fps] is lower than the screen refresh rate."
@@ -50617,9 +50789,6 @@ msgstr ""
"用于处理粒子的 [Material] 。可以是 [ParticleProcessMaterial] 或 "
"[ShaderMaterial] 。"
-msgid "The [NodePath] to the [GPUParticles2D] used for sub-emissions."
-msgstr "到用于子发射的 [GPUParticles2D] 的 [NodePath]。"
-
msgid ""
"If [code]true[/code], enables particle trails using a mesh skinning system.\n"
"[b]Note:[/b] Unlike [GPUParticles3D], the number of trail sections and "
@@ -50685,20 +50854,8 @@ msgstr "粒子以指定的颜色开始。"
msgid "Particle starts with specified [code]CUSTOM[/code] data."
msgstr "粒子以指定的 [code]CUSTOM[/code] 数据开始。"
-msgid ""
-"3D particle node used to create a variety of particle systems and effects. "
-"[GPUParticles3D] features an emitter that generates some number of particles "
-"at a given rate.\n"
-"Use the [code]process_material[/code] property to add a "
-"[ParticleProcessMaterial] to configure particle appearance and behavior. "
-"Alternatively, you can add a [ShaderMaterial] which will be applied to all "
-"particles."
-msgstr ""
-"3D粒子节点,用于创建各种粒子系统和效果。[GPUParticles3D]的特点是,发射器以给定"
-"的速度产生一定数量的粒子。\n"
-"使用[code]process_material[/code] 属性来添加一个配置粒子外观和行为的"
-"[ParticleProcessMaterial]。或者,你可以添加一个应用于所有粒子的"
-"[ShaderMaterial]。"
+msgid "A 3D particle emitter."
+msgstr "3D 粒子发射器。"
msgid "Controlling thousands of fish with Particles"
msgstr "用粒子控制数千条鱼"
@@ -50717,9 +50874,6 @@ msgstr "重新发射粒子,清除现有的粒子。"
msgid "Sets the [Mesh] that is drawn at index [param pass]."
msgstr "设置在索引 [param pass] 处绘制的 [Mesh] 。"
-msgid "Number of particles to emit."
-msgstr "要发射的粒子数。"
-
msgid "[Mesh] that is drawn for the first draw pass."
msgstr "第一绘制阶段所绘制的 [Mesh]。"
@@ -50755,10 +50909,6 @@ msgstr ""
"[code]false[/code],则粒子使用全局坐标;当移动或旋转时,它们不会沿着 "
"[GPUParticles3D] 节点(及其父节点)移动或旋转。"
-msgid ""
-"If [code]true[/code], only [code]amount[/code] particles will be emitted."
-msgstr "如果为 [code]true[/code],将只发出 [code]amount[/code] 数量的粒子。"
-
msgid ""
"Amount of time to preprocess the particles before animation starts. Lets you "
"start the animation some time after particles have started emitting."
@@ -50791,17 +50941,6 @@ msgstr ""
"[b]注意:[/b]与 [GPUParticles2D] 不同,尾迹部分及其细分的数量是在 "
"[RibbonTrailMesh] 或 [TubeTrailMesh] 的属性中设置的。"
-msgid ""
-"The [AABB] that determines the node's region which needs to be visible on "
-"screen for the particle system to be active.\n"
-"Grow the box if particles suddenly appear/disappear when the node enters/"
-"exits the screen. The [AABB] can be grown via code or with the [b]Particles → "
-"Generate AABB[/b] editor tool."
-msgstr ""
-"[AABB] 确定节点的区域,该区域需要在屏幕上可见,才能使粒子系统处于活动状态。\n"
-"如果在节点进入/退出屏幕时,粒子突然出现/消失,则应该增大矩形。[AABB] 可以通过"
-"代码,或使用 [b]粒子 → 生成 AABB[/b] 编辑器工具生成。"
-
msgid "Maximum number of draw passes supported."
msgstr "支持的最大绘制阶段数。"
@@ -51097,6 +51236,9 @@ msgstr "烘焙 512×512×512 的有符号距离场。这是最慢的选项,但
msgid "The collision sphere's radius in 3D units."
msgstr "碰撞球的半径,以 3D 单位表示。"
+msgid "A color transition."
+msgstr "颜色过渡。"
+
msgid "Returns the color of the gradient color at index [param point]."
msgstr "返回渐变色在索引 [param point] 处的颜色。"
@@ -51106,6 +51248,9 @@ msgstr "返回渐变色在索引 [param point] 处的偏移。"
msgid "Returns the number of colors in the gradient."
msgstr "返回渐变中的颜色数。"
+msgid "Removes the color at index [param point]."
+msgstr "移除索引 [param point] 处的颜色。"
+
msgid ""
"Reverses/mirrors the gradient.\n"
"[b]Note:[/b] This method mirrors all points around the middle of the "
@@ -51469,14 +51614,6 @@ msgstr ""
"点的连接。使用该方法来禁用以前使用 [method add_valid_right_disconnect_type] 允"
"许的断开连接。"
-msgid ""
-"Sets the coloration of the connection between [param from_node]'s [param "
-"from_port] and [param to_node]'s [param to_port] with the color provided in "
-"the [theme_item activity] theme property."
-msgstr ""
-"使用 [theme_item activity] 主题属性中提供的颜色,设置 [param from_node] 的 "
-"[param from_port] 和 [param to_node] 的 [param to_port] 之间的连接的颜色。"
-
msgid "Sets the specified [param node] as the one selected."
msgstr "将指定的 [param node] 节点设置为选中的节点。"
@@ -51513,6 +51650,12 @@ msgstr ""
msgid "The scroll offset."
msgstr "滚动偏移量。"
+msgid "If [code]true[/code], the grid is visible."
+msgstr "如果为 [code]true[/code],则该网格可见。"
+
+msgid "If [code]true[/code], the menu toolbar is visible."
+msgstr "如果为 [code]true[/code],则菜单栏可见。"
+
msgid "If [code]true[/code], enables snapping."
msgstr "如果为 [code]true[/code],启用自动吸附。"
@@ -51619,6 +51762,15 @@ msgstr "能够抓取端口的(内侧)横向范围。"
msgid "The horizontal range within which a port can be grabbed (outer side)."
msgstr "能够抓取端口的(外侧)横向范围。"
+msgid "The icon for the grid toggle button."
+msgstr "网格开关按钮的图标。"
+
+msgid "The icon for the minimap toggle button."
+msgstr "小地图开关按钮的图标。"
+
+msgid "The icon for the snapping toggle button."
+msgstr "吸附开关按钮的图标。"
+
msgid "The icon for the zoom in button."
msgstr "放大按钮的图标。"
@@ -51631,9 +51783,250 @@ msgstr "缩放重置按钮的图标。"
msgid "The background drawn under the grid."
msgstr "绘制在栅格下方的背景。"
+msgid "If [code]true[/code], the user can drag the GraphElement."
+msgstr "如果为 [code]true[/code],则用户能够拖动该 GraphElement。"
+
+msgid ""
+"The offset of the GraphElement, relative to the scroll offset of the "
+"[GraphEdit]."
+msgstr "GraphElement 的偏移量,相对于 [GraphEdit] 的滚动偏移量。"
+
+msgid ""
+"If [code]true[/code], the user can resize the GraphElement.\n"
+"[b]Note:[/b] Dragging the handle will only emit the [signal resize_request] "
+"signal, the GraphElement needs to be resized manually."
+msgstr ""
+"如果为 [code]true[/code],则用户可以调整 GraphElement 的大小。\n"
+"[b]注意:[/b]拖动手柄只会发出 [signal resize_request] 信号,GraphElement 需要"
+"手动调整大小。"
+
+msgid "If [code]true[/code], the user can select the GraphElement."
+msgstr "如果为 [code]true[/code],则用户能够选中该 GraphElement。"
+
+msgid "If [code]true[/code], the GraphElement is selected."
+msgstr "如果为 [code]true[/code],则选中该 GraphElement 。"
+
+msgid "Emitted when removing the GraphElement is requested."
+msgstr "请求删除 GraphElement 时发出。"
+
+msgid "Emitted when the GraphElement is dragged."
+msgstr "当 GraphElement 被拖动时发出。"
+
+msgid "Emitted when the GraphElement is deselected."
+msgstr "当 GraphElement 被取消选择时发出。"
+
+msgid "Emitted when the GraphElement is selected."
+msgstr "当 GraphElement 被选中时发出。"
+
+msgid "Emitted when the GraphElement is moved."
+msgstr "当 GraphElement 被移动时触发。"
+
+msgid ""
+"Emitted when displaying the GraphElement over other ones is requested. "
+"Happens on focusing (clicking into) the GraphElement."
+msgstr ""
+"当 GraphElement 被要求显示在其他节点之上时触发。在 GraphElement 获得焦点(鼠标"
+"点击进入)时触发。"
+
+msgid ""
+"Emitted when resizing the GraphElement is requested. Happens on dragging the "
+"resizer handle (see [member resizable])."
+msgstr ""
+"当 GraphElement 被要求调整大小时发出。在拖动调整器手柄时发生(见 [member "
+"resizable])。"
+
msgid "A container with connection ports, representing a node in a [GraphEdit]."
msgstr "带有连接端口的容器,代表 [GraphEdit] 中的一个节点。"
+msgid ""
+"[GraphNode] allows to create nodes for a [GraphEdit] graph with customizable "
+"content based on its child controls. [GraphNode] is derived from [Container] "
+"and it is responsible for placing its children on screen. This works similar "
+"to [VBoxContainer]. Children, in turn, provide [GraphNode] with so-called "
+"slots, each of which can have a connection port on either side.\n"
+"Each [GraphNode] slot is defined by its index and can provide the node with "
+"up to two ports: one on the left, and one on the right. By convention the "
+"left port is also referred to as the [b]input port[/b] and the right port is "
+"referred to as the [b]output port[/b]. Each port can be enabled and "
+"configured individually, using different type and color. The type is an "
+"arbitrary value that you can define using your own considerations. The parent "
+"[GraphEdit] will receive this information on each connect and disconnect "
+"request.\n"
+"Slots can be configured in the Inspector dock once you add at least one child "
+"[Control]. The properties are grouped by each slot's index in the \"Slot\" "
+"section.\n"
+"[b]Note:[/b] While GraphNode is set up using slots and slot indices, "
+"connections are made between the ports which are enabled. Because of that "
+"[GraphEdit] uses the port's index and not the slot's index. You can use "
+"[method get_input_port_slot] and [method get_output_port_slot] to get the "
+"slot index from the port index."
+msgstr ""
+"[GraphNode] 能够在 [GraphEdit] 图中创建节点,节点会根据其子控件定制内容。"
+"[GraphNode] 派生自 [Container],负责将其子节点放置在屏幕上。工作原理类似于 "
+"[VBoxContainer]。而子节点为 [GraphNode] 提供所谓的插槽,每个插槽的两侧都可以有"
+"一个连接端口。\n"
+"[GraphNode] 的插槽由其索引定义,一个插槽可以为节点提供最多两个端口:一个在左"
+"侧,一个在右侧。根据惯例,左侧端口也被称为[b]输入端口[/b],右侧端口被称为[b]输"
+"出端口[/b]。每个端口都可以单独启用和配置,使用不同的类型和颜色。类型是你按照自"
+"己的需要来定义的任意值。父 [GraphEdit] 将在每个连接和断开连接请求中收到此信"
+"息。\n"
+"添加至少一个子 [Control] 后,就可以在“检查器”面板中配置插槽。这些属性"
+"在“Slot”部分中按每个插槽的索引进行分组。\n"
+"[b]注意:[/b]虽然 GraphNode 是使用插槽和插槽索引设置的,但连接是在启用的端口之"
+"间建立的。因此 [GraphEdit] 使用端口的索引,而不是插槽的索引。可以使用 [method "
+"get_input_port_slot] 和 [method get_output_port_slot] 从端口索引中获取插槽索"
+"引。"
+
+msgid ""
+"Disables all slots of the GraphNode. This will remove all input/output ports "
+"from the GraphNode."
+msgstr "禁用 GraphNode 的所有插槽。会移除该 GraphNode 的所有输入/输出端口。"
+
+msgid ""
+"Disables the slot with the given [param slot_index]. This will remove the "
+"corresponding input and output port from the GraphNode."
+msgstr ""
+"禁用索引为 [param slot_index] 的插槽。会移除该 GraphNode 的对应输入和输出端"
+"口。"
+
+msgid "Returns the [Color] of the input port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输入端口的 [Color]。"
+
+msgid "Returns the number of slots with an enabled input port."
+msgstr "返回启用了输入端口的插槽数。"
+
+msgid "Returns the position of the input port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输入端口的位置。"
+
+msgid ""
+"Returns the corresponding slot index of the input port with the given [param "
+"port_idx]."
+msgstr "返回索引为 [param port_idx] 的输入端口的对应插槽索引。"
+
+msgid "Returns the type of the input port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输入端口的类型。"
+
+msgid "Returns the [Color] of the output port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输出端口的 [Color]。"
+
+msgid "Returns the number of slots with an enabled output port."
+msgstr "返回启用了输出端口的插槽数。"
+
+msgid "Returns the position of the output port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输出端口的位置。"
+
+msgid ""
+"Returns the corresponding slot index of the output port with the given [param "
+"port_idx]."
+msgstr "返回索引为 [param port_idx] 的输出端口的对应插槽索引。"
+
+msgid "Returns the type of the output port with the given [param port_idx]."
+msgstr "返回索引为 [param port_idx] 的输出端口的类型。"
+
+msgid ""
+"Returns the left (input) [Color] of the slot with the given [param "
+"slot_index]."
+msgstr "返回索引为 [param slot_index] 的插槽左侧(输入)的 [Color]。"
+
+msgid ""
+"Returns the right (output) [Color] of the slot with the given [param "
+"slot_index]."
+msgstr "返回索引为 [param slot_index] 的插槽右侧(输出)的 [Color]。"
+
+msgid ""
+"Returns the left (input) type of the slot with the given [param slot_index]."
+msgstr "返回索引为 [param slot_index] 的插槽左侧(输入)的类型。"
+
+msgid ""
+"Returns the right (output) type of the slot with the given [param slot_index]."
+msgstr "返回索引为 [param slot_index] 的插槽右侧(输出)的类型。"
+
+msgid ""
+"Returns the [HBoxContainer] used for the title bar, only containing a [Label] "
+"for displaying the title by default. This can be used to add custom controls "
+"to the title bar such as option or close buttons."
+msgstr ""
+"返回标题栏所使用的 [HBoxContainer],默认只包含一个 [Label],用于显示标题。可用"
+"于向标题栏添加自定义控件,例如选项和关闭按钮等。"
+
+msgid ""
+"Returns true if the background [StyleBox] of the slot with the given [param "
+"slot_index] is drawn."
+msgstr ""
+"如果绘制索引为 [param slot_index] 的插槽的背景 [StyleBox],则返回 true。"
+
+msgid ""
+"Returns [code]true[/code] if left (input) side of the slot with the given "
+"[param slot_index] is enabled."
+msgstr ""
+"如果启用了索引为 [param slot_index] 的插槽的左侧(输入),则返回 [code]true[/"
+"code]。"
+
+msgid ""
+"Returns [code]true[/code] if right (output) side of the slot with the given "
+"[param slot_index] is enabled."
+msgstr ""
+"如果启用了索引为 [param slot_index] 的插槽的右侧(输出),则返回 [code]true[/"
+"code]。"
+
+msgid ""
+"Sets properties of the slot with the given [param slot_index].\n"
+"If [param enable_left_port]/[param enable_right_port] is [code]true[/code], a "
+"port will appear and the slot will be able to be connected from this side.\n"
+"With [param type_left]/[param type_right] an arbitrary type can be assigned "
+"to each port. Two ports can be connected if they share the same type, or if "
+"the connection between their types is allowed in the parent [GraphEdit] (see "
+"[method GraphEdit.add_valid_connection_type]). Keep in mind that the "
+"[GraphEdit] has the final say in accepting the connection. Type compatibility "
+"simply allows the [signal GraphEdit.connection_request] signal to be "
+"emitted.\n"
+"Ports can be further customized using [param color_left]/[param color_right] "
+"and [param custom_icon_left]/[param custom_icon_right]. The color parameter "
+"adds a tint to the icon. The custom icon can be used to override the default "
+"port dot.\n"
+"Additionally, [param draw_stylebox] can be used to enable or disable drawing "
+"of the background stylebox for each slot. See [theme_item slot].\n"
+"Individual properties can also be set using one of the [code]set_slot_*[/"
+"code] methods.\n"
+"[b]Note:[/b] This method only sets properties of the slot. To create the slot "
+"itself, add a [Control]-derived child to the GraphNode."
+msgstr ""
+"设置索引为 [param slot_index] 的插槽的属性。\n"
+"如果 [param enable_left_port]/[param enable_right_port] 为 [code]true[/code],"
+"则将出现一个端口,插槽将能够从这一侧连接。\n"
+"使用 [param type_left]/[param type_right] 可以为每个端口分配一个任意类型。如果"
+"两个端口具有相同的类型,或者如果它们的类型之间的连接在父 [GraphEdit] 中被允许"
+"(参见 [method GraphEdit.add_valid_connection_type]),那么这两个端口就可以被"
+"连接。请记住,[GraphEdit] 在接受连接上拥有最终决定权。类型兼容性只允许发出 "
+"[signal GraphEdit.connection_request] 信号。\n"
+"可以使用 [param color_left]/[param color_right] 和 [param custom_icon_left]/"
+"[param custom_icon_right] 进一步定制端口。颜色参数为图标添加了一个色调。自定义"
+"图标可以用来覆盖默认的端口点。\n"
+"此外,[param draw_stylebox] 可以用来启用或禁用每个插槽的背景样式框的绘制。参"
+"见 [theme_item slot]。\n"
+"单个属性也可以使用 [code]set_slot_*[/code] 方法之一来设置。\n"
+"[b]注意:[/b]该方法只设置插槽的属性。要创建插槽本身,请将 [Control] 派生的子节"
+"点添加到该 GraphNode。"
+
+msgid ""
+"Sets the [Color] of the left (input) side of the slot with the given [param "
+"slot_index] to [param color]."
+msgstr ""
+"将索引为 [param slot_index] 的插槽的左侧(输入)的 [Color] 设置为 [param "
+"color]。"
+
+msgid ""
+"Sets the [Color] of the right (output) side of the slot with the given [param "
+"slot_index] to [param color]."
+msgstr ""
+"将索引为 [param slot_index] 的插槽的右侧(输出)的 [Color] 设置为 [param "
+"color]。"
+
+msgid ""
+"Toggles the background [StyleBox] of the slot with the given [param "
+"slot_index]."
+msgstr "开关索引为 [param slot_index] 的插槽的背景 [StyleBox]。"
+
msgid "The text displayed in the GraphNode's title bar."
msgstr "显示在 GraphNode 标题栏中的文本。"
@@ -53707,30 +54100,6 @@ msgid ""
msgstr ""
"设置连接到 HTTPS 服务器时使用的 [TLSOptions]。见 [method TLSOptions.client]。"
-msgid ""
-"If [code]true[/code], this header will be added to each request: [code]Accept-"
-"Encoding: gzip, deflate[/code] telling servers that it's okay to compress "
-"response bodies.\n"
-"Any Response body declaring a [code]Content-Encoding[/code] of either "
-"[code]gzip[/code] or [code]deflate[/code] will then be automatically "
-"decompressed, and the uncompressed bytes will be delivered via "
-"[code]request_completed[/code].\n"
-"If the user has specified their own [code]Accept-Encoding[/code] header, then "
-"no header will be added regardless of [code]accept_gzip[/code].\n"
-"If [code]false[/code] no header will be added, and no decompression will be "
-"performed on response bodies. The raw bytes of the response body will be "
-"returned via [code]request_completed[/code]."
-msgstr ""
-"如果为 [code]true[/code],这个报头会被添加到每个请求中:[code]Accept-"
-"Encoding: gzip, deflate[/code] 告诉服务器可以压缩响应正文。\n"
-"任何声明 [code]gzip[/code] 或 [code]deflate[/code] 的 [code]Content-Encoding[/"
-"code] 的响应正文,将被自动解压缩,并且未压缩的字节将通过 "
-"[code]request_completed[/code] 被传递。\n"
-"如果用户指定了自己的 [code]Accept-Encoding[/code] 报头,那么无论 "
-"[code]accept_gzip[/code] 是什么,都不会添加任何报头。\n"
-"如果为 [code]false[/code],这将不会添加报头,并且不会对响应正文执行任何解压"
-"缩。响应正文的原始字节将通过 [code]request_completed[/code] 返回。"
-
msgid ""
"Maximum allowed size for response bodies. If the response body is compressed, "
"this will be used as the maximum allowed size for the decompressed body."
@@ -53824,25 +54193,6 @@ msgstr ""
msgid "Image datatype."
msgstr "图像数据类型。"
-msgid ""
-"Native image datatype. Contains image data which can be converted to an "
-"[ImageTexture] and provides commonly used [i]image processing[/i] methods. "
-"The maximum width and height for an [Image] are [constant MAX_WIDTH] and "
-"[constant MAX_HEIGHT].\n"
-"An [Image] cannot be assigned to a [code]texture[/code] property of an object "
-"directly (such as [Sprite2D]), and has to be converted manually to an "
-"[ImageTexture] first.\n"
-"[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics "
-"hardware limitations. Larger images may fail to import."
-msgstr ""
-"本机图像数据类型。包含可以被转换为 [ImageTexture] 的图像数据,并提供常用的[i]"
-"图像处理[/i]方法。[Image] 的最大宽度和高度为 [constant MAX_WIDTH] 和 "
-"[constant MAX_HEIGHT]。\n"
-"[Image] 不能被直接分配给对象(例如 [Sprite2D])的 [code]texture[/code] 属性,"
-"必须先手动转换为 [ImageTexture]。\n"
-"[b]注意:[/b]由于图形硬件限制,最大图像大小为 16384×16384 像素。较大的图像可能"
-"无法导入。"
-
msgid "Importing images"
msgstr "导入图像"
@@ -54018,6 +54368,25 @@ msgstr "水平翻转图像。"
msgid "Flips the image vertically."
msgstr "垂直翻转图像。"
+msgid ""
+"Generates mipmaps for the image. Mipmaps are precalculated lower-resolution "
+"copies of the image that are automatically used if the image needs to be "
+"scaled down when rendered. They help improve image quality and performance "
+"when rendering. This method returns an error if the image is compressed, in a "
+"custom format, or if the image's width/height is [code]0[/code]. Enabling "
+"[param renormalize] when generating mipmaps for normal textures will make "
+"sure all resulting vector values are normalized.\n"
+"It is possible to check if the image has mipmaps by calling [method "
+"has_mipmaps] or [method get_mipmap_count]."
+msgstr ""
+"为图像生成 Mipmap。Mipmap 是预先计算好的图像的低分辨率副本,如果图像在渲染时需"
+"要按比例缩小,则会自动使用这些副本。它们有助于在渲染时提高图像质量和性能。如果"
+"图像被压缩,或采用自定义格式,或图像的宽度或高度为 [code]0[/code],则该方法返"
+"回错误。在为法线纹理生成 mipmap 时启用 [param renormalize] 能够确保得到的所有"
+"向量值都是归一化的。\n"
+"调用 [method has_mipmaps] 或 [method get_mipmap_count] 能够检查图像是否使用 "
+"mipmap。"
+
msgid "Returns a copy of the image's raw data."
msgstr "返回图像原始数据的副本。"
@@ -54027,13 +54396,6 @@ msgstr "返回图像的格式。参阅 [enum Format] 常量。"
msgid "Returns the image's height."
msgstr "返回图像的高度。"
-msgid ""
-"Returns the offset where the image's mipmap with index [param mipmap] is "
-"stored in the [code]data[/code] dictionary."
-msgstr ""
-"返回存储在图像的 [code]data[/code] 字典中的索引为 [param mipmap] 的多级渐远纹"
-"理的偏移量。"
-
msgid ""
"Returns the color of the pixel at [code](x, y)[/code].\n"
"This is the same as [method get_pixelv], but with two integer arguments "
@@ -54638,12 +55000,30 @@ msgstr ""
"以压缩 RGBA 数据,使 Alpha 完全透明或完全不透明。\n"
"[b]注意:[/b]创建 [ImageTexture] 时,会执行 sRGB 到线性色彩空间的转换。"
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Adaptive_scalable_texture_compression]Adaptive Scalable Texture Compression[/"
+"url]. This implements the 4x4 (high quality) mode."
+msgstr ""
+"[url=https://zh.wikipedia.org/wiki/"
+"%E8%87%AA%E9%80%82%E5%BA%94%E5%8F%AF%E4%BC%B8%E7%BC%A9%E7%BA%B9%E7%90%86%E5%8E%8B%E7%BC%A9]"
+"自适应可伸缩纹理压缩[/url]。这实现了 4x4(高质量)模式。"
+
msgid ""
"Same format as [constant FORMAT_ASTC_4x4], but with the hint to let the GPU "
"know it is used for HDR."
msgstr ""
"与 [constant FORMAT_ASTC_4x4] 相同的格式,但有提示以让 GPU 知道它用于 HDR。"
+msgid ""
+"[url=https://en.wikipedia.org/wiki/"
+"Adaptive_scalable_texture_compression]Adaptive Scalable Texture Compression[/"
+"url]. This implements the 8x8 (low quality) mode."
+msgstr ""
+"[url=https://zh.wikipedia.org/wiki/"
+"%E8%87%AA%E9%80%82%E5%BA%94%E5%8F%AF%E4%BC%B8%E7%BC%A9%E7%BA%B9%E7%90%86%E5%8E%8B%E7%BC%A9]"
+"自适应可伸缩纹理压缩[/url]。这实现了 8x8(低质量)模式。"
+
msgid ""
"Same format as [constant FORMAT_ASTC_8x8], but with the hint to let the GPU "
"know it is used for HDR."
@@ -54975,59 +55355,9 @@ msgstr ""
"其他图像[i]必须[/i]具有相同的宽度、高度、图像格式和 mipmapping 设置。\n"
"每个 [Image] 代表一个 [code]layer[/code]。"
-msgid ""
-"Replaces the existing [Image] data at the given [param layer] with this new "
-"image.\n"
-"The given [Image] must have the same width, height, image format and "
-"mipmapping setting (a [code]bool[/code] value) as the rest of the referenced "
-"images.\n"
-"If the image format is unsupported, it will be decompressed and converted to "
-"a similar and supported [enum Image.Format].\n"
-"The update is immediate: it's synchronized with drawing."
-msgstr ""
-"用这个新图像替换给定 [param layer] 的现有 [Image] 数据。\n"
-"给定的 [Image] 必须与其他引用的图像具有相同的宽度、高度、图像格式和 "
-"mipmapping 设置([code]bool[/code] 值)。\n"
-"如果图像格式不受支持,它将被解压缩并转换为一个相似且受支持的 [enum Image."
-"Format]。\n"
-"更新是即时的:它与绘制同步。"
-
msgid "Mesh optimized for creating geometry manually."
msgstr "为手动创建几何体,而优化的网格。"
-msgid ""
-"A mesh type optimized for creating geometry manually, similar to OpenGL 1.x "
-"immediate mode.\n"
-"Here's a sample on how to generate a triangular face:\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var mesh = ImmediateMesh.new()\n"
-"mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES)\n"
-"mesh.surface_add_vertex(Vector3.LEFT)\n"
-"mesh.surface_add_vertex(Vector3.FORWARD)\n"
-"mesh.surface_add_vertex(Vector3.ZERO)\n"
-"mesh.surface_end()\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"[b]Note:[/b] Generating complex geometries with [ImmediateMesh] is highly "
-"inefficient. Instead, it is designed to generate simple geometry that changes "
-"often."
-msgstr ""
-"针对手动创建几何体优化的网格类型,与 OpenGL 1.x 的立即模式类似。\n"
-"以下是生成三角形面的示例:\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var mesh = ImmediateMesh.new()\n"
-"mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES)\n"
-"mesh.surface_add_vertex(Vector3.LEFT)\n"
-"mesh.surface_add_vertex(Vector3.FORWARD)\n"
-"mesh.surface_add_vertex(Vector3.ZERO)\n"
-"mesh.surface_end()\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"[b]注意:[/b]使用 [ImmediateMesh] 生成复杂的几何体极其低效。这种网格的设计目的"
-"是用来生成经常变化的简单几何体。"
-
msgid "Using ImmediateMesh"
msgstr "使用 ImmediateMesh"
@@ -55145,11 +55475,6 @@ msgstr ""
"如果还没有缓存并且提供了 [param base_mesh],则 [param base_mesh] 将被使用并被"
"改变。"
-msgid ""
-"Returns the arrays for the vertices, normals, uvs, etc. that make up the "
-"requested surface. See [method add_surface]."
-msgstr "返回构成请求表面的顶点、法线、UV 等的数组。参见 [method add_surface]。"
-
msgid ""
"Returns a single set of blend shape arrays for the requested blend shape "
"index for a surface."
@@ -55263,23 +55588,6 @@ msgstr ""
"[InputEventMouseButton] 事件的额外输入修饰键,以及 [InputEventJoypadMotion] 事"
"件的方向。"
-msgid ""
-"Returns a value between 0 and 1 representing the intensity of the given "
-"action. In a joypad, for example, the further away the axis (analog sticks or "
-"L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If "
-"the action is mapped to a control that has no axis as the keyboard, the value "
-"returned will be 0 or 1.\n"
-"If [param exact_match] is [code]false[/code], it ignores additional input "
-"modifiers for [InputEventKey] and [InputEventMouseButton] events, and the "
-"direction for [InputEventJoypadMotion] events."
-msgstr ""
-"返回一个介于 0 和 1 之间的值,表示给定动作的强度。例如,在游戏手柄中,轴(模拟"
-"摇杆或 L2、R2 触发器)离死区越远,该值将越接近 1。如果动作被映射到一个如键盘一"
-"样没有轴的控制器时,返回值将为 0 或 1。\n"
-"如果 [param exact_match] 为 [code]false[/code],它会忽略 [InputEventKey] 和 "
-"[InputEventMouseButton] 事件的额外输入修饰键,以及 [InputEventJoypadMotion] 事"
-"件的方向。"
-
msgid ""
"Get axis input by specifying two actions, one negative and one positive.\n"
"This is a shorthand for writing [code]Input."
@@ -55338,6 +55646,31 @@ msgstr ""
"Gamepad\"[/code]。Godot 会根据这个 GUI 使用 [url=https://github.com/gabomdq/"
"SDL_GameControllerDB]SDL2 游戏控制器数据库[/url]来确定游戏手柄的名称和映射。"
+msgid ""
+"Returns a dictionary with extra platform-specific information about the "
+"device, e.g. the raw gamepad name from the OS or the Steam Input index.\n"
+"On Windows the dictionary contains the following fields:\n"
+"[code]xinput_index[/code]: The index of the controller in the XInput system.\n"
+"On Linux:\n"
+"[code]raw_name[/code]: The name of the controller as it came from the OS, "
+"before getting renamed by the godot controller database.\n"
+"[code]vendor_id[/code]: The USB vendor ID of the device.\n"
+"[code]product_id[/code]: The USB product ID of the device.\n"
+"[code]steam_input_index[/code]: The Steam Input gamepad index, if the device "
+"is not a Steam Input device this key won't be present."
+msgstr ""
+"返回关于设备的额外平台相关信息字典,例如操作系统的原始游戏手柄名称,或者 "
+"Steam Input 索引。\n"
+"在 Windows 上,该字典包含如下字段:\n"
+"[code]xinput_index[/code]:控制器在 XInput 系统中的索引。\n"
+"在 Linux 上:\n"
+"[code]raw_name[/code]:从操作系统获取的控制器名称,未经 Godot 控制器数据库重命"
+"名。\n"
+"[code]vendor_id[/code]:设备的 USB 供应商 ID。\n"
+"[code]product_id[/code]:设备的 USB 产品 ID。\n"
+"[code]steam_input_index[/code]:Steam Input 游戏手柄索引,如果该设备不是 "
+"Steam Input 设备则该字段不存在。"
+
msgid ""
"Returns the name of the joypad at the specified device index, e.g. [code]PS4 "
"Controller[/code]. Godot uses the [url=https://github.com/gabomdq/"
@@ -56280,19 +56613,6 @@ msgstr ""
" +-----+ +-----+\n"
"[/codeblock]"
-msgid ""
-"Represents the physical location of a key on the 101/102-key US QWERTY "
-"keyboard, which corresponds to one of the [enum Key] constants.\n"
-"To get a human-readable representation of the [InputEventKey], use [code]OS."
-"get_keycode_string(event.keycode)[/code] where [code]event[/code] is the "
-"[InputEventKey]."
-msgstr ""
-"表示 101/102 键美式 QWERTY 键盘上某个键的物理位置,它对应于 [enum Key] 常量之"
-"一。\n"
-"要获得 [InputEventKey] 的人类可读表示,请使用 [code]OS."
-"get_keycode_string(event.keycode)[/code],其中 [code]event[/code] 是 "
-"[InputEventKey]。"
-
msgid ""
"If [code]true[/code], the key's state is pressed. If [code]false[/code], the "
"key's state is released."
@@ -56313,13 +56633,6 @@ msgstr ""
msgid "Represents a magnifying touch gesture."
msgstr "代表放大触摸手势。"
-msgid ""
-"Stores the factor of a magnifying touch gesture. This is usually performed "
-"when the user pinches the touch screen and used for zooming in/out."
-msgstr ""
-"存储放大触摸手势的系数。通常用户在触摸屏上将双指捏合,就执行了放大手势,可用于"
-"缩放。"
-
msgid ""
"The amount (or delta) of the event. This value is closer to [code]1.0[/code] "
"the slower the gesture is performed."
@@ -56686,14 +56999,6 @@ msgstr "鼠标速度,以像素每秒为单位。"
msgid "Represents a panning touch gesture."
msgstr "代表平移触摸手势。"
-msgid ""
-"Stores information about pan gestures. A pan gesture is performed when the "
-"user swipes the touch screen with two fingers. It's typically used for "
-"panning/scrolling."
-msgstr ""
-"存储与平移手势相关的信息。用户在触摸屏上滑动双指,就执行了平移手势。一般用于平"
-"移/滚动。"
-
msgid "Panning amount since last pan event."
msgstr "上一次平移事件以来的平移量。"
@@ -56955,6 +57260,99 @@ msgstr ""
msgid "A built-in type for integers."
msgstr "整数内置类型。"
+msgid ""
+"Signed 64-bit integer type. This means that it can take values from "
+"[code]-2^63[/code] to [code]2^63 - 1[/code], i.e. from "
+"[code]-9223372036854775808[/code] to [code]9223372036854775807[/code]. When "
+"it exceeds these bounds, it will wrap around.\n"
+"[int]s can be automatically converted to [float]s when necessary, for example "
+"when passing them as arguments in functions. The [float] will be as close to "
+"the original integer as possible.\n"
+"Likewise, [float]s can be automatically converted into [int]s. This will "
+"truncate the [float], discarding anything after the floating point.\n"
+"[b]Note:[/b] In a boolean context, an [int] will evaluate to [code]false[/"
+"code] if it equals [code]0[/code], and to [code]true[/code] otherwise.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var x: int = 1 # x is 1\n"
+"x = 4.2 # x is 4, because 4.2 gets truncated\n"
+"var max_int = 9223372036854775807 # Biggest value an int can store\n"
+"max_int += 1 # max_int is -9223372036854775808, because it wrapped around\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"int x = 1; // x is 1\n"
+"x = (int)4.2; // x is 4, because 4.2 gets truncated\n"
+"// We use long below, because GDScript's int is 64-bit while C#'s int is 32-"
+"bit.\n"
+"long maxLong = 9223372036854775807; // Biggest value a long can store\n"
+"maxLong++; // maxLong is now -9223372036854775808, because it wrapped "
+"around.\n"
+"\n"
+"// Alternatively with C#'s 32-bit int type, which has a smaller maximum "
+"value.\n"
+"int maxInt = 2147483647; // Biggest value an int can store\n"
+"maxInt++; // maxInt is now -2147483648, because it wrapped around\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"You can use the [code]0b[/code] literal for binary representation, the "
+"[code]0x[/code] literal for hexadecimal representation, and the [code]_[/"
+"code] symbol to separate long numbers and improve readability.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var x = 0b1001 # x is 9\n"
+"var y = 0xF5 # y is 245\n"
+"var z = 10_000_000 # z is 10000000\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"int x = 0b1001; // x is 9\n"
+"int y = 0xF5; // y is 245\n"
+"int z = 10_000_000; // z is 10000000\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"带符号 64 位整数类型。这意味着它能够接受从 [code]-2^63[/code] 到 [code]2^63 - "
+"1[/code] 的值,即从 [code]-9223372036854775808[/code] 到 "
+"[code]9223372036854775807[/code]。超出这个范围后,值会绕回到另一端。\n"
+"[int] 可以在需要时自动转换为 [float],例如在作为函数的参数传递的时候。[float] "
+"会尽可能与原始整数接近。\n"
+"类似地,[float] 可以自动转换为 [int]。这样会截断该 [float],丢弃小数点之后的部"
+"分。\n"
+"[b]注意:[/b]布尔环境中会将等于 [code]0[/code] 的 [int] 评估为 [code]false[/"
+"code],其他值则为 [code]true[/code]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var x: int = 1 # x 为 1\n"
+"x = 4.2 # x 为 4,因为 4.2 发生了截断\n"
+"var max_int = 9223372036854775807 # int 所能存储的最大值\n"
+"max_int += 1 # max_int 现在是 -9223372036854775808,因为它绕到了另一端\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"int x = 1; // x 为 1\n"
+"x = (int)4.2; // x 为 4,因为 4.2 发生了截断\n"
+"// 下面使用 long,因为 GDScript 的 int 为 64 位,而 C# 的 int 为 32 位。\n"
+"long maxLong = 9223372036854775807; // long 所能存储的最大值\n"
+"maxLong++; // maxLong 现在是 -9223372036854775808,因为它绕到了另一端。\n"
+"\n"
+"// 也可以使用 C# 的 32 位 int 类型,最大值较小。\n"
+"int maxInt = 2147483647; // int 所能存储的最大值\n"
+"maxInt++; // maxInt 现在是 -2147483648,因为它绕到了另一端。\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"你可以使用 [code]0b[/code] 字面量书写二进制值,使用 [code]0x[/code] 字面量书写"
+"十六进制值,使用 [code]_[/code] 符号分隔较长的数字,提升可读性。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var x = 0b1001 # x 为 9\n"
+"var y = 0xF5 # y 为 245\n"
+"var z = 10_000_000 # z 为 10000000\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"int x = 0b1001; // x 为 9\n"
+"int y = 0xF5; // y 为 245\n"
+"int z = 10_000_000; // z 为 10000000\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
msgid "Constructs an [int] set to [code]0[/code]."
msgstr "构造设为 [code]0[/code] 的 [int]。"
@@ -57235,6 +57633,23 @@ msgstr ""
"flags |= 0b101 # 置第一和第三位。\n"
"[/codeblock]"
+msgid ""
+"Performs the bitwise [code]NOT[/code] operation on the [int]. Due to "
+"[url=https://en.wikipedia.org/wiki/Two%27s_complement]2's complement[/url], "
+"it's effectively equal to [code]-(int + 1)[/code].\n"
+"[codeblock]\n"
+"print(~4) # Prints -5\n"
+"print(~(-7)) # Prints 6\n"
+"[/codeblock]"
+msgstr ""
+"对该 [int] 执行按位 [code]NOT[/code](反)运算。由于[url=https://zh.wikipedia."
+"org/zh-cn/%E4%BA%8C%E8%A3%9C%E6%95%B8]补码[/url],效果上与 [code]-(int + 1)[/"
+"code] 相同。\n"
+"[codeblock]\n"
+"print(~4) # 输出 -5\n"
+"print(~(-7)) # 输出 6\n"
+"[/codeblock]"
+
msgid "Creates an idle interval in a [Tween] animation."
msgstr "在 [Tween] 动画中创建空闲间隔。"
@@ -57910,18 +58325,6 @@ msgstr ""
"[b]注意:[/b]如果快速连续发出多个下载请求,浏览器可能会要求用户同意或阻止下"
"载。"
-msgid ""
-"Execute the string [param code] as JavaScript code within the browser window. "
-"This is a call to the actual global JavaScript function [code]eval()[/code].\n"
-"If [param use_global_execution_context] is [code]true[/code], the code will "
-"be evaluated in the global execution context. Otherwise, it is evaluated in "
-"the execution context of a function within the engine's runtime environment."
-msgstr ""
-"在浏览器窗口中将字符串 [param code] 作为 JavaScript 代码执行。这是对实际的全"
-"局 JavaScript 函数 [code]eval()[/code] 的调用。\n"
-"如果 [param use_global_execution_context] 为 [code]true[/code],则代码将在全局"
-"执行上下文中被求值。否则,它将在引擎运行时环境中的函数的执行上下文中进行求值。"
-
msgid ""
"Force synchronization of the persistent file system (when enabled).\n"
"[b]Note:[/b] This is only useful for modules or extensions that can't use "
@@ -58074,19 +58477,8 @@ msgid ""
msgstr ""
"2D 物理中所有关节的抽象基类。2D 关节能够将两个物理体绑定在一起并施加约束。"
-msgid ""
-"When [member node_a] and [member node_b] move in different directions the "
-"[code]bias[/code] controls how fast the joint pulls them back to their "
-"original position. The lower the [code]bias[/code] the more the two bodies "
-"can pull on the joint.\n"
-"When set to [code]0[/code], the default value from [member ProjectSettings."
-"physics/2d/solver/default_constraint_bias] is used."
-msgstr ""
-"当 [member node_a] 和 [member node_b] 向不同方向移动时,[code]bias[/code] 控制"
-"关节将它们拉回到原始位置的速度。[code]bias[/code] 越低,两个实体对该关节的拉力"
-"就越大。\n"
-"当被设置为 [code]0[/code] 时,使用来自 [member ProjectSettings.physics/2d/"
-"solver/default_constraint_bias] 的默认值。"
+msgid "Returns the joint's [RID]."
+msgstr "返回关节的 [RID]。"
msgid ""
"If [code]true[/code], [member node_a] and [member node_b] can not collide."
@@ -58671,11 +59063,6 @@ msgid ""
"Takes priority over theme properties."
msgstr "[LabelSettings] 资源,可以在多个 [Label] 节点之间共享。优先于主题属性。"
-msgid ""
-"The node ignores the first [code]lines_skipped[/code] lines before it starts "
-"to display text."
-msgstr "该节点在开始显示文本之前会忽略前 [code]lines_skipped[/code] 行。"
-
msgid "Limits the lines of text the node shows on screen."
msgstr "限制节点在屏幕上显示的文本行数。"
@@ -58788,6 +59175,9 @@ msgstr ""
"用于在 3D 空间显示纯文本的节点。通过调整该节点的各种属性,可以配置文本外观、是"
"否面朝相机等特性。"
+msgid "3D text"
+msgstr "3D 文本"
+
msgid ""
"Returns a [TriangleMesh] with the label's vertices following its current "
"configuration (such as its [member pixel_size])."
@@ -59245,11 +59635,6 @@ msgstr ""
"[b]注意:[/b]仅对 [OmniLight3D] 和 [SpotLight3D] 有效,且仅在 [member "
"shadow_enabled] 为 [code]true[/code] 时有效。"
-msgid ""
-"If [code]true[/code], the light only appears in the editor and will not be "
-"visible at runtime."
-msgstr "如果为 [code]true[/code],灯光只在编辑器中出现,在运行时将不可见。"
-
msgid ""
"The light's angular size in degrees. Increasing this will make shadows softer "
"at greater distances (also called percentage-closer soft shadows, or PCSS). "
@@ -59601,18 +59986,6 @@ msgstr ""
"[b]注意:[/b]将灯光隐藏,[i]不[/i]影响烘焙 [LightmapGI]。但将灯光隐藏,仍会影"
"响烘焙 [VoxelGI] 和 SDFGI(请参阅 [member Environment.sdfgi_enabled])。"
-msgid ""
-"Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI "
-"([member Environment.sdfgi_enabled])). The light can be moved around or "
-"modified, but its global illumination will not update in real-time. This is "
-"suitable for subtle changes (such as flickering torches), but generally not "
-"large changes such as toggling a light on and off."
-msgstr ""
-"在静态烘焙([VoxelGI]、[LightmapGI]、SDFGI([member Environment."
-"sdfgi_enabled]))时,考虑了灯光。灯光可以四处移动或修改,但其全局照明不会实时"
-"更新。这适用于细微的变化(例如闪烁的手电筒),但通常不适用于大的变化,例如打开"
-"和关闭灯光。"
-
msgid ""
"Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member "
"Environment.sdfgi_enabled]) only). The light can be moved around or modified "
@@ -59678,6 +60051,9 @@ msgstr ""
"[b]注意:[/b]如果没有安装自定义光照贴图,[LightmapGI] 只能在使用 Vulkan 后端"
"(Forward+ 或 Mobile)时进行烘焙,而不能在使用 OpenGL 时烘焙。"
+msgid "Using Lightmap global illumination"
+msgstr "使用光照贴图全局光照"
+
msgid ""
"The bias to use when computing shadows. Increasing [member bias] can fix "
"shadow acne on the resulting baked lightmap, but can introduce peter-panning "
@@ -59708,28 +60084,6 @@ msgstr ""
"应该使用曝光设置来减少烘焙时出现的动态范围。如果曝光度太高,[LightmapGI] 将出"
"现带状伪影,或可能出现过度曝光伪影。"
-msgid ""
-"If [code]true[/code], bakes lightmaps to contain directional information as "
-"spherical harmonics. This results in more realistic lighting appearance, "
-"especially with normal mapped materials and for lights that have their direct "
-"light baked ([member Light3D.light_bake_mode] set to [constant Light3D."
-"BAKE_STATIC]). The directional information is also used to provide rough "
-"reflections for static and dynamic objects. This has a small run-time "
-"performance cost as the shader has to perform more work to interpret the "
-"direction information from the lightmap. Directional lightmaps also take "
-"longer to bake and result in larger file sizes.\n"
-"[b]Note:[/b] The property's name has no relationship with "
-"[DirectionalLight3D]. [member directional] works with all light types."
-msgstr ""
-"如果为 [code]true[/code],烘焙光照贴图以包含作为球谐函数的方向信息。这会产生更"
-"逼真的光照外观,尤其是使用法线贴图材质和烘焙了直射光的灯光([member Light3D."
-"light_bake_mode] 设置为 [constant Light3D.BAKE_STATIC])。方向信息还用于为静态"
-"和动态对象提供粗略的反射。这有一个小的运行时性能成本,因为着色器必须执行更多的"
-"工作,来解释来自光照贴图的方向信息。定向光照贴图也需要更长的时间来烘焙并产生更"
-"大的文件大小。\n"
-"[b]注意:[/b]属性的名称与 [DirectionalLight3D] 没有关系。[member directional] "
-"适用于所有灯光类型。"
-
msgid ""
"The color to use for environment lighting. Only effective if [member "
"environment_mode] is [constant ENVIRONMENT_MODE_CUSTOM_COLOR]."
@@ -59989,9 +60343,6 @@ msgstr ""
"烘焙光照贴图之前,材质外观将看起来不正确,在这种情况下,此处设置的值将被丢弃,"
"因为整个 [LightmapGIData] 资源被光照贴图器替换。"
-msgid "The lightmap atlas texture generated by the lightmapper."
-msgstr "由光照贴图器生成的光照贴图图集纹理。"
-
msgid "Abstract class extended by lightmappers, for use in [LightmapGI]."
msgstr "由光照贴图器扩展的抽象类,用于 [LightmapGI]。"
@@ -60070,6 +60421,12 @@ msgstr ""
msgid "Returns the position of the point at index [param index]."
msgstr "返回索引为 [param index] 的点的位置。"
+msgid "The polyline's width."
+msgstr "多边形的宽度。"
+
+msgid "Draws no line cap."
+msgstr "不绘制线条端点。"
+
msgid "An input field for single-line text."
msgstr "单行文本的输入字段。"
@@ -60469,11 +60826,6 @@ msgstr ""
"如果为 [code]true[/code],则每个字符都会被替换成密码字符(见 [member "
"secret_character])。"
-msgid ""
-"The character to use to mask secret input (defaults to \"•\"). Only a single "
-"character can be used as the secret character."
-msgstr "用于掩盖秘密输入的字符(默认为“•”)。只能用一个字符作为秘密字符。"
-
msgid ""
"If [code]true[/code], the [LineEdit] will select the whole text when it gains "
"focus."
@@ -60799,23 +61151,6 @@ msgstr "该 [LinkButton] 文本的字体 [Font]。"
msgid "Font size of the [LinkButton]'s text."
msgstr "该 [LinkButton] 文本的字体大小。"
-msgid ""
-"[StyleBox] used when the [LinkButton] is focused. The [code]focus[/code] "
-"[StyleBox] is displayed [i]over[/i] the base [StyleBox], so a partially "
-"transparent [StyleBox] should be used to ensure the base [StyleBox] remains "
-"visible. A [StyleBox] that represents an outline or an underline works well "
-"for this purpose. To disable the focus visual effect, assign a "
-"[StyleBoxEmpty] resource. Note that disabling the focus visual effect will "
-"harm keyboard/controller navigation usability, so this is not recommended for "
-"accessibility reasons."
-msgstr ""
-"该 [LinkButton] 处于聚焦状态时使用的 [StyleBox]。[code]focus[/code] "
-"[StyleBox] 显示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 "
-"[StyleBox],确保基础 [StyleBox] 仍然可见。代表轮廓或下划线的 [StyleBox] 可以很"
-"好地实现这个目的。要禁用聚焦的视觉效果,请指定 [StyleBoxEmpty] 资源。请注意,"
-"禁用聚焦的视觉效果会影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原"
-"因,不建议这样做。"
-
msgid "Abstract base class for the game's main loop."
msgstr "游戏主循环的抽象基类。"
@@ -61107,33 +61442,6 @@ msgstr ""
"[/csharp]\n"
"[/codeblocks]"
-msgid ""
-"All direct children of [MarginContainer] will have a bottom margin of "
-"[code]margin_bottom[/code] pixels."
-msgstr ""
-"所有 [MarginContainer] 的直接子节点将有 [code]margin_bottom[/code] 像素的底边"
-"距。"
-
-msgid ""
-"All direct children of [MarginContainer] will have a left margin of "
-"[code]margin_left[/code] pixels."
-msgstr ""
-"所有 [MarginContainer] 的直接子节点将有 [code]margin_left[/code] 像素的左边"
-"距。"
-
-msgid ""
-"All direct children of [MarginContainer] will have a right margin of "
-"[code]margin_right[/code] pixels."
-msgstr ""
-"所有 [MarginContainer] 的直接子节点将有 [code]margin_right[/code] 像素的右边"
-"距。"
-
-msgid ""
-"All direct children of [MarginContainer] will have a top margin of "
-"[code]margin_top[/code] pixels."
-msgstr ""
-"所有 [MarginContainer] 的直接子节点将有 [code]margin_top[/code] 像素的顶边距。"
-
msgid "Generic 2D position hint for editing."
msgstr "通用 2D 位置提示,用于编辑。"
@@ -61211,33 +61519,6 @@ msgstr ""
msgid "Creates a placeholder version of this resource ([PlaceholderMaterial])."
msgstr "创建该资源的占位符版本([PlaceholderMaterial])。"
-msgid ""
-"Sets the [Material] to be used for the next pass. This renders the object "
-"again using a different material.\n"
-"[b]Note:[/b] This only applies to [StandardMaterial3D]s and [ShaderMaterial]s "
-"with type \"Spatial\"."
-msgstr ""
-"设置下一阶段使用的 [Material]。这将使用不同的材质再次渲染对象。\n"
-"[b]注意:[/b]仅适用于 [StandardMaterial3D] 和“Spatial”类型的 "
-"[ShaderMaterial]。"
-
-msgid ""
-"Sets the render priority for transparent objects in 3D scenes. Higher "
-"priority objects will be sorted in front of lower priority objects.\n"
-"[b]Note:[/b] This only applies to [StandardMaterial3D]s and [ShaderMaterial]s "
-"with type \"Spatial\".\n"
-"[b]Note:[/b] This only applies to sorting of transparent objects. This will "
-"not impact how transparent objects are sorted relative to opaque objects. "
-"This is because opaque objects are not sorted, while transparent objects are "
-"sorted from back to front (subject to priority)."
-msgstr ""
-"设置 3D 场景中透明物体的渲染优先级。优先级高的物体将被排序在优先级低的物体前"
-"面。\n"
-"[b]注意:[/b]仅适用于 [StandardMaterial3D] 和“Spatial”类型的 "
-"[ShaderMaterial]。\n"
-"[b]注意:[/b]仅适用于透明物体的排序。这不会影响透明物体相对于不透明物体的排序"
-"方式。这是因为不透明对象不被排序,而透明对象则从后往前排序(取决于优先级)。"
-
msgid "Maximum value for the [member render_priority] parameter."
msgstr "[member render_priority] 参数的最大值。"
@@ -61354,15 +61635,42 @@ msgstr "菜单项文本的字体大小。"
msgid "[StyleBox] used when the menu item is disabled."
msgstr "菜单项处于禁用状态时使用的 [StyleBox]。"
+msgid ""
+"[StyleBox] used when the menu item is disabled (for right-to-left layouts)."
+msgstr "菜单项处于禁用状态时使用的 [StyleBox](用于从右至左布局)。"
+
msgid "[StyleBox] used when the menu item is being hovered."
msgstr "菜单项处于悬停状态时使用的 [StyleBox]。"
+msgid ""
+"[StyleBox] used when the menu item is being hovered (for right-to-left "
+"layouts)."
+msgstr "菜单项处于悬停状态时使用的 [StyleBox](用于从右至左布局)。"
+
+msgid ""
+"[StyleBox] used when the menu item is being pressed and hovered at the same "
+"time."
+msgstr "菜单项处于按下并悬停状态时使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the menu item is being pressed and hovered at the same "
+"time (for right-to-left layouts)."
+msgstr "菜单项处于按下并悬停状态时使用的 [StyleBox](用于从右至左布局)。"
+
msgid "Default [StyleBox] for the menu item."
msgstr "菜单项的默认 [StyleBox]。"
+msgid "Default [StyleBox] for the menu item (for right-to-left layouts)."
+msgstr "菜单项的默认 [StyleBox](用于从右至左布局)。"
+
msgid "[StyleBox] used when the menu item is being pressed."
msgstr "菜单项处于按下状态时使用的 [StyleBox]。"
+msgid ""
+"[StyleBox] used when the menu item is being pressed (for right-to-left "
+"layouts)."
+msgstr "菜单项处于按下状态时使用的 [StyleBox](用于从右至左布局)。"
+
msgid "A button that brings up a [PopupMenu] when clicked."
msgstr "点击后会弹出 [PopupMenu] 的按钮。"
@@ -61395,15 +61703,6 @@ msgstr ""
"调整该 [MenuButton] 的弹出位置和大小,然后显示该 [PopupMenu]。请优先使用此方"
"法,而不是使用 [code]get_popup().popup()[/code]。"
-msgid ""
-"If [code]true[/code], when the cursor hovers above another [MenuButton] "
-"within the same parent which also has [code]switch_on_hover[/code] enabled, "
-"it will close the current [MenuButton] and open the other one."
-msgstr ""
-"如果为 [code]true[/code],当光标悬停在同一父级中也启用了 "
-"[code]switch_on_hover[/code] 的另一个 [MenuButton] 上方时,它将关闭当前的 "
-"[MenuButton] 并打开另一个。"
-
msgid "Emitted when the [PopupMenu] of this MenuButton is about to show."
msgstr "该 MenuButton 的 [PopupMenu] 即将显示时发出。"
@@ -61543,6 +61842,13 @@ msgid ""
"vertices represent one triangle."
msgstr "返回网格中所有构成面的顶点。每三个顶点代表一个三角形。"
+msgid ""
+"Returns the number of surfaces that the [Mesh] holds. This is equivalent to "
+"[method MeshInstance3D.get_surface_override_material_count]."
+msgstr ""
+"返回 [Mesh] 中存放的表面的数量。相当于 [method MeshInstance3D."
+"get_surface_override_material_count]。"
+
msgid "Returns the blend shape arrays for the requested surface."
msgstr "返回请求表面的混合形状数组。"
@@ -61999,6 +62305,9 @@ msgstr ""
"[b]注意:[/b]对于三角形基元模式的前面,Godot 使用顺时针[url=https://"
"learnopengl.com/Advanced-OpenGL/Face-culling]缠绕顺序[/url]。"
+msgid "Using the MeshDataTool"
+msgstr "使用 MeshDataTool"
+
msgid "Clears all data currently in MeshDataTool."
msgstr "将当前 MeshDataTool 中所有的数据全部清除。"
@@ -63039,164 +63348,6 @@ msgstr ""
msgid "Base class used for extending the [MultiplayerAPI]."
msgstr "用于扩展 [MultiplayerAPI] 的基类。"
-msgid ""
-"This class can be used to augment or replace the default [MultiplayerAPI] "
-"implementation via script or extensions.\n"
-"The following example augment the default implementation ([SceneMultiplayer]) "
-"by logging every RPC being made, and every object being configured for "
-"replication.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"extends MultiplayerAPIExtension\n"
-"class_name LogMultiplayer\n"
-"\n"
-"# We want to augment the default SceneMultiplayer.\n"
-"var base_multiplayer = SceneMultiplayer.new()\n"
-"\n"
-"func _init():\n"
-" # Just passthourgh base signals (copied to var to avoid cyclic "
-"reference)\n"
-" var cts = connected_to_server\n"
-" var cf = connection_failed\n"
-" var pc = peer_connected\n"
-" var pd = peer_disconnected\n"
-" base_multiplayer.connected_to_server.connect(func(): cts.emit())\n"
-" base_multiplayer.connection_failed.connect(func(): cf.emit())\n"
-" base_multiplayer.peer_connected.connect(func(id): pc.emit(id))\n"
-" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))\n"
-"\n"
-"# Log RPC being made and forward it to the default multiplayer.\n"
-"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> int: "
-"# Error\n"
-" print(\"Got RPC for %d: %s::%s(%s)\" % [peer, object, method, args])\n"
-" return base_multiplayer.rpc(peer, object, method, args)\n"
-"\n"
-"# Log configuration add. E.g. root path (nullptr, NodePath), replication "
-"(Node, Spawner|Synchronizer), custom.\n"
-"func _object_configuration_add(object, config: Variant) -> int: # Error\n"
-" if config is MultiplayerSynchronizer:\n"
-" print(\"Adding synchronization configuration for %s. Synchronizer: "
-"%s\" % [object, config])\n"
-" elif config is MultiplayerSpawner:\n"
-" print(\"Adding node %s to the spawn list. Spawner: %s\" % [object, "
-"config])\n"
-" return base_multiplayer.object_configuration_add(object, config)\n"
-"\n"
-"# Log configuration remove. E.g. root path (nullptr, NodePath), replication "
-"(Node, Spawner|Synchronizer), custom.\n"
-"func _object_configuration_remove(object, config: Variant) -> int: # Error\n"
-" if config is MultiplayerSynchronizer:\n"
-" print(\"Removing synchronization configuration for %s. Synchronizer: "
-"%s\" % [object, config])\n"
-" elif config is MultiplayerSpawner:\n"
-" print(\"Removing node %s from the spawn list. Spawner: %s\" % "
-"[object, config])\n"
-" return base_multiplayer.object_configuration_remove(object, config)\n"
-"\n"
-"# These can be optional, but in our case we want to augment SceneMultiplayer, "
-"so forward everything.\n"
-"func _set_multiplayer_peer(p_peer: MultiplayerPeer):\n"
-" base_multiplayer.multiplayer_peer = p_peer\n"
-"\n"
-"func _get_multiplayer_peer() -> MultiplayerPeer:\n"
-" return base_multiplayer.multiplayer_peer\n"
-"\n"
-"func _get_unique_id() -> int:\n"
-" return base_multiplayer.get_unique_id()\n"
-"\n"
-"func _get_peer_ids() -> PackedInt32Array:\n"
-" return base_multiplayer.get_peers()\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"Then in your main scene or in an autoload call [method SceneTree."
-"set_multiplayer] to start using your custom [MultiplayerAPI]:\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# autoload.gd\n"
-"func _enter_tree():\n"
-" # Sets our custom multiplayer as the main one in SceneTree.\n"
-"get_tree().set_multiplayer(LogMultiplayer.new())\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"Native extensions can alternatively use the [method MultiplayerAPI."
-"set_default_interface] method during initialization to configure themselves "
-"as the default implementation."
-msgstr ""
-"该类可用于通过脚本或扩展来增强或替换默认的 [MultiplayerAPI] 实现。\n"
-"下面的例子通过记录每一个正在进行的 RPC 和为复制而配置的每一个对象,增强了默认"
-"的实现([SceneMultiplayer])。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"extends MultiplayerAPIExtension\n"
-"class_name LogMultiplayer\n"
-"\n"
-"# 我们想增强默认的 SceneMultiplayer。\n"
-"var base_multiplayer = SceneMultiplayer.new()\n"
-"\n"
-"func _init():\n"
-" # 仅传递基本信号(复制到 var 以避免循环引用)\n"
-" var cts = connected_to_server\n"
-" var cf = connection_failed\n"
-" var pc = peer_connected\n"
-" var pd = peer_disconnected\n"
-" base_multiplayer.connected_to_server.connect(func(): cts.emit())\n"
-" base_multiplayer.connection_failed.connect(func(): cf.emit())\n"
-" base_multiplayer.peer_connected.connect(func(id): pc.emit(id))\n"
-" base_multiplayer.peer_disconnected.connect(func(id): pd.emit(id))\n"
-"\n"
-"# 记录正在进行的 RPC 并将其转发到默认的多人游戏。\n"
-"func _rpc(peer: int, object: Object, method: StringName, args: Array) -> int: "
-"# 错误代码\n"
-" print(\"获取用于 %d 的 RPC:%s::%s(%s)\" % [peer, object, method, args])\n"
-" return base_multiplayer.rpc(peer, object, method, args)\n"
-"\n"
-"# 记录配置添加。例如,根路径(nullptr、NodePath),复制(Node、Spawner|"
-"Synchronizer),自定义。\n"
-"func _object_configuration_add(object, config: Variant) -> int: # 错误代码\n"
-" if config is MultiplayerSynchronizer:\n"
-" print(\"添加用于 %s 的同步配置。同步器:%s\" % [object, config])\n"
-" elif config is MultiplayerSpawner:\n"
-" print(\"将节点 %s 添加到出生列表。出生器:%s\" % [object, config])\n"
-" return base_multiplayer.object_configuration_add(object, config)\n"
-"\n"
-"# 记录配置移除。例如,根路径(nullptr、NodePath),复制(Node、Spawner|"
-"Synchronizer),自定义。\n"
-"func _object_configuration_remove(object, config: Variant) -> int: # 错误代"
-"码\n"
-" if config is MultiplayerSynchronizer:\n"
-" print(\"移除用于 %s 的同步配置。同步器:%s\" % [object, config])\n"
-" elif config is MultiplayerSpawner:\n"
-" print(\"将节点 %s 从出生列表移除。出生器:%s\" % [object, config])\n"
-" return base_multiplayer.object_configuration_remove(object, config)\n"
-"\n"
-"# 这些可以是可选的,但在我们的例子中,我们想要增强 SceneMultiplayer,所以转发"
-"所有内容。\n"
-"func _set_multiplayer_peer(p_peer: MultiplayerPeer):\n"
-" base_multiplayer.multiplayer_peer = p_peer\n"
-"\n"
-"func _get_multiplayer_peer() -> MultiplayerPeer:\n"
-" return base_multiplayer.multiplayer_peer\n"
-"\n"
-"func _get_unique_id() -> int:\n"
-" return base_multiplayer.get_unique_id()\n"
-"\n"
-"func _get_peer_ids() -> PackedInt32Array:\n"
-" return base_multiplayer.get_peers()\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"然后在你的主场景或在自动加载中调用 [method SceneTree.set_multiplayer],以开始"
-"使用你的自定义 [MultiplayerAPI]:\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# autoload.gd\n"
-"func _enter_tree():\n"
-" # 将我们的自定义多人游戏设置为 SceneTree 中的主要的多人游戏。\n"
-"get_tree().set_multiplayer(LogMultiplayer.new())\n"
-"[/gdscript]\n"
-"[/codeblocks]\n"
-"原生扩展也可以在初始化期间,使用 [method MultiplayerAPI."
-"set_default_interface] 方法将自己配置为默认实现。"
-
msgid "Called when the [member MultiplayerAPI.multiplayer_peer] is retrieved."
msgstr "在检索到 [member MultiplayerAPI.multiplayer_peer] 时调用。"
@@ -64931,41 +65082,6 @@ msgstr "存放解析所得的源几何体数据的容器,用于导航网格的
msgid "Clears the internal data."
msgstr "清除内部数据。"
-msgid ""
-"Adds an array of vertex positions to the geometry data for navigation mesh "
-"baking to form triangulated faces. For each face the array must have three "
-"vertex positions in clockwise winding order. Since [NavigationMesh] resource "
-"have no transform all vertex positions need to be offset by the node's "
-"transform using the [code]xform[/code] parameter."
-msgstr ""
-"向用于导航网格烘焙的几何体数据中添加顶点位置数组,形成三角形面。每个面必须在数"
-"组中有三个顶点位置,使用顺时针缠绕顺序。因为 [NavigationMesh] 资源本身没有变"
-"换,所有顶点位置都需要使用 [code]xform[/code] 参数使用节点的变换进行偏移。"
-
-msgid ""
-"Adds the geometry data of a [Mesh] resource to the navigation mesh baking "
-"data. The mesh must have valid triangulated mesh data to be considered. Since "
-"[NavigationMesh] resource have no transform all vertex positions need to be "
-"offset by the node's transform using the [code]xform[/code] parameter."
-msgstr ""
-"向导航网格烘焙数据中添加 [Mesh] 资源的几何体数据。网格中必须存在有效的三角形网"
-"格数据才会被使用。因为 [NavigationMesh] 资源本身没有变换,所有顶点位置都需要使"
-"用 [code]xform[/code] 参数使用节点的变换进行偏移。"
-
-msgid ""
-"Adds an [Array] the size of [constant Mesh.ARRAY_MAX] and with vertices at "
-"index [constant Mesh.ARRAY_VERTEX] and indices at index [constant Mesh."
-"ARRAY_INDEX] to the navigation mesh baking data. The array must have valid "
-"triangulated mesh data to be considered. Since [NavigationMesh] resource have "
-"no transform all vertex positions need to be offset by the node's transform "
-"using the [code]xform[/code] parameter."
-msgstr ""
-"向导航网格烘焙数据中添加一个 [Array],大小为 [constant Mesh.ARRAY_MAX],顶点数"
-"据位于索引 [constant Mesh.ARRAY_VERTEX],索引数据位于索引 [constant Mesh."
-"ARRAY_INDEX]。数组中必须存在有效的三角形网格数据才会被使用。因为 "
-"[NavigationMesh] 资源本身没有变换,所有顶点位置都需要使用 [code]xform[/code] "
-"参数使用节点的变换进行偏移。"
-
msgid "Returns the parsed source geometry data indices array."
msgstr "返回解析得到的源几何体数据索引数据。"
@@ -65137,9 +65253,6 @@ msgstr ""
msgid "Using NavigationPathQueryObjects"
msgstr "使用 NavigationPathQueryObject"
-msgid "The navigation [code]map[/code] [RID] used in the path query."
-msgstr "在路径查询中使用的导航地图 [code]map[/code] [RID]。"
-
msgid "Additional information to include with the navigation path."
msgstr "包含在导航路径中的额外信息。"
@@ -65396,14 +65509,6 @@ msgstr ""
msgid "Determines if the [NavigationRegion2D] is enabled or disabled."
msgstr "决定该 [NavigationRegion2D] 是启用还是禁用。"
-msgid ""
-"When pathfinding enters this region's navigation mesh from another regions "
-"navigation mesh the [code]enter_cost[/code] value is added to the path "
-"distance for determining the shortest path."
-msgstr ""
-"当寻路从另一个区块的导航网格进入该区块的导航网格时,[code]enter_cost[/code] 值"
-"将被加到路径距离,以确定最短路径。"
-
msgid ""
"A bitfield determining all navigation layers the region belongs to. These "
"navigation layers can be checked upon when requesting a path with [method "
@@ -65415,14 +65520,6 @@ msgstr ""
msgid "The [NavigationPolygon] resource to use."
msgstr "使用的 [NavigationPolygon] 资源。"
-msgid ""
-"When pathfinding moves inside this region's navigation mesh the traveled "
-"distances are multiplied with [code]travel_cost[/code] for determining the "
-"shortest path."
-msgstr ""
-"当寻路在该区块的导航网格内移动时,将行进距离乘以 [code]travel_cost[/code] 以确"
-"定最短路径。"
-
msgid ""
"If enabled the navigation region will use edge connections to connect with "
"other navigation regions within proximity of the navigation map edge "
@@ -65596,6 +65693,12 @@ msgstr ""
"SceneTree 状态进行处理。要为某个代理禁用回调的发送,请再次使用一个空的 "
"[Callable] 来调用 [method agent_set_avoidance_callback]。"
+msgid ""
+"If [param enabled] is [code]true[/code], the specified [param agent] uses "
+"avoidance."
+msgstr ""
+"如果 [param enabled] 为 [code]true[/code],则指定的 [param agent] 使用避障。"
+
msgid "Set the agent's [code]avoidance_layers[/code] bitmask."
msgstr "设置该代理的 [code]avoidance_layers[/code] 位掩码。"
@@ -65742,6 +65845,13 @@ msgstr "返回该 [param link] 是否能够双向通行。"
msgid "Sets whether this [param link] can be travelled in both directions."
msgstr "设置该 [param link] 是否能够双向通行。"
+msgid ""
+"If [param enabled] is [code]true[/code], the specified [param link] will "
+"contribute to its current navigation map."
+msgstr ""
+"如果 [param enabled] 为 [code]true[/code],则指定的 [param link] 会在它的当前"
+"导航地图中生效。"
+
msgid "Sets the exit position for the [param link]."
msgstr "设置 [param link] 的出口位置。"
@@ -66029,6 +66139,13 @@ msgstr ""
"[b]注意:[/b]如果来自不同导航区块的导航网格存在重叠(通常应当避免),可能会得"
"到预料之外的结果。"
+msgid ""
+"If [param enabled] is [code]true[/code] the specified [param region] will "
+"contribute to its current navigation map."
+msgstr ""
+"如果 [param enabled] 为 [code]true[/code],则指定的 [param region] 会在它的当"
+"前导航地图中生效。"
+
msgid "Sets the [param enter_cost] for this [param region]."
msgstr "设置 [param region] 地区的进入消耗 [param enter_cost]。"
@@ -66080,6 +66197,12 @@ msgstr ""
"如果指定代理 [param agent] 使用 3D 空间 Vector3(x,y,z) 的避障而不是水平 2D "
"Vector2(x,y) / Vector3(x,0.0,z) 避障,则返回 [code]true[/code]。"
+msgid ""
+"If [param enabled] is [code]true[/code], the provided [param agent] "
+"calculates avoidance."
+msgstr ""
+"如果 [param enabled] 为 [code]true[/code],则提供的 [param agent] 会计算避障。"
+
msgid "Updates the provided [param agent] [param height]."
msgstr "更新指定代理 [param agent] 的高度 [param height]。"
@@ -66246,6 +66369,13 @@ msgstr ""
"如果导航区块 [param region] 被设置为使用边缘连接与位于导航地图边缘连接边距范围"
"内的其他导航区块相连接,则返回 true。"
+msgid ""
+"If [param enabled] is [code]true[/code], the specified [param region] will "
+"contribute to its current navigation map."
+msgstr ""
+"如果 [param enabled] 为 [code]true[/code],则指定的 [param region] 会在它的当"
+"前导航地图中生效。"
+
msgid ""
"Set the region's navigation layers. This allows selecting regions from a path "
"request (when using [method NavigationServer3D.map_get_path])."
@@ -66661,30 +66791,100 @@ msgstr ""
"是“孤儿”)。"
msgid ""
-"Called when the node is \"ready\", i.e. when both the node and its children "
-"have entered the scene tree. If the node has children, their [method _ready] "
-"callbacks get triggered first, and the parent node will receive the ready "
-"notification afterwards.\n"
-"Corresponds to the [constant NOTIFICATION_READY] notification in [method "
-"Object._notification]. See also the [code]@onready[/code] annotation for "
-"variables.\n"
-"Usually used for initialization. For even earlier initialization, [method "
-"Object._init] may be used. See also [method _enter_tree].\n"
-"[b]Note:[/b] [method _ready] may be called only once for each node. After "
-"removing a node from the scene tree and adding it again, [code]_ready[/code] "
-"will not be called a second time. This can be bypassed by requesting another "
-"call with [method request_ready], which may be called anywhere before adding "
-"the node again."
+"Called when an [InputEventKey] or [InputEventShortcut] hasn't been consumed "
+"by [method _input] or any GUI [Control] item. It is called before [method "
+"_unhandled_key_input] and [method _unhandled_input]. The input event "
+"propagates up through the node tree until a node consumes it.\n"
+"It is only called if shortcut processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_process_shortcut_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method Viewport.set_input_as_handled] can be called.\n"
+"This method can be used to handle shortcuts. For generic GUI events, use "
+"[method _input] instead. Gameplay events should usually be handled with "
+"either [method _unhandled_input] or [method _unhandled_key_input].\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not orphan)."
msgstr ""
-"当节点“就绪”时被调用,即当节点及其子节点都已经进入场景树时。如果该节点有子节"
-"点,将首先触发子节点的 [method _ready] 回调,稍后父节点将收到就绪通知。\n"
-"对应 [method Object._notification] 中的 [constant NOTIFICATION_READY] 通知。另"
-"请参阅用于变量的 [code]@onready[/code] 注解。\n"
-"通常用于初始化。对于更早的初始化,可以使用 [method Object._init]。另见 "
-"[method _enter_tree]。\n"
-"[b]注意:[/b]对于每个节点可能仅调用一次 [method _ready]。从场景树中移除一个节"
-"点后,并再次添加该节点时,将不会第二次调用 [code]_ready[/code]。这时可以通过使"
-"用 [method request_ready],它可以在再次添加节点之前的任何地方被调用。"
+"当一个 [InputEventKey] 或 [InputEventShortcut],尚未被 [method _input] 或任何 "
+"GUI [Control] 项使用时调用。这是在 [method _unhandled_key_input] 和 [method "
+"_unhandled_input] 之前调用的。输入事件通过节点树向上传播,直到一个节点消耗"
+"它。\n"
+"它仅在启用快捷键处理时调用,如果此方法被覆盖,则会自动调用,并且可以使用 "
+"[method set_process_shortcut_input] 进行开关。\n"
+"要消耗输入事件,并阻止它进一步传播到其他节点,可以调用 [method Viewport."
+"set_input_as_handled]。\n"
+"此方法可用于处理快捷键。如果是常规的 GUI 事件,请改用 [method _input]。游戏事"
+"件通常应该使用 [method _unhandled_input] 或 [method _unhandled_key_input] 处"
+"理。\n"
+"[b]注意:[/b]仅当该节点存在于场景树中(即它不是一个孤儿节点)时,此方法才会被"
+"调用。"
+
+msgid ""
+"Called when an [InputEvent] hasn't been consumed by [method _input] or any "
+"GUI [Control] item. It is called after [method _shortcut_input] and after "
+"[method _unhandled_key_input]. The input event propagates up through the node "
+"tree until a node consumes it.\n"
+"It is only called if unhandled input processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_process_unhandled_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method Viewport.set_input_as_handled] can be called.\n"
+"For gameplay input, this method is usually a better fit than [method _input], "
+"as GUI events need a higher priority. For keyboard shortcuts, consider using "
+"[method _shortcut_input] instead, as it is called before this method. "
+"Finally, to handle keyboard events, consider using [method "
+"_unhandled_key_input] for performance reasons.\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not an orphan)."
+msgstr ""
+"当一个 [InputEvent] 尚未被 [method _input] 或任何 GUI [Control] 项消耗时调用。"
+"这是在 [method _shortcut_input] 和 [method _unhandled_key_input] 之后调用的。"
+"输入事件通过节点树向上传播,直到一个节点消耗它。\n"
+"只有在未处理的输入处理被启用时,才会被调用,如果该方法被重写,则会自动被调用,"
+"并且可以使用 [method set_process_unhandled_input] 进行切换。\n"
+"要消耗输入事件,并阻止它进一步传播到其他节点,可以调用 [method Viewport."
+"set_input_as_handled]。\n"
+"对于游戏输入,这个方法通常比 [method _input] 更合适,因为 GUI 事件需要更高的优"
+"先级。对于键盘快捷键,请考虑改用 [method _shortcut_input],因为是在这个方法之"
+"前调用的。最后,如果要处理键盘事件,那么出于性能方面的原因请考虑使用 [method "
+"_unhandled_key_input]。\n"
+"[b]注意:[/b]仅当该节点存在于场景树中(即不是孤儿节点)时,该方法才会被调用。"
+
+msgid ""
+"Called when an [InputEventKey] hasn't been consumed by [method _input] or any "
+"GUI [Control] item. It is called after [method _shortcut_input] but before "
+"[method _unhandled_input]. The input event propagates up through the node "
+"tree until a node consumes it.\n"
+"It is only called if unhandled key input processing is enabled, which is done "
+"automatically if this method is overridden, and can be toggled with [method "
+"set_process_unhandled_key_input].\n"
+"To consume the input event and stop it propagating further to other nodes, "
+"[method Viewport.set_input_as_handled] can be called.\n"
+"This method can be used to handle Unicode character input with [kbd]Alt[/"
+"kbd], [kbd]Alt + Ctrl[/kbd], and [kbd]Alt + Shift[/kbd] modifiers, after "
+"shortcuts were handled.\n"
+"For gameplay input, this and [method _unhandled_input] are usually a better "
+"fit than [method _input], as GUI events should be handled first. This method "
+"also performs better than [method _unhandled_input], since unrelated events "
+"such as [InputEventMouseMotion] are automatically filtered. For shortcuts, "
+"consider using [method _shortcut_input] instead.\n"
+"[b]Note:[/b] This method is only called if the node is present in the scene "
+"tree (i.e. if it's not an orphan)."
+msgstr ""
+"当 [InputEventKey] 没有被 [method _input] 或任何 GUI [Control] 项目消耗时调"
+"用。这是在 [method _shortcut_input] 之后、[method _unhandled_input] 之前调用"
+"的。输入事件通过节点树向上传播,直到某个节点将其消耗。\n"
+"只有在启用了未处理按键输入处理时才会被调用,如果覆盖了这个方法就会自动启用,并"
+"且可以用 [method set_process_unhandled_key_input] 来开关。\n"
+"要消耗输入事件并阻止它进一步传播到其他节点,可以调用 [method Viewport."
+"set_input_as_handled]。\n"
+"在处理快捷键后,此方法可用于使用 [kbd]Alt[/kbd]、[kbd]Alt + Ctrl[/kbd] 和 "
+"[kbd]Alt + Shift[/kbd] 修饰符处理 Unicode 字符输入。\n"
+"对于游戏输入,这和 [method _unhandled_input] 通常比 [method _input] 更适合,因"
+"为应该先处理 GUI 事件。该方法的性能也比 [method _unhandled_input] 更好,因为 "
+"[InputEventMouseMotion] 等无关事件会被自动过滤。\n"
+"[b]注意:[/b]只有当节点存在于场景树中(即不是孤儿节点)时,该方法才会被调用。"
msgid ""
"Adds a child [param node]. Nodes can have any number of children, but every "
@@ -67601,20 +67801,6 @@ msgstr ""
"[b]注意:[/b]被替换的节点不会被自动释放,因此需要将其保存在变量中以备后用,或"
"者使用 [method Object.free] 释放它。"
-msgid ""
-"Requests that [code]_ready[/code] be called again. Note that the method won't "
-"be called immediately, but is scheduled for when the node is added to the "
-"scene tree again (see [method _ready]). [code]_ready[/code] is called only "
-"for the node which requested it, which means that you need to request ready "
-"for each child if you want them to call [code]_ready[/code] too (in which "
-"case, [code]_ready[/code] will be called in the same order as it would "
-"normally)."
-msgstr ""
-"请求再次调用 [code]_ready[/code]。注意,该方法不会被立即调用,而是被安排在该节"
-"点再次被添加到场景树时(见 [method _ready])。[code]_ready[/code] 只为请求它的"
-"节点调用,这意味着如果你想让每个子节点也调用 [code]_ready[/code],你需要为它们"
-"请求 ready(在这种情况下,[code]_ready[/code] 的调用顺序与正常情况下相同)。"
-
msgid ""
"Sends a remote procedure call request for the given [param method] to peers "
"on the network (and locally), optionally sending all additional arguments as "
@@ -68142,14 +68328,6 @@ msgstr ""
"当设置了内部物理处理标志时,每一帧都会收到的通知(见 [method "
"set_physics_process_internal])。"
-msgid ""
-"Notification received when the node is ready, just before [constant "
-"NOTIFICATION_READY] is received. Unlike the latter, it's sent every time the "
-"node enters tree, instead of only once."
-msgstr ""
-"当该节点就绪,在收到 [constant NOTIFICATION_READY] 之前收到的通知。与后者不"
-"同,该节点每次进入树时都会发送,而不是只发送一次。"
-
msgid ""
"Notification received when the node is disabled. See [constant "
"PROCESS_MODE_DISABLED]."
@@ -68162,13 +68340,6 @@ msgstr ""
"当该节点被禁用后又再次被启用时收到的通知。见 [constant "
"PROCESS_MODE_DISABLED]。"
-msgid ""
-"Notification received when other nodes in the tree may have been removed/"
-"replaced and node pointers may require re-caching."
-msgstr ""
-"当树中的其他节点可能已经被移除 / 替换,节点指针可能需要重新缓存时,会收到通"
-"知。"
-
msgid ""
"Notification received right before the scene with the node is saved in the "
"editor. This notification is only sent in the Godot editor and will not occur "
@@ -68185,6 +68356,20 @@ msgstr ""
"在编辑器中保存有节点的场景后立即收到通知。这个通知只在 Godot 编辑器中发送,在"
"导出的项目中不会出现。"
+msgid ""
+"Notification received when the mouse enters the window.\n"
+"Implemented for embedded windows and on desktop and web platforms."
+msgstr ""
+"鼠标进入窗口时收到的通知。\n"
+"为内嵌窗口实现,并在桌面和 Web 平台上实现。"
+
+msgid ""
+"Notification received when the mouse leaves the window.\n"
+"Implemented for embedded windows and on desktop and web platforms."
+msgstr ""
+"鼠标离开窗口时收到的通知。\n"
+"为内嵌窗口实现,并在桌面和 Web 平台上实现。"
+
msgid ""
"Notification received when the node's parent [Window] is focused. This may be "
"a change of focus between two windows of the same engine instance, or from "
@@ -68343,6 +68528,15 @@ msgstr "所有 2D 演示"
msgid "Multiplies the current scale by the [param ratio] vector."
msgstr "将当前缩放乘以比例向量 [param ratio]。"
+msgid ""
+"Returns the angle between the node and the [param point] in radians.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"node2d_get_angle_to.png]Illustration of the returned angle.[/url]"
+msgstr ""
+"返回该节点和 [param point] 之间的夹角,单位为弧度。\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"node2d_get_angle_to.png]返回夹角的示意图。[/url]"
+
msgid "Returns the [Transform2D] relative to this node's parent."
msgstr "返回相对于此节点的父节点的 [Transform2D]。"
@@ -68457,47 +68651,12 @@ msgstr "局部 [Transform2D]。"
msgid "Most basic 3D game object, parent of all 3D-related nodes."
msgstr "最基本的 3D 游戏对象,所有 3D 相关节点的父类。"
-msgid ""
-"Most basic 3D game object, with a [Transform3D] and visibility settings. All "
-"other 3D game objects inherit from Node3D. Use [Node3D] as a parent node to "
-"move, scale, rotate and show/hide children in a 3D project.\n"
-"Affine operations (rotate, scale, translate) happen in parent's local "
-"coordinate system, unless the [Node3D] object is set as top-level. Affine "
-"operations in this coordinate system correspond to direct affine operations "
-"on the [Node3D]'s transform. The word local below refers to this coordinate "
-"system. The coordinate system that is attached to the [Node3D] object itself "
-"is referred to as object-local coordinate system.\n"
-"[b]Note:[/b] Unless otherwise specified, all methods that have angle "
-"parameters must have angles specified as [i]radians[/i]. To convert degrees "
-"to radians, use [method @GlobalScope.deg_to_rad].\n"
-"[b]Note:[/b] Be aware that \"Spatial\" nodes are now called \"Node3D\" "
-"starting with Godot 4. Any Godot 3.x references to \"Spatial\" nodes refer to "
-"\"Node3D\" in Godot 4."
-msgstr ""
-"最基本的 3D 游戏对象,具有 [Transform3D] 和可见性设置。所有其他的 3D 游戏对象"
-"都继承自 Node3D。在 3D 项目中,请使用 [Node3D] 作为父节点对子节点进行移动、缩"
-"放、旋转和显示/隐藏。\n"
-"除非该 [Node3D] 对象被设置为顶层,否则仿射操作(旋转、缩放、平移)会在父节点的"
-"本地坐标系中进行。在这个坐标系中的仿射操作对应于对 [Node3D] 变换的直接仿射运"
-"算。下文中的本地一词指的就是这个坐标系。附加到 [Node3D] 对象本身的坐标系被称为"
-"对象本地坐标系。\n"
-"[b]注意:[/b]除非另有规定,所有有角度参数的方法必须将角度指定为[i]弧度[/i]。请"
-"使用 [method @GlobalScope.deg_to_rad] 将度数转换为弧度。\n"
-"[b]注意:[/b]“Spatial”节点从 Godot 4 开始被称为“Node3D”。Godot 3.x 中指"
-"的“Spatial”节点在 Godot 4 中指的是“Node3D”。"
-
msgid "Introduction to 3D"
msgstr "3D 简介"
msgid "All 3D Demos"
msgstr "所有 3D 演示"
-msgid "Attach a gizmo to this [code]Node3D[/code]."
-msgstr "将小工具附加到该 [code]Node3D[/code] 上。"
-
-msgid "Clear all gizmos attached to this [code]Node3D[/code]."
-msgstr "清除附加于该 [code]Node3D[/code] 的所有小工具。"
-
msgid ""
"Clears subgizmo selection for this node in the editor. Useful when subgizmo "
"IDs become invalid after a property change."
@@ -68505,9 +68664,6 @@ msgstr ""
"在编辑器中,清除该节点的子小工具选择。在一个属性更改后,子小工具 ID 变得无效时"
"很有用。"
-msgid "Returns all the gizmos attached to this [code]Node3D[/code]."
-msgstr "返回附加到该 [code]Node3D[/code] 的所有小工具。"
-
msgid ""
"Returns the parent [Node3D], or an empty [Object] if no parent exists or "
"parent is not of type [Node3D]."
@@ -68665,9 +68821,6 @@ msgstr ""
"设置该节点是否通知其全局和局部变换的更改。[Node3D] 默认不会传播此属性,除非位"
"于编辑器上下文中,并且存在有效的小工具。"
-msgid "Set subgizmo selection for this node in the editor."
-msgstr "在编辑器中为该节点设置子小工具选择。"
-
msgid ""
"Enables rendering of this node. Changes [member visible] to [code]true[/code]."
msgstr "启用此节点的呈现。将 [member visible] 更改为 [code]true[/code]。"
@@ -68696,8 +68849,13 @@ msgid ""
"Changes the node's position by the given offset [Vector3] in local space."
msgstr "通过给定的局部空间偏移量 [Vector3] 改变该节点的位置。"
-msgid "Updates all the [Node3DGizmo]s attached to this node."
-msgstr "更新附加于该节点的所有 [Node3DGizmo]。"
+msgid "Direct access to the 3x3 basis of the [member transform] property."
+msgstr "直接访问 [member transform] 属性的 3x3 基。"
+
+msgid ""
+"Global basis of this node. This is equivalent to [code]global_transform."
+"basis[/code]."
+msgstr "这个节点的全局基。与 [code]global_transform.basis[/code] 等价。"
msgid ""
"Global position of this node. This is equivalent to [code]global_transform."
@@ -68737,6 +68895,29 @@ msgid ""
msgstr ""
"以一个 [Quaternion] 的形式访问该节点的旋转。该属性非常适合补间复杂的旋转。"
+msgid ""
+"Rotation part of the local transformation in radians, specified in terms of "
+"Euler angles. The angles construct a rotation in the order specified by the "
+"[member rotation_order] property.\n"
+"[b]Note:[/b] In the mathematical sense, rotation is a matrix and not a "
+"vector. The three Euler angles, which are the three independent parameters of "
+"the Euler-angle parametrization of the rotation matrix, are stored in a "
+"[Vector3] data structure not because the rotation is a vector, but only "
+"because [Vector3] exists as a convenient data-structure to store 3 floating-"
+"point numbers. Therefore, applying affine operations on the rotation "
+"\"vector\" is not meaningful.\n"
+"[b]Note:[/b] This property is edited in the inspector in degrees. If you want "
+"to use degrees in a script, use [member rotation_degrees]."
+msgstr ""
+"以弧度为单位的,局部变换的旋转部分,根据欧拉角指定。角度按照 [member "
+"rotation_order] 属性指定的顺序,构造一个旋转。\n"
+"[b]注意:[/b]在数学意义上,旋转是一个矩阵,而不是一个向量。三个欧拉角,即旋转"
+"矩阵的欧拉角参数化的三个独立参数,存储在一个 [Vector3] 数据结构中,并不是因为"
+"旋转是一个向量,而是因为 [Vector3] 是一个方便存储 3 个浮点数的数据结构。因此,"
+"对旋转“向量”,应用仿射操作是没有意义的。\n"
+"[b]注意:[/b]该属性在检查器中以度为单位进行编辑。如果要在脚本中使用度数,请使"
+"用 [member rotation_degrees]。"
+
msgid "Specify how rotation (and scale) will be presented in the editor."
msgstr "指定旋转(和缩放)在编辑器中的显示方式。"
@@ -68801,44 +68982,6 @@ msgstr ""
msgid "Emitted when node visibility changes."
msgstr "当节点可见性更改时触发。"
-msgid ""
-"Node3D nodes receives this notification when their global transform changes. "
-"This means that either the current or a parent node changed its transform.\n"
-"In order for [constant NOTIFICATION_TRANSFORM_CHANGED] to work, users first "
-"need to ask for it, with [method set_notify_transform]. The notification is "
-"also sent if the node is in the editor context and it has at least one valid "
-"gizmo."
-msgstr ""
-"Node3D 节点在自己的全局变换发生改变时,会收到这个通知。这意味着当前节点或者某"
-"个父节点的变换发生了改变。\n"
-"用户需要使用 [method set_notify_transform] 手动申请才能够收到 [constant "
-"NOTIFICATION_TRANSFORM_CHANGED]。如果该节点在编辑器环境中,并且拥有至少一个有"
-"效的小工具,则也会发送这个通知。"
-
-msgid ""
-"Node3D nodes receives this notification when they are registered to new "
-"[World3D] resource."
-msgstr "Node3D 节点在注册到新的 [World3D] 资源时,会收到这个通知。"
-
-msgid ""
-"Node3D nodes receives this notification when they are unregistered from "
-"current [World3D] resource."
-msgstr "Node3D 节点从当前的 [World3D] 资源中取消注册时,会收到这个通知。"
-
-msgid "Node3D nodes receives this notification when their visibility changes."
-msgstr "Node3D 节点在自己的可见性发生变化时,会收到这个通知。"
-
-msgid ""
-"Node3D nodes receives this notification when their local transform changes. "
-"This is not received when the transform of a parent node is changed.\n"
-"In order for [constant NOTIFICATION_LOCAL_TRANSFORM_CHANGED] to work, users "
-"first need to ask for it, with [method set_notify_local_transform]."
-msgstr ""
-"Node3D 节点在自己的局部变换发生改变时,会收到这个通知。父节点的变换发生改变时"
-"不会收到这个通知。\n"
-"用户需要使用 [method set_notify_local_transform] 手动申请才能够收到 [constant "
-"NOTIFICATION_LOCAL_TRANSFORM_CHANGED]。"
-
msgid "The rotation is edited using [Vector3] Euler angles."
msgstr "旋转量以 [Vector3] 欧拉角的形式编辑。"
@@ -69271,103 +69414,6 @@ msgstr ""
msgid "Base class for all other classes in the engine."
msgstr "引擎中所有其他类的基类。"
-msgid ""
-"An advanced [Variant] type. All classes in the engine inherit from Object. "
-"Each class may define new properties, methods or signals, which are available "
-"to all inheriting classes. For example, a [Sprite2D] instance is able to call "
-"[method Node.add_child] because it inherits from [Node].\n"
-"You can create new instances, using [code]Object.new()[/code] in GDScript, or "
-"[code]new Object[/code] in C#.\n"
-"To delete an Object instance, call [method free]. This is necessary for most "
-"classes inheriting Object, because they do not manage memory on their own, "
-"and will otherwise cause memory leaks when no longer in use. There are a few "
-"classes that perform memory management. For example, [RefCounted] (and by "
-"extension [Resource]) deletes itself when no longer referenced, and [Node] "
-"deletes its children when freed.\n"
-"Objects can have a [Script] attached to them. Once the [Script] is "
-"instantiated, it effectively acts as an extension to the base class, allowing "
-"it to define and inherit new properties, methods and signals.\n"
-"Inside a [Script], [method _get_property_list] may be overridden to customize "
-"properties in several ways. This allows them to be available to the editor, "
-"display as lists of options, sub-divide into groups, save on disk, etc. "
-"Scripting languages offer easier ways to customize properties, such as with "
-"the [annotation @GDScript.@export] annotation.\n"
-"Godot is very dynamic. An object's script, and therefore its properties, "
-"methods and signals, can be changed at run-time. Because of this, there can "
-"be occasions where, for example, a property required by a method may not "
-"exist. To prevent run-time errors, see methods such as [method set], [method "
-"get], [method call], [method has_method], [method has_signal], etc. Note that "
-"these methods are [b]much[/b] slower than direct references.\n"
-"In GDScript, you can also check if a given property, method, or signal name "
-"exists in an object with the [code]in[/code] operator:\n"
-"[codeblock]\n"
-"var node = Node.new()\n"
-"print(\"name\" in node) # Prints true\n"
-"print(\"get_parent\" in node) # Prints true\n"
-"print(\"tree_entered\" in node) # Prints true\n"
-"print(\"unknown\" in node) # Prints false\n"
-"[/codeblock]\n"
-"Notifications are [int] constants commonly sent and received by objects. For "
-"example, on every rendered frame, the [SceneTree] notifies nodes inside the "
-"tree with a [constant Node.NOTIFICATION_PROCESS]. The nodes receive it and "
-"may call [method Node._process] to update. To make use of notifications, see "
-"[method notification] and [method _notification].\n"
-"Lastly, every object can also contain metadata (data about data). [method "
-"set_meta] can be useful to store information that the object itself does not "
-"depend on. To keep your code clean, making excessive use of metadata is "
-"discouraged.\n"
-"[b]Note:[/b] Unlike references to a [RefCounted], references to an object "
-"stored in a variable can become invalid without being set to [code]null[/"
-"code]. To check if an object has been deleted, do [i]not[/i] compare it "
-"against [code]null[/code]. Instead, use [method @GlobalScope."
-"is_instance_valid]. It's also recommended to inherit from [RefCounted] for "
-"classes storing data instead of [Object].\n"
-"[b]Note:[/b] The [code]script[/code] is not exposed like most properties. To "
-"set or get an object's [Script] in code, use [method set_script] and [method "
-"get_script], respectively."
-msgstr ""
-"一种高级的 [Variant] 类型。引擎中的所有类都继承自 Object。每个类都可以定义新的"
-"属性、方法或信号,并且这些对所有继承的类都可用。例如,一个 [Sprite2D] 实例能够"
-"调用 [method Node.add_child] 因为它继承自 [Node]。\n"
-"可以使用 GDScript 中的 [code]Object.new()[/code] 或 C# 中的 [code]new Object[/"
-"code] 来创建新实例。\n"
-"要删除一个 Object 实例,请调用 [method free]。这对于大多数继承 Object 的类来说"
-"是必须的,因为它们本身并不管理内存,如果不调用该方法的话,在不再使用时会造成内"
-"存泄漏。有几个类会执行内存管理。例如,[RefCounted](以及扩展的 [Resource])在"
-"不再被引用时删除自身,而 [Node] 在释放时会删除其子节点。\n"
-"对象可以附加一个 [Script]。一旦该 [Script] 被实例化,它就有效地充当了基类的扩"
-"展,允许它定义和继承新的属性、方法和信号。\n"
-"在 [Script] 中,[method _get_property_list] 可以被可以重写,以通过多种方式自定"
-"义属性。这允许它们对编辑器可用,显示为选项列表,细分为组,保存在磁盘上,等等。"
-"脚本语言提供更简单的方式来自定义属性,例如使用 [annotation @GDScript.@export] "
-"注解。\n"
-"Godot 是非常动态的。一个对象的脚本,以及它的属性、方法和信号,都可以在运行时改"
-"变。正因为如此,可能会出现这样的情况,例如,一个方法所需的属性可能不存在。为了"
-"防止运行时出错,可以参考 [method set]、[method get]、[method call]、[method "
-"has_method]、[method has_signal] 等方法。请注意,这些方法比直接引用慢[b]得多[/"
-"b]。\n"
-"在 GDScript 中,还可以使用 [code]in[/code] 运算符来检查对象中是否存在给定的属"
-"性、方法或信号名称:\n"
-"[codeblock]\n"
-"var node = Node.new()\n"
-"print(\"name\" in node) # 输出 true\n"
-"print(\"get_parent\" in node) # 输出 true\n"
-"print(\"tree_entered\" in node) # 输出 true\n"
-"print(\"unknown\" in node) # 输出 false\n"
-"[/codeblock]\n"
-"通知是 [int] 常量,通常由对象发送和接收。例如,在每个渲染帧上,[SceneTree] 使"
-"用 [constant Node.NOTIFICATION_PROCESS] 通知树内的节点。节点收到它后,可以调"
-"用 [method Node._process] 进行更新。要使用通知,请参阅 [method notification] "
-"和 [method _notification]。\n"
-"最后,每个对象还可以包含元数据(关于数据的数据)。[method set_meta] 可用于存储"
-"对象本身不依赖的信息。为了保持代码整洁,不鼓励过度使用元数据。\n"
-"[b]注意:[/b]与对 [RefCounted] 的引用不同,对存储在变量中的对象的引用,可能会"
-"在未被设置为 [code]null[/code] 的情况下变得无效。要检查对象是否已被删除,请[i]"
-"不要[/i]将其与 [code]null[/code] 进行比较。而是使用 [method @GlobalScope."
-"is_instance_valid]。存储数据的类,建议从 [RefCounted] 继承而不是 [Object]。\n"
-"[b]注意:[/b][code]script[/code] 不像大多数属性那样公开。要在代码中设置或获取"
-"一个对象的 [Script],请分别使用 [method set_script] 和 [method get_script]。"
-
msgid "Object class introduction"
msgstr "Object 类介绍"
@@ -69555,23 +69601,6 @@ msgstr ""
"[b]注意:[/b]如果该对象的脚本不是 [annotation @GDScript.@tool],则该方法在编辑"
"器中不会被调用。"
-msgid ""
-"Called when the object's script is instantiated, oftentimes after the object "
-"is initialized in memory (through [code]Object.new()[/code] in GDScript, or "
-"[code]new Object[/code] in C#). It can be also defined to take in parameters. "
-"This method is similar to a constructor in most programming languages.\n"
-"[b]Note:[/b] If [method _init] is defined with [i]required[/i] parameters, "
-"the Object with script may only be created directly. If any other means (such "
-"as [method PackedScene.instantiate] or [method Node.duplicate]) are used, the "
-"script's initialization will fail."
-msgstr ""
-"实例化对象的脚本时调用,通常是在对象在内存中初始化之后(通过 GDScript 中的 "
-"[code]Object.new()[/code] 或 C# 中的 [code]new Object[/code])。也可以将其定义"
-"为接受参数的形式。该方法类似于大多数编程语言中的构造函数。\n"
-"[b]注意:[/b]如果为 [method _init] 定义了[i]必填的[/i]参数,则带脚本的 Object "
-"只能直接创建。使用任何其他方式(例如 [method PackedScene.instantiate] 或 "
-"[method Node.duplicate])创建时,该脚本的初始化都将失败。"
-
msgid ""
"Called when the object receives a notification, which can be identified in "
"[param what] by comparing it with a constant. See also [method "
@@ -69887,335 +69916,6 @@ msgstr ""
"保持已分配的状态。主要是作为内部函数使用,用于错误处理,避免用户释放不想释放的"
"对象。"
-msgid ""
-"Connects a [param signal] by name to a [param callable]. Optional [param "
-"flags] can be also added to configure the connection's behavior (see [enum "
-"ConnectFlags] constants).\n"
-"A signal can only be connected once to the same [Callable]. If the signal is "
-"already connected, this method returns [constant ERR_INVALID_PARAMETER] and "
-"pushes an error message, unless the signal is connected with [constant "
-"CONNECT_REFERENCE_COUNTED]. To prevent this, use [method is_connected] first "
-"to check for existing connections.\n"
-"If the [param callable]'s object is freed, the connection will be lost.\n"
-"[b]Examples with recommended syntax:[/b]\n"
-"Connecting signals is one of the most common operations in Godot and the API "
-"gives many options to do so, which are described further down. The code block "
-"below shows the recommended approach.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" var button = Button.new()\n"
-" # `button_down` here is a Signal variant type, and we thus call the "
-"Signal.connect() method, not Object.connect().\n"
-" # See discussion below for a more in-depth overview of the API.\n"
-" button.button_down.connect(_on_button_down)\n"
-"\n"
-" # This assumes that a `Player` class exists, which defines a `hit` "
-"signal.\n"
-" var player = Player.new()\n"
-" # We use Signal.connect() again, and we also use the Callable.bind() "
-"method,\n"
-" # which returns a new Callable with the parameter binds.\n"
-" player.hit.connect(_on_player_hit.bind(\"sword\", 100))\n"
-"\n"
-"func _on_button_down():\n"
-" print(\"Button down!\")\n"
-"\n"
-"func _on_player_hit(weapon_type, damage):\n"
-" print(\"Hit with weapon %s for %d damage.\" % [weapon_type, damage])\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" var button = new Button();\n"
-" // C# supports passing signals as events, so we can use this idiomatic "
-"construct:\n"
-" button.ButtonDown += OnButtonDown;\n"
-"\n"
-" // This assumes that a `Player` class exists, which defines a `Hit` "
-"signal.\n"
-" var player = new Player();\n"
-" // We can use lambdas when we need to bind additional parameters.\n"
-" player.Hit += () => OnPlayerHit(\"sword\", 100);\n"
-"}\n"
-"\n"
-"private void OnButtonDown()\n"
-"{\n"
-" GD.Print(\"Button down!\");\n"
-"}\n"
-"\n"
-"private void OnPlayerHit(string weaponType, int damage)\n"
-"{\n"
-" GD.Print($\"Hit with weapon {weaponType} for {damage} damage.\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b][code]Object.connect()[/code] or [code]Signal.connect()[/code]?[/b]\n"
-"As seen above, the recommended method to connect signals is not [method "
-"Object.connect]. The code block below shows the four options for connecting "
-"signals, using either this legacy method or the recommended [method Signal."
-"connect], and using either an implicit [Callable] or a manually defined one.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" var button = Button.new()\n"
-" # Option 1: Object.connect() with an implicit Callable for the defined "
-"function.\n"
-" button.connect(\"button_down\", _on_button_down)\n"
-" # Option 2: Object.connect() with a constructed Callable using a target "
-"object and method name.\n"
-" button.connect(\"button_down\", Callable(self, \"_on_button_down\"))\n"
-" # Option 3: Signal.connect() with an implicit Callable for the defined "
-"function.\n"
-" button.button_down.connect(_on_button_down)\n"
-" # Option 4: Signal.connect() with a constructed Callable using a target "
-"object and method name.\n"
-" button.button_down.connect(Callable(self, \"_on_button_down\"))\n"
-"\n"
-"func _on_button_down():\n"
-" print(\"Button down!\")\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" var button = new Button();\n"
-" // Option 1: In C#, we can use signals as events and connect with this "
-"idiomatic syntax:\n"
-" button.ButtonDown += OnButtonDown;\n"
-" // Option 2: GodotObject.Connect() with a constructed Callable from a "
-"method group.\n"
-" button.Connect(Button.SignalName.ButtonDown, Callable."
-"From(OnButtonDown));\n"
-" // Option 3: GodotObject.Connect() with a constructed Callable using a "
-"target object and method name.\n"
-" button.Connect(Button.SignalName.ButtonDown, new Callable(this, "
-"MethodName.OnButtonDown));\n"
-"}\n"
-"\n"
-"private void OnButtonDown()\n"
-"{\n"
-" GD.Print(\"Button down!\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"While all options have the same outcome ([code]button[/code]'s [signal "
-"BaseButton.button_down] signal will be connected to [code]_on_button_down[/"
-"code]), [b]option 3[/b] offers the best validation: it will print a compile-"
-"time error if either the [code]button_down[/code] [Signal] or the "
-"[code]_on_button_down[/code] [Callable] are not defined. On the other hand, "
-"[b]option 2[/b] only relies on string names and will only be able to validate "
-"either names at runtime: it will print a runtime error if "
-"[code]\"button_down\"[/code] doesn't correspond to a signal, or if "
-"[code]\"_on_button_down\"[/code] is not a registered method in the object "
-"[code]self[/code]. The main reason for using options 1, 2, or 4 would be if "
-"you actually need to use strings (e.g. to connect signals programmatically "
-"based on strings read from a configuration file). Otherwise, option 3 is the "
-"recommended (and fastest) method.\n"
-"[b]Binding and passing parameters:[/b]\n"
-"The syntax to bind parameters is through [method Callable.bind], which "
-"returns a copy of the [Callable] with its parameters bound.\n"
-"When calling [method emit_signal], the signal parameters can be also passed. "
-"The examples below show the relationship between these signal parameters and "
-"bound parameters.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" # This assumes that a `Player` class exists, which defines a `hit` "
-"signal.\n"
-" var player = Player.new()\n"
-" # Using Callable.bind().\n"
-" player.hit.connect(_on_player_hit.bind(\"sword\", 100))\n"
-"\n"
-" # Parameters added when emitting the signal are passed first.\n"
-" player.emit_signal(\"hit\", \"Dark lord\", 5)\n"
-"\n"
-"# We pass two arguments when emitting (`hit_by`, `level`),\n"
-"# and bind two more arguments when connecting (`weapon_type`, `damage`).\n"
-"func _on_player_hit(hit_by, level, weapon_type, damage):\n"
-" print(\"Hit by %s (level %d) with weapon %s for %d damage.\" % [hit_by, "
-"level, weapon_type, damage])\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" // This assumes that a `Player` class exists, which defines a `Hit` "
-"signal.\n"
-" var player = new Player();\n"
-" // Using lambda expressions that create a closure that captures the "
-"additional parameters.\n"
-" // The lambda only receives the parameters defined by the signal's "
-"delegate.\n"
-" player.Hit += (hitBy, level) => OnPlayerHit(hitBy, level, \"sword\", "
-"100);\n"
-"\n"
-" // Parameters added when emitting the signal are passed first.\n"
-" player.EmitSignal(SignalName.Hit, \"Dark lord\", 5);\n"
-"}\n"
-"\n"
-"// We pass two arguments when emitting (`hit_by`, `level`),\n"
-"// and bind two more arguments when connecting (`weapon_type`, `damage`).\n"
-"private void OnPlayerHit(string hitBy, int level, string weaponType, int "
-"damage)\n"
-"{\n"
-" GD.Print($\"Hit by {hitBy} (level {level}) with weapon {weaponType} for "
-"{damage} damage.\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-msgstr ""
-"按名称将 [param signal] 连接到 [param callable]。还可以添加可选的 [param "
-"flags] 来配置该连接的行为(请参阅 [enum ConnectFlags] 常量)。\n"
-"一个信号只能连接到同一个 [Callable] 一次。如果该信号已经连接,除非该信号是使"
-"用 [constant CONNECT_REFERENCE_COUNTED] 连接的,否则该方法会返回 [constant "
-"ERR_INVALID_PARAMETER] 并推送一条错误消息。为防止这种情况,请首先使用 [method "
-"is_connected] 检查已存在的连接。\n"
-"如果 [param callable] 的对象被释放,则该连接将会丢失。\n"
-"[b]推荐语法的示例:[/b]\n"
-"连接信号是 Godot 中最常见的操作之一,API 提供了许多这样做的选项,这些选项将在"
-"下面进一步介绍。下面的代码块显示了推荐的方法。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" var button = Button.new()\n"
-" # 这里的 `button_down` 是一个 Signal 变体类型,因此我们调用 Signal."
-"connect() 方法,而不是 Object.connect()。\n"
-" # 请参阅下面的讨论以更深入地了解该 API。\n"
-" button.button_down.connect(_on_button_down)\n"
-"\n"
-" # 这假设存在一个“Player”类,它定义了一个“hit”信号。\n"
-" var player = Player.new()\n"
-" # 我们再次使用 Signal.connect() ,并且我们还使用了 Callable.bind() 方"
-"法,\n"
-" # 它返回一个带有参数绑定的新 Callable。\n"
-" player.hit.connect(_on_player_hit.bind(\"剑\", 100))\n"
-"\n"
-"func _on_button_down():\n"
-" print(\"按钮按下!\")\n"
-"\n"
-"func _on_player_hit(weapon_type, damage):\n"
-" print(\"用武器 %s 击中,造成 %d 伤害。\" % [weapon_type, damage])\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" var button = new Button();\n"
-" // C# 支持将信号作为事件传递,因此我们可以使用这个惯用的构造:\n"
-" button.ButtonDown += OnButtonDown;\n"
-"\n"
-" // 这假设存在一个“Player”类,它定义了一个“Hit”信号。\n"
-" var player = new Player();\n"
-" // 当我们需要绑定额外的参数时,我们可以使用 Lambda 表达式。\n"
-" player.Hit += () => OnPlayerHit(\"剑\", 100);\n"
-"}\n"
-"\n"
-"private void OnButtonDown()\n"
-"{\n"
-" GD.Print(\"按钮按下!\");\n"
-"}\n"
-"\n"
-"private void OnPlayerHit(string weaponType, int damage)\n"
-"{\n"
-" GD.Print($\"用武器 {weaponType} 击中,造成 {damage} 伤害。\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b][code]Object.connect()[/code] 还是 [code]Signal.connect()[/code]?[/b]\n"
-"如上所示,推荐的连接信号的方法不是 [method Object.connect]。下面的代码块显示了"
-"连接信号的四个选项,使用该传统方法或推荐的 [method Signal.connect],并使用一个"
-"隐式的 [Callable] 或手动定义的 [Callable]。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" var button = Button.new()\n"
-" # 选项 1:Object.connect() 并使用已定义的函数的隐式 Callable。\n"
-" button.connect(\"button_down\", _on_button_down)\n"
-" # 选项 2:Object.connect() 并使用由目标对象和方法名称构造的 Callable。\n"
-" button.connect(\"button_down\", Callable(self, \"_on_button_down\"))\n"
-" # 选项 3:Signal.connect() 并使用已定义的函数的隐式 Callable。\n"
-" button.button_down.connect(_on_button_down)\n"
-" # 选项 4:Signal.connect() 并使用由目标对象和方法名称构造的 Callable。\n"
-" button.button_down.connect(Callable(self, \"_on_button_down\"))\n"
-"\n"
-"func _on_button_down():\n"
-" print(\"按钮按下!\")\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" var button = new Button();\n"
-" // 选项 1:在 C# 中,我们可以将信号用作事件并使用以下惯用语法进行连接:\n"
-" button.ButtonDown += OnButtonDown;\n"
-" // 选项 2:GodotObject.Connect() 并使用从方法组构造的 Callable。\n"
-" button.Connect(Button.SignalName.ButtonDown, Callable."
-"From(OnButtonDown));\n"
-" // 选项 3:GodotObject.Connect() 并使用由目标对象和方法名称构造的 "
-"Callable。\n"
-" button.Connect(Button.SignalName.ButtonDown, new Callable(this, "
-"MethodName.OnButtonDown));\n"
-"}\n"
-"\n"
-"private void OnButtonDown()\n"
-"{\n"
-" GD.Print(\"按钮按下!\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"虽然所有选项都有相同的结果([code]button[/code] 的 [signal BaseButton."
-"button_down] 信号将被连接到 [code]_on_button_down[/code]),但[b]选项 3[/b] 提"
-"供了最好的验证:如果 [code]button_down[/code] [Signal] 或 "
-"[code]_on_button_down[/code] [Callable] 没有被定义,它将打印一个编译时错误。另"
-"一方面,[b]选项 2[/b] 只依赖于字符串名称,并且只能在运行时验证这两个名称:如"
-"果 [code]\"button_down\"[/code] 不对应于一个信号,或者如果 "
-"[code]\"_on_button_down\"[/code] 不是对象 [code]self[/code] 中的注册方法,它将"
-"打印一个运行时错误。使用选项 1、2 或 4 的主要原因,是你是否确实需要使用字符串"
-"(例如,根据从配置文件读取的字符串,以编程的方式连接信号)。否则,选项 3 是推"
-"荐的(也是最快的)方法。\n"
-"[b]绑定和传递参数:[/b]\n"
-"绑定参数的语法是通过 [method Callable.bind],它返回一个绑定了参数的 "
-"[Callable] 的副本。\n"
-"当调用 [method emit_signal] 时,信号参数也可以被传递。下面的示例显示了这些信号"
-"参数和绑定参数之间的关系。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"func _ready():\n"
-" # 这假设存在一个 `Player` 类,它定义了一个 `hit` 信号。\n"
-" var player = Player.new()\n"
-" # 使用 Callable.bind()。\n"
-" player.hit.connect(_on_player_hit.bind(\"剑\", 100))\n"
-"\n"
-" # 发出信号时添加的参数首先被传递。\n"
-" player.emit_signal(\"hit\", \"黑暗领主\", 5)\n"
-"\n"
-"# 我们在发出时传递两个参数(`hit_by`,`level`),\n"
-"# 并在连接时再绑定两个参数(`weapon_type`、`damage`)。\n"
-"func _on_player_hit(hit_by, level, weapon_type, damage):\n"
-" print(\"被 %s(等级 %d)用武器 %s 击中,造成 %d 伤害。\" % [hit_by, "
-"level, weapon_type, damage])\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"public override void _Ready()\n"
-"{\n"
-" // 这假设存在一个 `Player` 类,它定义了一个 `Hit` 信号。\n"
-" var player = new Player();\n"
-" // 使用 lambda 表达式创建一个闭包来捕获额外的参数。\n"
-" // lambda 仅接收由信号委托定义的参数。\n"
-" player.Hit += (hitBy, level) => OnPlayerHit(hitBy, level, \"剑\", 100);\n"
-"\n"
-" // 发出信号时添加的参数首先被传递。\n"
-" player.EmitSignal(SignalName.Hit, \"黑暗领主\", 5);\n"
-"}\n"
-"\n"
-"// 我们在发出时传递两个参数(`hit_by`,`level`),\n"
-"// 并在连接时再绑定两个参数(`weapon_type`、`damage`)。\n"
-"private void OnPlayerHit(string hitBy, int level, string weaponType, int "
-"damage)\n"
-"{\n"
-" GD.Print($\"被 {hitBy}(等级 {level})用武器 {weaponType} 击中,造成 "
-"{damage} 伤害。\");\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-
msgid ""
"Disconnects a [param signal] by name from a given [param callable]. If the "
"connection does not exist, generates an error. Use [method is_connected] to "
@@ -70433,19 +70133,6 @@ msgid ""
msgstr ""
"返回该对象的 [Script] 实例,如果没有附加脚本,则返回 [code]null[/code]。"
-msgid ""
-"Returns an [Array] of connections for the given [param signal] name. Each "
-"connection is represented as a [Dictionary] that contains three entries:\n"
-"- [code]signal[/code] is a reference to the [Signal];\n"
-"- [code]callable[/code] is a reference to the connected [Callable];\n"
-"- [code]flags[/code] is a combination of [enum ConnectFlags]."
-msgstr ""
-"返回给定 [param signal] 名称的连接的 [Array]。每个连接都被表示为包含三个条目"
-"的 [Dictionary]:\n"
-"- [code]signal[/code] 是对 [Signal] 的引用;\n"
-"- [code]callable[/code] 是对已连接 [Callable] 的引用;\n"
-"- [code]flags[/code] 是 [enum ConnectFlags] 的组合。"
-
msgid ""
"Returns the list of existing signals as an [Array] of dictionaries.\n"
"[b]Note:[/b] Due of the implementation, each [Dictionary] is formatted very "
@@ -70939,6 +70626,61 @@ msgid ""
"areas."
msgstr "为 3D 节点提供遮挡剔除,可以提高封闭区域的性能。"
+msgid ""
+"Occlusion culling can improve rendering performance in closed/semi-open areas "
+"by hiding geometry that is occluded by other objects.\n"
+"The occlusion culling system is mostly static. [OccluderInstance3D]s can be "
+"moved or hidden at run-time, but doing so will trigger a background "
+"recomputation that can take several frames. It is recommended to only move "
+"[OccluderInstance3D]s sporadically (e.g. for procedural generation purposes), "
+"rather than doing so every frame.\n"
+"The occlusion culling system works by rendering the occluders on the CPU in "
+"parallel using [url=https://www.embree.org/]Embree[/url], drawing the result "
+"to a low-resolution buffer then using this to cull 3D nodes individually. In "
+"the 3D editor, you can preview the occlusion culling buffer by choosing "
+"[b]Perspective > Debug Advanced... > Occlusion Culling Buffer[/b] in the top-"
+"left corner of the 3D viewport. The occlusion culling buffer quality can be "
+"adjusted in the Project Settings.\n"
+"[b]Baking:[/b] Select an [OccluderInstance3D] node, then use the [b]Bake "
+"Occluders[/b] button at the top of the 3D editor. Only opaque materials will "
+"be taken into account; transparent materials (alpha-blended or alpha-tested) "
+"will be ignored by the occluder generation.\n"
+"[b]Note:[/b] Occlusion culling is only effective if [member ProjectSettings."
+"rendering/occlusion_culling/use_occlusion_culling] is [code]true[/code]. "
+"Enabling occlusion culling has a cost on the CPU. Only enable occlusion "
+"culling if you actually plan to use it. Large open scenes with few or no "
+"objects blocking the view will generally not benefit much from occlusion "
+"culling. Large open scenes generally benefit more from mesh LOD and "
+"visibility ranges ([member GeometryInstance3D.visibility_range_begin] and "
+"[member GeometryInstance3D.visibility_range_end]) compared to occlusion "
+"culling.\n"
+"[b]Note:[/b] Due to memory constraints, occlusion culling is not supported by "
+"default in Web export templates. It can be enabled by compiling custom Web "
+"export templates with [code]module_raycast_enabled=yes[/code]."
+msgstr ""
+"遮挡剔除可以通过隐藏被其他对象遮挡的几何体,来提高封闭/半开放区域的渲染性"
+"能。\n"
+"遮挡剔除系统大多是静态的。[OccluderInstance3D] 可以在运行时移动或隐藏,但这样"
+"做会触发可能需要几帧的背景重新计算。建议仅偶尔移动 [OccluderInstance3D](例"
+"如,出于程序生成目的),而不是每帧都这样做。\n"
+"遮挡剔除系统的工作原理是,使用 [url=https://www.embree.org/]Embree[/url] 在 "
+"CPU 上并行渲染遮挡物,将结果绘制到一个低分辨率缓冲区,然后使用它来单独剔除 3D "
+"的节点。在 3D 编辑器中,可以通过选择 3D 视口左上角的[b]透视图 > 高级调试... > "
+"遮挡剔除缓冲区[/b],来预览遮挡剔除缓冲区。可以在项目设置中调整遮挡剔除缓冲区的"
+"质量。\n"
+"[b]烘焙:[/b]选择一个 [OccluderInstance3D] 节点,然后使用 3D 编辑器顶部的[b]烘"
+"焙遮挡物[/b]按钮。只考虑不透明的材质;遮挡器生成将忽略透明材质(alpha 混合或 "
+"alpha 测试)。\n"
+"[b]注意:[/b]遮挡剔除只有在 [member ProjectSettings.rendering/"
+"occlusion_culling/use_occlusion_culling] 为 [code]true[/code] 时才有效。启用遮"
+"挡剔除会消耗一定的 CPU。仅当确实打算使用遮挡剔除时才启用它。具有很少或没有物"
+"体,将阻挡视口的大型开放场景,通常不会从遮挡剔除中受益更多。与遮挡剔除相比,大"
+"型开放场景通常从网格 LOD 和可见性范围([member GeometryInstance3D."
+"visibility_range_begin] 和 [member GeometryInstance3D.visibility_range_end])"
+"中受益更多。\n"
+"[b]注意:[/b]由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导"
+"出模板时使用 [code]module_raycast_enabled=yes[/code] 可以启用。"
+
msgid ""
"The visual layers to account for when baking for occluders. Only "
"[MeshInstance3D]s whose [member VisualInstance3D.layers] match with this "
@@ -71322,6 +71064,58 @@ msgstr "该动作集的本地化名称。"
msgid "The priority for this action set."
msgstr "该动作集的优先级。"
+msgid "Makes the OpenXR API available for GDExtension."
+msgstr "为 GDExtension 提供 OpenXR API。"
+
+msgid "XrResult documentation"
+msgstr "XrResult 文档"
+
+msgid "XrInstance documentation"
+msgstr "XrInstance 文档"
+
+msgid "XrSpace documentation"
+msgstr "XrSpace 文档"
+
+msgid "XrSession documentation"
+msgstr "XrSession 文档"
+
+msgid "XrSystemId documentation"
+msgstr "XrSystemId 文档"
+
+msgid "xrBeginSession documentation"
+msgstr "xrBeginSession 文档"
+
+msgid "XrPosef documentation"
+msgstr "XrPosef 文档"
+
+msgid ""
+"Returns an error string for the given [url=https://registry.khronos.org/"
+"OpenXR/specs/1.0/man/html/XrResult.html]XrResult[/url]."
+msgstr ""
+"返回给定 [url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrResult."
+"html]XrResult[/url] 对应的错误字符串。"
+
+msgid ""
+"Returns the [url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/"
+"XrInstance.html]XrInstance[/url] created during the initialization of the "
+"OpenXR API."
+msgstr ""
+"返回 OpenXR API 初始化过程中创建的 [url=https://registry.khronos.org/OpenXR/"
+"specs/1.0/man/html/XrInstance.html]XrInstance[/url]。"
+
+msgid "Returns [code]true[/code] if OpenXR is initialized."
+msgstr "如果 OpenXR 已初始化,则返回 [code]true[/code]。"
+
+msgid "Returns [code]true[/code] if OpenXR is enabled."
+msgstr "如果启用 OpenXR,则返回 [code]true[/code]。"
+
+msgid ""
+"Creates a [Transform3D] from an [url=https://registry.khronos.org/OpenXR/"
+"specs/1.0/man/html/XrPosef.html]XrPosef[/url]."
+msgstr ""
+"从 [url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrPosef."
+"html]XrPosef[/url] 创建一个 [Transform3D] 。"
+
msgid "Node supporting finger tracking in OpenXR."
msgstr "在 OpenXR 中提供手指跟踪的节点。"
@@ -71451,6 +71245,90 @@ msgid ""
"Informs our OpenXR session is now visible (output is being sent to the HMD)."
msgstr "通知我们的 OpenXR 会话现在可见(输出正在发送到 HMD)。"
+msgid "Left hand."
+msgstr "左手。"
+
+msgid "Right hand."
+msgstr "右手。"
+
+msgid "Palm joint."
+msgstr "掌关节。"
+
+msgid "Wrist joint."
+msgstr "腕关节。"
+
+msgid "Thumb metacarpal joint."
+msgstr "掌骨拇指关节。"
+
+msgid "Thumb proximal joint."
+msgstr "拇指近端关节。"
+
+msgid "Thumb distal joint."
+msgstr "拇指远端关节。"
+
+msgid "Thumb tip joint."
+msgstr "拇指尖端关节。"
+
+msgid "Index metacarpal joint."
+msgstr "掌骨食指关节。"
+
+msgid "Index proximal joint."
+msgstr "食指近端关节。"
+
+msgid "Index intermediate joint."
+msgstr "食指中间关节。"
+
+msgid "Index distal joint."
+msgstr "食指远端关节。"
+
+msgid "Index tip joint."
+msgstr "食指尖端关节。"
+
+msgid "Middle metacarpal joint."
+msgstr "掌骨中指关节。"
+
+msgid "Middle proximal joint."
+msgstr "中指近端关节。"
+
+msgid "Middle intermediate joint."
+msgstr "中指中间关节。"
+
+msgid "Middle distal joint."
+msgstr "中指远端关节。"
+
+msgid "Middle tip joint."
+msgstr "中指尖端关节。"
+
+msgid "Ring metacarpal joint."
+msgstr "环指掌骨关节。"
+
+msgid "Ring proximal joint."
+msgstr "环指近端关节。"
+
+msgid "Ring intermediate joint."
+msgstr "环指中间关节。"
+
+msgid "Ring distal joint."
+msgstr "环指远端关节。"
+
+msgid "Ring tip joint."
+msgstr "环指尖端关节。"
+
+msgid "Little metacarpal joint."
+msgstr "掌骨小指关节。"
+
+msgid "Little proximal joint."
+msgstr "小指近端关节。"
+
+msgid "Little intermediate joint."
+msgstr "小指中间关节。"
+
+msgid "Little distal joint."
+msgstr "小指远端关节。"
+
+msgid "Little tip joint."
+msgstr "小指尖端关节。"
+
msgid "Defines a binding between an [OpenXRAction] and an XR input or output."
msgstr "定义 [OpenXRAction] 和 XR 输入或输出之间的绑定。"
@@ -72190,36 +72068,6 @@ msgstr ""
"另见 [member InputEventKey.keycode] 和 [method InputEventKey."
"get_keycode_with_modifiers]。"
-msgid ""
-"Returns the host OS locale as a string of the form "
-"[code]language_Script_COUNTRY_VARIANT@extra[/code]. If you want only the "
-"language code and not the fully specified locale from the OS, you can use "
-"[method get_locale_language].\n"
-"[code]language[/code] - 2 or 3-letter [url=https://en.wikipedia.org/wiki/"
-"List_of_ISO_639-1_codes]language code[/url], in lower case.\n"
-"[code]Script[/code] - optional, 4-letter [url=https://en.wikipedia.org/wiki/"
-"ISO_15924]script code[/url], in title case.\n"
-"[code]COUNTRY[/code] - optional, 2 or 3-letter [url=https://en.wikipedia.org/"
-"wiki/ISO_3166-1]country code[/url], in upper case.\n"
-"[code]VARIANT[/code] - optional, language variant, region and sort order. "
-"Variant can have any number of underscored keywords.\n"
-"[code]extra[/code] - optional, semicolon separated list of additional key "
-"words. Currency, calendar, sort order and numbering system information."
-msgstr ""
-"将主机操作系统区域设置为 [code]language_Script_COUNTRY_VARIANT@extra[/code] 形"
-"式的字符串。如果你只想要语言代码而不是操作系统中完全指定的语言环境,可以使用 "
-"[method get_locale_language]。\n"
-"[code]language[/code] - 2 个或 3 个字母的[url=https://en.wikipedia.org/wiki/"
-"List_of_ISO_639-1_codes]语言代码[/url],小写。\n"
-"[code]Script[/code] - 可选,4 个字母的[url=https://en.wikipedia.org/wiki/"
-"ISO_15924]文字代码[/url],首字母大写。\n"
-"[code]COUNTRY[/code] - 可选,2 个或 3 个字母的[url=https://en.wikipedia.org/"
-"wiki/ISO_3166-1]国家地区代码[/url],大写。\n"
-"[code]VARIANT[/code] - 可选,语言变体,地区和排序顺序。变体可以有任意数量的带"
-"下划线的关键字。\n"
-"[code]extra[/code] - 可选,分号分隔的附加关键字列表。货币、日历、排序顺序和编"
-"号系统信息。"
-
msgid ""
"Returns the host OS locale's 2 or 3-letter [url=https://en.wikipedia.org/wiki/"
"List_of_ISO_639-1_codes]language code[/url] as a string which should be "
@@ -72462,28 +72310,6 @@ msgstr ""
"[b]注意:[/b]请仔细检查 [param variable] 的大小写。环境变量名称在除 Windows 之"
"外的所有平台上都区分大小写。"
-msgid ""
-"Returns [code]true[/code] if the feature for the given feature tag is "
-"supported in the currently running instance, depending on the platform, "
-"build, etc. Can be used to check whether you're currently running a debug "
-"build, on a certain platform or arch, etc. Refer to the [url=$DOCS_URL/"
-"tutorials/export/feature_tags.html]Feature Tags[/url] documentation for more "
-"details.\n"
-"[b]Note:[/b] Tag names are case-sensitive.\n"
-"[b]Note:[/b] On the web platform, one of the following additional tags is "
-"defined to indicate host platform: [code]web_android[/code], [code]web_ios[/"
-"code], [code]web_linuxbsd[/code], [code]web_macos[/code], or "
-"[code]web_windows[/code]."
-msgstr ""
-"如果当前运行的实例支持给定功能标签的功能,则返回 [code]true[/code],具体取决于"
-"平台、构建等。可用于检查当前是否正在运行调试构建,是否在某个平台或架构上,等"
-"等。请参阅[url=$DOCS_URL/tutorials/export/feature_tags.html]《功能标签》[/url]"
-"文档以了解更多详细信息。\n"
-"[b]注意:[/b]标签名称区分大小写。\n"
-"[b]注意:[/b]在 Web 平台上,会定义 [code]web_android[/code]、[code]web_ios[/"
-"code]、[code]web_linuxbsd[/code]、[code]web_macos[/code]、[code]web_windows[/"
-"code] 的其中之一,表示宿主平台。"
-
msgid ""
"Returns [code]true[/code] if the Godot binary used to run the project is a "
"[i]debug[/i] export template, or when running in the editor.\n"
@@ -72972,30 +72798,6 @@ msgstr ""
"返回新的 [PackedByteArray],其中的数据已解压。请将 [param buffer_size] 设置为"
"数据解压后的大小。请将压缩模式设置为 [enum FileAccess.CompressionMode] 常量。"
-msgid ""
-"Returns a new [PackedByteArray] with the data decompressed. Set the "
-"compression mode using one of [enum FileAccess.CompressionMode]'s constants. "
-"[b]This method only accepts brotli, gzip, and deflate compression modes.[/b]\n"
-"This method is potentially slower than [code]decompress[/code], as it may "
-"have to re-allocate its output buffer multiple times while decompressing, "
-"whereas [code]decompress[/code] knows it's output buffer size from the "
-"beginning.\n"
-"GZIP has a maximal compression ratio of 1032:1, meaning it's very possible "
-"for a small compressed payload to decompress to a potentially very large "
-"output. To guard against this, you may provide a maximum size this function "
-"is allowed to allocate in bytes via [param max_output_size]. Passing -1 will "
-"allow for unbounded output. If any positive value is passed, and the "
-"decompression exceeds that amount in bytes, then an error will be returned."
-msgstr ""
-"返回新的 [PackedByteArray],其中的数据已解压。请将压缩模式设置为 [enum "
-"FileAccess.CompressionMode] 常量。[b]这个方法只接受 brotli、gzip 和 deflate 压"
-"缩模式。[/b]\n"
-"这个方法可能比 [code]decompress[/code] 慢,因为在解压时可能需要多次重新分配输"
-"出缓冲区,而 [code]decompress[/code] 则在一开始就知道输出缓冲区的大小。\n"
-"GZIP 的最大压缩率为 1032:1,这意味着较小的压缩后负载很有可能解压出非常巨大的输"
-"出。为了防止这种情况,你可以通过 [param max_output_size] 提供允许这个函数分配"
-"的最大字节数。传入 -1 则不限制输出。传入正数且解压超过该字节数时,会返回错误。"
-
msgid "Creates a copy of the array, and returns it."
msgstr "创建该数组的副本,并将该副本返回。"
@@ -73105,9 +72907,71 @@ msgstr ""
"将数组中的所有元素都设为给定的值。通常与 [method resize] 一起使用,创建给定大"
"小的数组并初始化元素。"
+msgid ""
+"Converts ASCII/Latin-1 encoded array to [String]. Fast alternative to [method "
+"get_string_from_utf8] if the content is ASCII/Latin-1 only. Unlike the UTF-8 "
+"function this function maps every byte to a character in the array. Multibyte "
+"sequences will not be interpreted correctly. For parsing user input always "
+"use [method get_string_from_utf8]. This is the inverse of [method String."
+"to_ascii_buffer]."
+msgstr ""
+"将 ASCII/Latin-1 编码的数组转换为 [String]。如果内容仅为 ASCII/Latin-1,则是"
+"比 [method get_string_from_utf8] 更快的选择。与 UTF-8 函数不同,这个函数会将数"
+"组中的每个字节都映射到一个字符。多字节序列无法正确解析。要解析用户的输入内容,"
+"请始终使用 [method get_string_from_utf8]。这是 [method String."
+"to_ascii_buffer] 的逆运算。"
+
+msgid ""
+"Converts UTF-8 encoded array to [String]. Slower than [method "
+"get_string_from_ascii] but supports UTF-8 encoded data. Use this function if "
+"you are unsure about the source of the data. For user input this function "
+"should always be preferred. Returns empty string if source array is not valid "
+"UTF-8 string. This is the inverse of [method String.to_utf8_buffer]."
+msgstr ""
+"将 UTF-8 编码的数组转换为 [String]。比 [method get_string_from_ascii] 慢,但支"
+"持 UTF-8 编码的数据。不确定数据来源时请使用此函数。对于用户的输入内容,应始终"
+"首选此函数。如果源数组不是有效的 UTF-8 字符串,则返回空字符串。这是 [method "
+"String.to_utf8_buffer] 的逆运算。"
+
+msgid ""
+"Converts UTF-16 encoded array to [String]. If the BOM is missing, system "
+"endianness is assumed. Returns empty string if source array is not valid "
+"UTF-16 string. This is the inverse of [method String.to_utf16_buffer]."
+msgstr ""
+"将 UTF-16 编码的数组转换为 [String]。如果缺少 BOM,则假定为系统字节序。如果源"
+"数组不是有效的 UTF-16 字符串,则返回空字符串。这是 [method String."
+"to_utf16_buffer] 的逆运算。"
+
+msgid ""
+"Converts UTF-32 encoded array to [String]. System endianness is assumed. "
+"Returns empty string if source array is not valid UTF-32 string. This is the "
+"inverse of [method String.to_utf32_buffer]."
+msgstr ""
+"将 UTF-32 编码的数组转换为 [String]。假定为系统字节序。如果源数组不是有效的 "
+"UTF-32 字符串,则返回空字符串。这是 [method String.to_utf32_buffer] 的逆运算。"
+
+msgid ""
+"Converts wide character ([code]wchar_t[/code], UTF-16 on Windows, UTF-32 on "
+"other platforms) encoded array to [String]. Returns empty string if source "
+"array is not valid wide string. This is the inverse of [method String."
+"to_wchar_buffer]."
+msgstr ""
+"将宽字符([code]wchar_t[/code],在 Windows 上为 UTF-16,在其他平台上为 "
+"UTF-32)编码的数组转换为 [String]。如果源数组不是有效的宽字符串,则返回空字符"
+"串。这是 [method String.to_wchar_buffer] 的逆运算。"
+
msgid "Returns [code]true[/code] if the array contains [param value]."
msgstr "如果该数组包含 [param value],则返回 [code]true[/code]。"
+msgid ""
+"Returns [code]true[/code] if a valid [Variant] value can be decoded at the "
+"[param byte_offset]. Returns [code]false[/code] otherwise or when the value "
+"is [Object]-derived and [param allow_objects] is [code]false[/code]."
+msgstr ""
+"如果可以从字节偏移量 [param byte_offset] 处解码出有效的 [Variant],则返回 "
+"[code]true[/code]。其他情况,或者当该值派生自 [Object] 而 [param "
+"allow_objects] 为 [code]false[/code] 时,则返回 [code]false[/code]。"
+
msgid ""
"Returns a hexadecimal representation of this array as a [String].\n"
"[codeblocks]\n"
@@ -73178,21 +73042,6 @@ msgstr ""
msgid "Sorts the elements of the array in ascending order."
msgstr "将该数组中的元素按升序排列。"
-msgid ""
-"Returns a copy of the data converted to a [PackedFloat32Array], where each "
-"block of 4 bytes has been converted to a 32-bit float (C++ [code]float[/"
-"code]).\n"
-"The size of the input array must be a multiple of 4 (size of 32-bit float). "
-"The size of the new array will be [code]byte_array.size() / 4[/code].\n"
-"If the original data can't be converted to 32-bit floats, the resulting data "
-"is undefined."
-msgstr ""
-"返回将数据转换为 [PackedFloat32Array] 的副本,每 4 个字节块转换为一个 32 位浮"
-"点数(C++ 的 [code]float[/code])。\n"
-"输入数组的大小必须为 4 的倍数(32 位浮点数的大小)。新数组的大小为 "
-"[code]byte_array.size() / 4[/code]。\n"
-"如果原始数据无法转换为 32 位浮点数,则最终的数据未定义。"
-
msgid ""
"Returns a copy of the data converted to a [PackedFloat64Array], where each "
"block of 8 bytes has been converted to a 64-bit float (C++ [code]double[/"
@@ -73890,170 +73739,9 @@ msgstr ""
msgid "An abstraction of a serialized scene."
msgstr "对序列化场景的抽象。"
-msgid ""
-"A simplified interface to a scene file. Provides access to operations and "
-"checks that can be performed on the scene resource itself.\n"
-"Can be used to save a node to a file. When saving, the node as well as all "
-"the nodes it owns get saved (see [member Node.owner] property).\n"
-"[b]Note:[/b] The node doesn't need to own itself.\n"
-"[b]Example of loading a saved scene:[/b]\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# Use load() instead of preload() if the path isn't known at compile-time.\n"
-"var scene = preload(\"res://scene.tscn\").instantiate()\n"
-"# Add the node as a child of the node the script is attached to.\n"
-"add_child(scene)\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// C# has no preload, so you have to always use ResourceLoader."
-"Load().\n"
-"var scene = ResourceLoader.Load(\"res://scene.tscn\")."
-"Instantiate();\n"
-"// Add the node as a child of the node the script is attached to.\n"
-"AddChild(scene);\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]Example of saving a node with different owners:[/b] The following example "
-"creates 3 objects: [Node2D] ([code]node[/code]), [RigidBody2D] ([code]body[/"
-"code]) and [CollisionObject2D] ([code]collision[/code]). [code]collision[/"
-"code] is a child of [code]body[/code] which is a child of [code]node[/code]. "
-"Only [code]body[/code] is owned by [code]node[/code] and [code]pack[/code] "
-"will therefore only save those two nodes, but not [code]collision[/code].\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# Create the objects.\n"
-"var node = Node2D.new()\n"
-"var body = RigidBody2D.new()\n"
-"var collision = CollisionShape2D.new()\n"
-"\n"
-"# Create the object hierarchy.\n"
-"body.add_child(collision)\n"
-"node.add_child(body)\n"
-"\n"
-"# Change owner of `body`, but not of `collision`.\n"
-"body.owner = node\n"
-"var scene = PackedScene.new()\n"
-"\n"
-"# Only `node` and `body` are now packed.\n"
-"var result = scene.pack(node)\n"
-"if result == OK:\n"
-" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Or "
-"\"user://...\"\n"
-" if error != OK:\n"
-" push_error(\"An error occurred while saving the scene to disk.\")\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// Create the objects.\n"
-"var node = new Node2D();\n"
-"var body = new RigidBody2D();\n"
-"var collision = new CollisionShape2D();\n"
-"\n"
-"// Create the object hierarchy.\n"
-"body.AddChild(collision);\n"
-"node.AddChild(body);\n"
-"\n"
-"// Change owner of `body`, but not of `collision`.\n"
-"body.Owner = node;\n"
-"var scene = new PackedScene();\n"
-"\n"
-"// Only `node` and `body` are now packed.\n"
-"Error result = scene.Pack(node);\n"
-"if (result == Error.Ok)\n"
-"{\n"
-" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Or "
-"\"user://...\"\n"
-" if (error != Error.Ok)\n"
-" {\n"
-" GD.PushError(\"An error occurred while saving the scene to disk.\");\n"
-" }\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-msgstr ""
-"场景文件的简化接口。提供可以对场景资源本身进行的操作和检查。\n"
-"可以用来将某个节点保存到文件中。保存时,会将该节点和它所拥有的所有节点一起保存"
-"(见 [member Node.owner] 属性)。\n"
-"[b]注意:[/b]该节点不必自我拥有。\n"
-"[b]加载保存场景的示例:[/b]\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# 如果路径在编译期不可知,请使用 load() 而不是 preload()。\n"
-"var scene = preload(\"res://scene.tscn\").instantiate()\n"
-"# 将该节点添加为脚本附加节点的子节点。\n"
-"add_child(scene)\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// C# 没有 preload,所以你使用的永远是 ResourceLoader.Load()。\n"
-"var scene = ResourceLoader.Load(\"res://scene.tscn\")."
-"Instantiate();\n"
-"// 将该节点添加为脚本附加节点的子节点。\n"
-"AddChild(scene);\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]保存不同所有者的节点的示例:[/b]下面的粒子会创建 3 个对象:[Node2D]"
-"([code]node[/code])、[RigidBody2D]([code]body[/code])、[CollisionObject2D]"
-"([code]collision[/code]))。[code]node[/code] 的下一级是 [code]body[/code],"
-"再下一级是 [code]collision[/code]。只有 [code]body[/code] 被 [code]node[/"
-"code] 拥有,因此 [code]pack[/code] 只会保存两个节点,不会保存 "
-"[code]collision[/code]。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# 创建对象。\n"
-"var node = Node2D.new()\n"
-"var body = RigidBody2D.new()\n"
-"var collision = CollisionShape2D.new()\n"
-"\n"
-"# 创建对象架构。\n"
-"body.add_child(collision)\n"
-"node.add_child(body)\n"
-"\n"
-"# 修改 `body` 的拥有者,但不修改 `collision` 的拥有者。\n"
-"body.owner = node\n"
-"var scene = PackedScene.new()\n"
-"\n"
-"# 只会打包 `node` 和 `body`。\n"
-"var result = scene.pack(node)\n"
-"if result == OK:\n"
-" var error = ResourceSaver.save(scene, \"res://path/name.tscn\") # Or "
-"\"user://...\"\n"
-" if error != OK:\n"
-" push_error(\"将场景保存到磁盘时出错。\")\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// 创建对象。\n"
-"var node = new Node2D();\n"
-"var body = new RigidBody2D();\n"
-"var collision = new CollisionShape2D();\n"
-"\n"
-"// 创建对象架构。\n"
-"body.AddChild(collision);\n"
-"node.AddChild(body);\n"
-"\n"
-"// 修改 `body` 的拥有者,但不修改 `collision` 的拥有者。\n"
-"body.Owner = node;\n"
-"var scene = new PackedScene();\n"
-"\n"
-"// 只会打包 `node` 和 `body`。\n"
-"Error result = scene.Pack(node);\n"
-"if (result == Error.Ok)\n"
-"{\n"
-" Error error = ResourceSaver.Save(scene, \"res://path/name.tscn\"); // Or "
-"\"user://...\"\n"
-" if (error != Error.Ok)\n"
-" {\n"
-" GD.PushError(\"将场景保存到磁盘时出错。\");\n"
-" }\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-
msgid "Returns [code]true[/code] if the scene file has nodes."
msgstr "如果场景文件有节点,返回 [code]true[/code]。"
-msgid ""
-"Returns the [code]SceneState[/code] representing the scene file contents."
-msgstr "返回代表场景文件内容的 [code]SceneState[/code]。"
-
msgid ""
"Instantiates the scene's node hierarchy. Triggers child scene "
"instantiation(s). Triggers a [constant Node.NOTIFICATION_SCENE_INSTANTIATED] "
@@ -74338,10 +74026,6 @@ msgstr ""
msgid "Returns a [PackedByteArray] with each vector encoded as bytes."
msgstr "返回 [PackedByteArray],每个向量都被编码为字节。"
-msgid ""
-"Transforms (multiplies) all vectors in the array by the [Transform2D] matrix."
-msgstr "使用 [Transform2D] 矩阵对数组中的所有向量进行变换(相乘)。"
-
msgid ""
"Returns a new [PackedVector2Array] with contents of [param right] added at "
"the end of this array. For better performance, consider using [method "
@@ -74426,10 +74110,6 @@ msgstr ""
"如果 [param begin] 或 [param end] 为负,则表示相对于数组的末尾(即 [code]arr."
"slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的简写)。"
-msgid ""
-"Transforms (multiplies) all vectors in the array by the [Transform3D] matrix."
-msgstr "使用 [Transform3D] 矩阵对该数组中的所有向量进行变换(相乘)。"
-
msgid ""
"Returns a new [PackedVector3Array] with contents of [param right] added at "
"the end of this array. For better performance, consider using [method "
@@ -74515,19 +74195,6 @@ msgstr ""
"则允许将对象编码(其中可能包含代码)。\n"
"在内部,这使用与 [method @GlobalScope.var_to_bytes] 方法相同的编码机制。"
-msgid ""
-"Maximum buffer size allowed when encoding [Variant]s. Raise this value to "
-"support heavier memory allocations.\n"
-"The [method put_var] method allocates memory on the stack, and the buffer "
-"used will grow automatically to the closest power of two to match the size of "
-"the [Variant]. If the [Variant] is bigger than [code]encode_buffer_max_size[/"
-"code], the method will error out with [constant ERR_OUT_OF_MEMORY]."
-msgstr ""
-"编码 [Variant] 时允许的最大缓冲区大小。提高此值以支持更大的内存分配。\n"
-"[method put_var] 方法在栈上分配内存,使用的缓冲区将自动增长到最接近的二次方,"
-"以匹配 [Variant] 的大小。如果 [Variant] 大于 [code]encode_buffer_max_size[/"
-"code],则该方法将以 [constant ERR_OUT_OF_MEMORY] 出错。"
-
msgid "DTLS packet peer."
msgstr "DTLS 数据包客户端。"
@@ -75030,9 +74697,6 @@ msgstr "每个粒子的动画偏移将沿着这个 [CurveTexture] 变化。"
msgid "Each particle's animation speed will vary along this [CurveTexture]."
msgstr "每个粒子的动画速度将沿着这个 [CurveTexture] 变化。"
-msgid "True if the interaction with particle attractors is enabled."
-msgstr "如果启用了与粒子吸引器的交互,则为 true。"
-
msgid ""
"The particles' bounciness. Values range from [code]0[/code] (no bounce) to "
"[code]1[/code] (full bounciness). Only effective if [member collision_mode] "
@@ -75048,25 +74712,6 @@ msgid ""
msgstr ""
"粒子的摩擦。值范围从 [code]0[/code](无摩擦)到 [code]1[/code](最大摩擦)。"
-msgid ""
-"The particles' collision mode.\n"
-"[b]Note:[/b] 3D Particles can only collide with [GPUParticlesCollision3D] "
-"nodes, not [PhysicsBody3D] nodes. To make particles collide with various "
-"objects, you can add [GPUParticlesCollision3D] nodes as children of "
-"[PhysicsBody3D] nodes.\n"
-"[b]Note:[/b] 2D Particles can only collide with [LightOccluder2D] nodes, not "
-"[PhysicsBody2D] nodes."
-msgstr ""
-"粒子的碰撞模式。\n"
-"[b]注意:[/b]3D 粒子只能与 [GPUParticlesCollision3D] 节点碰撞,无法与 "
-"[PhysicsBody3D] 节点碰撞。要使粒子与不同的物体碰撞,可以将 "
-"[GPUParticlesCollision3D] 节点添加为 [PhysicsBody3D] 节点的子节点。\n"
-"[b]注意:[/b]2D 粒子只能与 [LightOccluder2D] 节点碰撞,无法与 [PhysicsBody2D] "
-"节点碰撞。"
-
-msgid "Should collision take scale into account."
-msgstr "碰撞是否应该考虑缩放。"
-
msgid ""
"Each particle's initial color. If the [GPUParticles2D]'s [code]texture[/code] "
"is defined, it will be multiplied by this color.\n"
@@ -75088,13 +74733,6 @@ msgstr ""
msgid "Damping will vary along this [CurveTexture]."
msgstr "阻尼将沿着这个 [CurveTexture] 变化。"
-msgid ""
-"The box's extents if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_BOX]."
-msgstr ""
-"[code]emission_shape[/code] 设置为 [constant EMISSION_SHAPE_BOX] 时,该 Box 的"
-"范围。"
-
msgid ""
"Particle color will be modulated by color determined by sampling this texture "
"at the same point as the [member emission_point_texture].\n"
@@ -75125,13 +74763,6 @@ msgstr ""
"行采样来设置。仅在[constant EMISSION_SHAPE_DIRECTED_POINTS]中使用。可以通过选"
"择工具栏中 \"粒子 \"工具下的 \"从网格/节点创建发射点\",从网格或节点自动创建。"
-msgid ""
-"The number of emission points if [code]emission_shape[/code] is set to "
-"[constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."
-msgstr ""
-"[code]emission_shape[/code] 设置为 [constant EMISSION_SHAPE_POINTS] 或 "
-"[constant EMISSION_SHAPE_DIRECTED_POINTS] 时,发射点的数量。"
-
msgid ""
"Particles will be emitted at positions determined by sampling this texture at "
"a random position. Used with [constant EMISSION_SHAPE_POINTS] and [constant "
@@ -75148,13 +74779,6 @@ msgid ""
"constants for values."
msgstr "粒子将在这个区域内发射。使用[enum EmissionShape]常量作为值。"
-msgid ""
-"The sphere's radius if [code]emission_shape[/code] is set to [constant "
-"EMISSION_SHAPE_SPHERE]."
-msgstr ""
-"当[code]emission_shape[/code]设置为[constant EMISSION_SHAPE_SPHERE]时,球体的"
-"半径。"
-
msgid "Amount of [member spread] along the Y axis."
msgstr "沿 Y 轴的 [member spread] 量。"
@@ -75174,19 +74798,6 @@ msgstr ""
msgid "Each particle's linear acceleration will vary along this [CurveTexture]."
msgstr "每个粒子的线性加速度将沿着这个 [CurveTexture] 变化。"
-msgid "Each particle's orbital velocity will vary along this [CurveTexture]."
-msgstr "每个粒子的轨道速度将沿着这个 [CurveTexture] 变化。"
-
-msgid ""
-"Maximum orbital velocity applied to each particle. Makes the particles circle "
-"around origin. Specified in number of full rotations around origin per "
-"second.\n"
-"Only available when [member particle_flag_disable_z] is [code]true[/code]."
-msgstr ""
-"应用于每个粒子的最大轨道速度。使粒子围绕原点环绕。以每秒围绕原点的完整旋转次数"
-"指定。\n"
-"仅当 [member particle_flag_disable_z] 为 [code]true[/code] 时可用。"
-
msgid "If [code]true[/code], particles will not move on the z axis."
msgstr "如果为 [code]true[/code],则粒子将不会在 z 轴上移动。"
@@ -75203,13 +74814,6 @@ msgstr ""
msgid "Minimum equivalent of [member scale_max]."
msgstr "[member scale_max] 对应的最小值。"
-msgid ""
-"Sub particle amount on collision.\n"
-"Maximum amount set in the sub particles emitter."
-msgstr ""
-"碰撞时子粒子的数量。\n"
-"子粒子发射器中设置的最大数量。"
-
msgid ""
"Each particle's tangential acceleration will vary along this [CurveTexture]."
msgstr "每个粒子的切向加速度将沿着这个 [CurveTexture] 变化。"
@@ -77287,6 +76891,39 @@ msgstr ""
"[code]shape[/code]:碰撞形状的形状索引。\n"
"可以使用 [param max_results] 参数限制相交的数量,以减少处理时间。"
+msgid ""
+"Intersects a ray in a given space. Ray position and other parameters are "
+"defined through [PhysicsRayQueryParameters3D]. The returned object is a "
+"dictionary with the following fields:\n"
+"[code]collider[/code]: The colliding object.\n"
+"[code]collider_id[/code]: The colliding object's ID.\n"
+"[code]normal[/code]: The object's surface normal at the intersection point, "
+"or [code]Vector3(0, 0, 0)[/code] if the ray starts inside the shape and "
+"[member PhysicsRayQueryParameters3D.hit_from_inside] is [code]true[/code].\n"
+"[code]position[/code]: The intersection point.\n"
+"[code]face_index[/code]: The face index at the intersection point.\n"
+"[b]Note:[/b] Returns a valid number only if the intersected shape is a "
+"[ConcavePolygonShape3D]. Otherwise, [code]-1[/code] is returned.\n"
+"[code]rid[/code]: The intersecting object's [RID].\n"
+"[code]shape[/code]: The shape index of the colliding shape.\n"
+"If the ray did not intersect anything, then an empty dictionary is returned "
+"instead."
+msgstr ""
+"在给定空间中检测与射线的相交情况。射线的位置和其他参数由 "
+"[PhysicsRayQueryParameters3D] 定义。返回的对象是包含以下字段的字典:\n"
+"[code]collider[/code]:碰撞到的对象。\n"
+"[code]collider_id[/code]:碰撞到的对象的 ID。\n"
+"[code]normal[/code]:该对象表面交点处的法线,如果射线中该形状的内部开始,并且 "
+"[member PhysicsRayQueryParameters3D.hit_from_inside] 为 [code]true[/code],则"
+"为 [code]Vector3(0, 0, 0)[/code]。\n"
+"[code]position[/code]:交点。\n"
+"[code]face_index[/code]:交点处的面索引。\n"
+"[b]注意:[/b]只有相交形状是 [ConcavePolygonShape3D] 时才会返回有效值。否则返"
+"回 [code]-1[/code]。\n"
+"[code]rid[/code]:相交对象的 [RID]。\n"
+"[code]shape[/code]:碰撞形状的形状索引。\n"
+"如果射线没有发生相交,则返回的是空字典。"
+
msgid ""
"Checks the intersections of a shape, given through a "
"[PhysicsShapeQueryParameters3D] object, against the space. The intersected "
@@ -77669,12 +77306,6 @@ msgid ""
"area's array of shapes."
msgstr "返回该区域的形状数组中给定索引的形状的局部变换矩阵。"
-msgid ""
-"Returns the [RID] of the space assigned to the area. Returns [code]RID()[/"
-"code] if no space is assigned."
-msgstr ""
-"返回分配给该区域的空间 [RID]。如果没有分配空间,则返回 [code]RID()[/code]。"
-
msgid "Returns the transform matrix of the area."
msgstr "返回该区域的变换矩阵。"
@@ -78035,12 +77666,6 @@ msgstr "返回该实体形状数组中具有给定索引的形状的 [RID]。"
msgid "Returns the number of shapes added to the body."
msgstr "返回添加至该物体的形状的数量。"
-msgid ""
-"Returns the [RID] of the space assigned to the body. Returns [code]RID()[/"
-"code] if no space is assigned."
-msgstr ""
-"返回分配给该实体的空间的 [RID]。如果没有分配空间,则返回 [code]RID()[/code]。"
-
msgid ""
"Returns the value of the given state of the body. See [enum BodyState] for "
"the list of available states."
@@ -78359,18 +77984,6 @@ msgstr ""
msgid "Makes the joint a groove joint."
msgstr "使关节成为凹槽关节。"
-msgid ""
-"Makes the joint a pin joint. If [param body_b] is [code]RID()[/code], then "
-"[param body_a] is pinned to the point [param anchor] (given in global "
-"coordinates); otherwise, [param body_a] is pinned to [param body_b] at the "
-"point [param anchor] (given in global coordinates). To set the parameters "
-"which are specific to the pin joint, see [method pin_joint_set_param]."
-msgstr ""
-"使关节成为一个销关节。如果 [param body_b] 是 [code]RID()[/code],则 [param "
-"body_a] 被固定到点 [param anchor](在全局坐标中给出); 否则,[param body_a] "
-"在 [param anchor] 点被固定到 [param body_b](在全局坐标中给出)。要设置特定于"
-"销关节的参数,请参阅 [method pin_joint_set_param]。"
-
msgid ""
"Sets the value of the given joint parameter. See [enum JointParam] for the "
"list of available parameters."
@@ -78430,62 +78043,6 @@ msgstr ""
msgid "Returns the shape's type (see [enum ShapeType])."
msgstr "返回该形状的类型(见 [enum ShapeType])。"
-msgid ""
-"Sets the shape data that defines the configuration of the shape. The [param "
-"data] to be passed depends on the shape's type (see [method "
-"shape_get_type]):\n"
-"- [constant SHAPE_WORLD_BOUNDARY]: an array of length two containing a "
-"[Vector2] [code]normal[/code] direction and a [code]float[/code] distance "
-"[code]d[/code],\n"
-"- [constant SHAPE_SEPARATION_RAY]: a dictionary containing the key "
-"[code]length[/code] with a [code]float[/code] value and the key "
-"[code]slide_on_slope[/code] with a [code]bool[/code] value,\n"
-"- [constant SHAPE_SEGMENT]: a [Rect2] [code]rect[/code] containing the first "
-"point of the segment in [code]rect.position[/code] and the second point of "
-"the segment in [code]rect.size[/code],\n"
-"- [constant SHAPE_CIRCLE]: a [code]float[/code] [code]radius[/code],\n"
-"- [constant SHAPE_RECTANGLE]: a [Vector2] [code]half_extents[/code],\n"
-"- [constant SHAPE_CAPSULE]: an array of length two (or a [Vector2]) "
-"containing a [code]float[/code] [code]height[/code] and a [code]float[/code] "
-"[code]radius[/code],\n"
-"- [constant SHAPE_CONVEX_POLYGON]: either a [PackedVector2Array] of points "
-"defining a convex polygon in counterclockwise order (the clockwise outward "
-"normal of each segment formed by consecutive points is calculated "
-"internally), or a [PackedFloat32Array] of length divisible by four so that "
-"every 4-tuple of [code]float[/code]s contains the coordinates of a point "
-"followed by the coordinates of the clockwise outward normal vector to the "
-"segment between the current point and the next point,\n"
-"- [constant SHAPE_CONCAVE_POLYGON]: a [PackedVector2Array] of length "
-"divisible by two (each pair of points forms one segment).\n"
-"[b]Warning:[/b] In the case of [constant SHAPE_CONVEX_POLYGON], this method "
-"does not check if the points supplied actually form a convex polygon (unlike "
-"the [member CollisionPolygon2D.polygon] property)."
-msgstr ""
-"设置定义形状配置的形状数据。要传递的 [param data] 取决于形状的类型(参见 "
-"[method shape_get_type]):\n"
-"- [constant SHAPE_WORLD_BOUNDARY]:长度为 2 的数组,包含 [Vector2] 类型的 "
-"[code]normal[/code] 方向和 [code]float[/code] 类型的距离 [code]d[/code],\n"
-"- [constant SHAPE_SEPARATION_RAY]:字典,包含键 [code]length[/code] 和 "
-"[code]float[/code] 值、以及键 [code]slide_on_slope[/code] 和 [code]bool[/"
-"code] 值,\n"
-"- [constant SHAPE_SEGMENT]:[Rect2] 类型的 [code]rect[/code],以 [code]rect."
-"position[/code] 表示线段中的第一个点,并以 [code]rect.size[/code] 表示线段中的"
-"第二个点,\n"
-"- [constant SHAPE_CIRCLE]:[code]float[/code] 类型的 [code]radius[/code],\n"
-"- [constant SHAPE_RECTANGLE]:[Vector2] 类型的 [code]half_extents[/code],\n"
-"- [constant SHAPE_CAPSULE]:长度为 2 的数组(或一个 [Vector2]),包含一个 "
-"[code]float[/code] 类型的 [code]height[/code] 和一个 [code]float[/code] 类型"
-"的 [code]radius[/code],\n"
-"- [constant SHAPE_CONVEX_POLYGON]:按逆时针顺序定义凸多边形的点的 "
-"[PackedVector2Array](在内部使用由连续点形成的每个线段的顺时针向外法线计算);"
-"或一个长度可被 4 整除的 [PackedFloat32Array],以便每个 4 元组的 [code]float[/"
-"code] 包含一个点的坐标,后跟一个向量的坐标表示,该向量是当前点和下一个点之间的"
-"线段的顺时针向外法向量,\n"
-"- [constant SHAPE_CONCAVE_POLYGON]:长度可被 2 整除的 [PackedVector2Array](每"
-"对点形成一个线段)。\n"
-"[b]警告:[/b]在 [constant SHAPE_CONVEX_POLYGON] 的情况下,该方法不检查提供的点"
-"是否能够形成凸多边形(与 [member CollisionPolygon2D.polygon] 属性不同)。"
-
msgid ""
"Creates a 2D space in the physics server, and returns the [RID] that "
"identifies it. A space contains bodies and areas, and controls the stepping "
@@ -79403,22 +78960,6 @@ msgstr ""
"如果为 [code]true[/code],则启用连续碰撞检测模式。\n"
"连续碰撞检测尝试预测运动物体碰撞的位置,而不是在碰撞时移动物体并纠正其运动。"
-msgid ""
-"Sets the function used to calculate physics for an object, if that object "
-"allows it (see [method body_set_omit_force_integration]).\n"
-"The force integration function takes 2 arguments:\n"
-"[code]state:[/code] [PhysicsDirectBodyState3D] used to retrieve and modify "
-"the body's state.\n"
-"[code]userdata:[/code] Optional user data, if it was passed when calling "
-"[code]body_set_force_integration_callback[/code]."
-msgstr ""
-"如果对象允许的话,设置用于计算该对象物理的函数(参见 [method "
-"body_set_omit_force_integration])。\n"
-"力的积分函数有 2 个参数:\n"
-"[code]state:[/code] [PhysicsDirectBodyState3D] 用于检索和修改物体的状态。\n"
-"[code]userdata:[/code] 可选的用户数据,如果在调用 "
-"[code]body_set_force_integration_callback[/code] 时被传递。"
-
msgid ""
"Sets the maximum contacts to report. Bodies can keep a log of the contacts "
"with other bodies. This is enabled by setting the maximum number of contacts "
@@ -80516,6 +80057,12 @@ msgid ""
"produces."
msgstr "如果大于 0,则这个值是此 Joint3D 产生的冲量的最大值。"
+msgid "A [Cubemap] without image data."
+msgstr "没有图像数据的 [Cubemap] 。"
+
+msgid "A [CubemapArray] without image data."
+msgstr "没有图像数据的 [CubemapArray] 。"
+
msgid "Placeholder class for a material."
msgstr "材质的占位类。"
@@ -80758,34 +80305,6 @@ msgid ""
"Returns the orthogonal projection of [param point] into a point in the plane."
msgstr "返回 [param point] 在该平面中的正交投影。"
-msgid ""
-"The distance from the origin to the plane, expressed in terms of [member "
-"normal] (according to its direction and magnitude). Actual absolute distance "
-"from the origin to the plane can be calculated as [code]abs(d) / normal."
-"length()[/code] (if [member normal] has zero length then this [Plane] does "
-"not represent a valid plane).\n"
-"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
-"[code]d[/code], while the [code](a, b, c)[/code] coordinates are represented "
-"by the [member normal] property."
-msgstr ""
-"从原点到平面的距离,按照 [member normal] 取值(根据其方向和长度)。原点与平面"
-"的实际绝对距离可以通过 [code]abs(d) / normal.length()[/code] 计算(如果 "
-"[member normal] 长度为零,则该 [Plane] 表示的不是有效平面)。\n"
-"在平面 [code]ax + by + cz = d[/code] 的标量方程中,这是 [code]d[/code],而 "
-"[code](a, b, c)[/code] 坐标由 [member normal] 属性表示。"
-
-msgid ""
-"The normal of the plane, typically a unit vector. Shouldn't be a zero vector "
-"as [Plane] with such [member normal] does not represent a valid plane.\n"
-"In the scalar equation of the plane [code]ax + by + cz = d[/code], this is "
-"the vector [code](a, b, c)[/code], where [code]d[/code] is the [member d] "
-"property."
-msgstr ""
-"该平面的法线,通常为单位向量。不应该为零向量,因为 [member normal] 为零的 "
-"[Plane] 代表的不是有效平面。\n"
-"在平面 [code]ax + by + cz = d[/code] 的标量方程中,这是向量 [code](a, b, c)[/"
-"code],其中 [code]d[/code] 是 [member d] 属性。"
-
msgid "The X component of the plane's [member normal] vector."
msgstr "平面法向量 [member normal] 的 X 分量。"
@@ -80813,11 +80332,6 @@ msgstr ""
"[b]注意:[/b]由于浮点数精度误差,请考虑改用 [method is_equal_approx],会更可"
"靠。"
-msgid ""
-"Inversely transforms (multiplies) the [Plane] by the given [Transform3D] "
-"transformation matrix."
-msgstr "使用给定的 [Transform3D] 变换矩阵对该 [Plane] 进行逆变换(相乘)。"
-
msgid ""
"Returns [code]true[/code] if the planes are exactly equal.\n"
"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
@@ -80984,14 +80498,6 @@ msgstr ""
"分配的 [member skeleton] 所使用的 [Bone2D] 节点的内部列表。使用 Polygon2D 编辑"
"器编辑(顶部工具栏的“UV”按钮)。"
-msgid ""
-"The polygon's fill color. If [code]texture[/code] is defined, it will be "
-"multiplied by this color. It will also be the default color for vertices not "
-"set in [code]vertex_colors[/code]."
-msgstr ""
-"多边形的填充颜色.如果定义了[code]texture[/code](贴图),它将乘以该颜色.对于"
-"[code]vertex_colors[/code]中未设置的顶点,它也将是默认颜色."
-
msgid "Number of internal vertices, used for UV mapping."
msgstr "内部顶点的数量,用于 UV 映射。"
@@ -81041,44 +80547,9 @@ msgstr ""
"指向 [Skeleton2D] 节点的路径,用于对这个多边形进行基于骨架的变形。如果为空或无"
"效,则不会使用骨架变形。"
-msgid ""
-"The polygon's fill texture. Use [code]uv[/code] to set texture coordinates."
-msgstr "多边形的填充纹理。使用 [code]uv[/code] 设置纹理坐标。"
-
-msgid ""
-"Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] "
-"the texture's origin (its top-left corner) will be placed at the polygon's "
-"[code]position[/code]."
-msgstr ""
-"多边形 [code]texture[/code] 纹理的偏移量。如果为 [code](0, 0)[/code],则纹理的"
-"原点(其左上角)将放置在多边形的 [code]position[/code] 处。"
-
msgid "The texture's rotation in radians."
msgstr "纹理的旋转弧度。"
-msgid ""
-"Amount to multiply the [code]uv[/code] coordinates when using a "
-"[code]texture[/code]. Larger values make the texture smaller, and vice versa."
-msgstr ""
-"使用 [code]texture[/code] 纹理时乘以 [code]uv[/code] 坐标的值。值越大,纹理越"
-"小,反之亦然。"
-
-msgid ""
-"Texture coordinates for each vertex of the polygon. There should be one "
-"[code]uv[/code] per polygon vertex. If there are fewer, undefined vertices "
-"will use [code](0, 0)[/code]."
-msgstr ""
-"多边形每个顶点的纹理坐标。每个多边形顶点应该有一个 [code]uv[/code]。如果数量"
-"少,则未定义的顶点将使用 [code](0, 0)[/code]。"
-
-msgid ""
-"Color for each vertex. Colors are interpolated between vertices, resulting in "
-"smooth gradients. There should be one per polygon vertex. If there are fewer, "
-"undefined vertices will use [code]color[/code]."
-msgstr ""
-"每个顶点的颜色.颜色在顶点之间插值,从而获得平滑的渐变.每个多边形顶点应有一个.如"
-"果数量少,则未定义的顶点将使用[code]color[/code]."
-
msgid ""
"Flat 2D polygon shape for use with occlusion culling in [OccluderInstance3D]."
msgstr "平面 2D 多边形形状,用于 [OccluderInstance3D] 的遮挡剔除。"
@@ -81127,6 +80598,9 @@ msgstr ""
msgid "Emitted when the popup is hidden."
msgstr "当该弹出窗口被隐藏时发出。"
+msgid "Default [StyleBox] for the [Popup]."
+msgstr "该 [Popup] 的默认 [StyleBox] 。"
+
msgid "A modal window used to display a list of options."
msgstr "用于显示选项列表的模态窗口。"
@@ -81353,17 +80827,6 @@ msgstr ""
"在菜单项之间添加分隔线。分隔线也占用索引,可以使用 [param id] 参数设置。\n"
"还可以提供 [param label],会在分隔线的中间位置显示。"
-msgid ""
-"Adds an item that will act as a submenu of the parent [PopupMenu] node when "
-"clicked. The [param submenu] argument is the name of the child [PopupMenu] "
-"node that will be shown when the item is clicked.\n"
-"An [param id] can optionally be provided. If no [param id] is provided, one "
-"will be created from the index."
-msgstr ""
-"添加菜单项,点击时会作为父级 [PopupMenu] 节点的子菜单。[param submenu] 参数为"
-"子 [PopupMenu] 节点的名称,会在点击菜单项时显示。\n"
-"还可以提供 [param id]。如果没有提供 [param id],则会根据索引来创建。"
-
msgid ""
"Returns the index of the currently focused item. Returns [code]-1[/code] if "
"no item is focused."
@@ -82425,6 +81888,75 @@ msgstr ""
"tutorials/export/feature_tags.html]特性标签[/url]。因此,如果你想让它们在所有"
"平台和配置上覆盖基础项目设置,请确保[i]也用[/i]所需的特性标签覆盖该设置。"
+msgid ""
+"Adds a custom property info to a property. The dictionary must contain:\n"
+"- [code]\"name\"[/code]: [String] (the property's name)\n"
+"- [code]\"type\"[/code]: [int] (see [enum Variant.Type])\n"
+"- optionally [code]\"hint\"[/code]: [int] (see [enum PropertyHint]) and "
+"[code]\"hint_string\"[/code]: [String]\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"ProjectSettings.set(\"category/property_name\", 0)\n"
+"\n"
+"var property_info = {\n"
+" \"name\": \"category/property_name\",\n"
+" \"type\": TYPE_INT,\n"
+" \"hint\": PROPERTY_HINT_ENUM,\n"
+" \"hint_string\": \"one,two,three\"\n"
+"}\n"
+"\n"
+"ProjectSettings.add_property_info(property_info)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ProjectSettings.Singleton.Set(\"category/property_name\", 0);\n"
+"\n"
+"var propertyInfo = new Godot.Collections.Dictionary\n"
+"{\n"
+" {\"name\", \"category/propertyName\"},\n"
+" {\"type\", (int)Variant.Type.Int},\n"
+" {\"hint\", (int)PropertyHint.Enum},\n"
+" {\"hint_string\", \"one,two,three\"},\n"
+"};\n"
+"\n"
+"ProjectSettings.AddPropertyInfo(propertyInfo);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"为某个属性添加自定义属性信息。字典必须包含:\n"
+"- [code]\"name\"[/code]:[String](属性名称)\n"
+"- [code]\"type\"[/code]:[int](见 [enum Variant.Type])\n"
+"- 可选的 [code]\"hint\"[/code]:[int](见 [enum PropertyHint])和 "
+"[code]\"hint_string\"[/code]:[String]\n"
+"[b]示例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"ProjectSettings.set(\"category/property_name\", 0)\n"
+"\n"
+"var property_info = {\n"
+" \"name\": \"category/property_name\",\n"
+" \"type\": TYPE_INT,\n"
+" \"hint\": PROPERTY_HINT_ENUM,\n"
+" \"hint_string\": \"one,two,three\"\n"
+"}\n"
+"\n"
+"ProjectSettings.add_property_info(property_info)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ProjectSettings.Singleton.Set(\"category/property_name\", 0);\n"
+"\n"
+"var propertyInfo = new Godot.Collections.Dictionary\n"
+"{\n"
+" {\"name\", \"category/propertyName\"},\n"
+" {\"type\", (int)Variant.Type.Int},\n"
+" {\"hint\", (int)PropertyHint.Enum},\n"
+" {\"hint_string\", \"one,two,three\"},\n"
+"};\n"
+"\n"
+"ProjectSettings.AddPropertyInfo(propertyInfo);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
msgid "Clears the whole configuration (not recommended, may break things)."
msgstr "清除整个配置(不推荐,可能会弄坏东西)。"
@@ -82707,6 +82239,19 @@ msgstr ""
"如果为 [code]true[/code],引擎启动时会将启动界面图像缩放到整个窗口的大小(保持"
"长宽比)。如果为 [code]false[/code],引擎将保持其默认像素大小。"
+msgid ""
+"Path to an image used as the boot splash. If left empty, the default Godot "
+"Engine splash will be displayed instead.\n"
+"[b]Note:[/b] Only effective if [member application/boot_splash/show_image] is "
+"[code]true[/code].\n"
+"[b]Note:[/b] The only supported format is PNG. Using another image format "
+"will result in an error."
+msgstr ""
+"图像的路径,会作为启动画面使用。留空时将使用默认的 Godot 引擎启动画面。\n"
+"[b]注意:[/b]仅在 [member application/boot_splash/show_image] 为 [code]true[/"
+"code] 时有效。\n"
+"[b]注意:[/b]只支持 PNG 格式。使用其他图像格式会导致出错。"
+
msgid ""
"Minimum boot splash display time (in milliseconds). It is not recommended to "
"set too high values for this setting."
@@ -82852,6 +82397,16 @@ msgstr ""
"可能使用默认的 [code].godot[/code] 文件夹,因此更改默认设置可能会影响它们的使"
"用。"
+msgid ""
+"The project's human-readable version identifier. This is used by exporters if "
+"the version identifier isn't overridden there. If [member application/config/"
+"version] is an empty string and the version identifier isn't overridden in an "
+"exporter, the exporter will use [code]1.0.0[/code] as a version identifier."
+msgstr ""
+"项目的人类可读版本标识符。如果导出器中没有覆盖版本标识符,就会使用这个标识符。"
+"如果 [member application/config/version] 为空字符串,并且导出器中没有覆盖版本"
+"标识符,则导出器会使用 [code]1.0.0[/code] 作为版本标识符。"
+
msgid ""
"Icon set in [code].ico[/code] format used on Windows to set the game's icon. "
"This is done automatically on start by calling [method DisplayServer."
@@ -83028,6 +82583,29 @@ msgstr ""
"[member audio/driver/mix_rate] 在 Web 平台上更安全的覆盖项。这里的 [code]0[/"
"code] 表示“让浏览器选择”(因为有些浏览器不喜欢强制混合率)。"
+msgid ""
+"Specifies the preferred output latency in milliseconds for audio. Lower "
+"values will result in lower audio latency at the cost of increased CPU usage. "
+"Low values may result in audible cracking on slower hardware.\n"
+"Audio output latency may be constrained by the host operating system and "
+"audio hardware drivers. If the host can not provide the specified audio "
+"output latency then Godot will attempt to use the nearest latency allowed by "
+"the host. As such you should always use [method AudioServer."
+"get_output_latency] to determine the actual audio output latency.\n"
+"Audio output latency can be overridden using the [code]--audio-output-latency "
+"[/code] command line argument.\n"
+"[b]Note:[/b] This setting is ignored on Android, and on all versions of "
+"Windows prior to Windows 10."
+msgstr ""
+"指定音频的首选输出延迟,单位为毫秒。较低的值将导致较低的音频延迟,但会增加 "
+"CPU 使用率。低值可能会导致在较慢的硬件上发出可听见的破裂声。\n"
+"音频输出延迟可能会受到主机操作系统和音频硬件驱动程序的限制。如果主机无法提供指"
+"定的音频输出延迟,那么 Godot 将尝试使用主机允许的最近延迟。因此,应该始终使用 "
+"[method AudioServer.get_output_latency] 来确定实际的音频输出延迟。\n"
+"音频输出延迟可以使用 [code]--audio-output-latency [/code] 命令行参数覆"
+"盖。\n"
+"[b]注意:[/b]Android 以及 Windows 10 之前的所有版本都会忽略这个设置。"
+
msgid ""
"Safer override for [member audio/driver/output_latency] in the Web platform, "
"to avoid audio issues especially on mobile devices."
@@ -83088,6 +82666,13 @@ msgid ""
msgstr ""
"播放视频时设置为硬编码音频延迟。除非你知道自己在做什么,否则最好不要动它。"
+msgid ""
+"If [code]true[/code], ambient lights will be imported from COLLADA models as "
+"[DirectionalLight3D]. If [code]false[/code], ambient lights will be ignored."
+msgstr ""
+"如果为 [code]true[/code],则 COLLADA 模型中的环境光源会被导入为 "
+"[DirectionalLight3D]。如果为 [code]false[/code],则会忽略环境光源。"
+
msgid ""
"The default compression level for gzip. Affects compressed scenes and "
"resources. Higher levels result in smaller files at the cost of compression "
@@ -84035,19 +83620,47 @@ msgstr ""
"这个设置。"
msgid ""
-"On desktop platforms, overrides the game's initial window width. See also "
-"[member display/window/size/window_height_override], [member display/window/"
-"size/viewport_width] and [member display/window/size/viewport_height].\n"
-"[b]Note:[/b] By default, or when set to [code]0[/code], the initial window "
-"width is the viewport [member display/window/size/viewport_width]. This "
-"setting is ignored on iOS, Android, and Web."
+"Defines how the base size is stretched to fit the resolution of the window or "
+"screen.\n"
+"[b]\"disabled\"[/b]: No stretching happens. One unit in the scene corresponds "
+"to one pixel on the screen. In this mode, [member display/window/stretch/"
+"aspect] has no effect. Recommended for non-game applications.\n"
+"[b]\"canvas_items\"[/b]: The base size specified in width and height in the "
+"project settings is stretched to cover the whole screen (taking [member "
+"display/window/stretch/aspect] into account). This means that everything is "
+"rendered directly at the target resolution. 3D is unaffected, while in 2D, "
+"there is no longer a 1:1 correspondence between sprite pixels and screen "
+"pixels, which may result in scaling artifacts. Recommended for most games "
+"that don't use a pixel art esthetic, although it is possible to use this "
+"stretch mode for pixel art games too (especially in 3D).\n"
+"[b]\"viewport\"[/b]: The size of the root [Viewport] is set precisely to the "
+"base size specified in the Project Settings' Display section. The scene is "
+"rendered to this viewport first. Finally, this viewport is scaled to fit the "
+"screen (taking [member display/window/stretch/aspect] into account). "
+"Recommended for games that use a pixel art esthetic."
msgstr ""
-"在桌面平台上,覆盖游戏的初始窗口宽度。另见 [member display/window/size/"
-"window_height_override]、[member display/window/size/viewport_width] 和 "
-"[member display/window/size/viewport_height]。\n"
-"[b]注意:[/b]默认情况下,或者当设置为[code]0[/code] 时,初始窗口宽度为 "
-"[member display/window/size/viewport_width]。在 iOS、Android 和 Web 上会忽略这"
-"个设置。"
+"定义如何将基础大小进行拉伸,从而适应窗口或屏幕的分辨率。\n"
+"[b]\"disabled\"[/b]:不进行拉伸。场景中的一个单位对应屏幕上的一个像素。"
+"[member display/window/stretch/aspect] 在该模式下无效。推荐非游戏应用程序使"
+"用。\n"
+"[b]\"canvas_items\"[/b]:将项目设置中指定的基础大小拉伸至覆盖整个屏幕(会考虑 "
+"[member display/window/stretch/aspect])。这样所有东西都是直接按照目标分辨率渲"
+"染的。3D 不受影响,但在 2D 中精灵的像素和屏幕像素就不再是 1:1 的关系了,缩放可"
+"能导致画面问题。推荐大多数非像素风的游戏使用,但像素风游戏也是可以使用该拉伸模"
+"式的(尤其是 3D)。\n"
+"[b]\"viewport\"[/b]:将根 [Viewport] 的大小设为项目设置中“显示”部分中指定的基"
+"础大小。场景会现在这个视口中渲染。最终会将该视口缩放至适合屏幕的尺寸(会考虑 "
+"[member display/window/stretch/aspect])。推荐像素风游戏使用。"
+
+msgid ""
+"The scale factor multiplier to use for 2D elements. This multiplies the final "
+"scale factor determined by [member display/window/stretch/mode]. If using the "
+"[b]Disabled[/b] stretch mode, this scale factor is applied as-is. This can be "
+"adjusted to make the UI easier to read on certain displays."
+msgstr ""
+"2D 元素缩放系数的乘数。这个乘数会与由 [member display/window/stretch/mode] 决"
+"定的最终缩放系数相乘。如果使用的是 [b]Disabled[/b] 拉伸模式,那么这个缩放系数"
+"是原样使用的。可以通过调节这个数值来让 UI 则某些屏幕上更易于阅读。"
msgid "If [code]true[/code] subwindows are embedded in the main window."
msgstr "如果为 [code]true[/code] 则子窗口是嵌入到主窗口中的。"
@@ -84382,6 +83995,20 @@ msgstr ""
"如果为 [code]true[/code],则将 [Control] 节点的顶点吸附到最近的像素,确保即便"
"相机发生移动或缩放也能够保持锐利。"
+msgid ""
+"If [code]true[/code], swaps [b]Cancel[/b] and [b]OK[/b] buttons in dialogs on "
+"Windows to follow interface conventions. [method DisplayServer."
+"get_swap_cancel_ok] can be used to query whether buttons are swapped at run-"
+"time.\n"
+"[b]Note:[/b] This doesn't affect native dialogs such as the ones spawned by "
+"[method DisplayServer.dialog_show]."
+msgstr ""
+"如果为 [code]true[/code] ,则会在 Windows 上交换对话框中的[b]确定[/b]和[b]取消"
+"[/b]按钮,从而遵循界面规范。可以使用 [method DisplayServer."
+"get_swap_cancel_ok] 查询运行时是否交换这两个按钮。\n"
+"[b]注意:[/b]由 [method DisplayServer.dialog_show] 等生成的原生对话框不受影"
+"响。"
+
msgid "Maximum undo/redo history size for [TextEdit] fields."
msgstr "[TextEdit] 字段的最大撤销/重做历史大小。"
@@ -84397,6 +84024,84 @@ msgid ""
"the project."
msgstr "自定义 [Font] 资源的路径,用作项目中所有 GUI 元素的默认字体。"
+msgid ""
+"Font anti-aliasing mode for the default project font. See [member FontFile."
+"antialiasing].\n"
+"[b]Note:[/b] This setting does not affect custom [Font]s used within the "
+"project. Use the [b]Import[/b] dock for that instead (see [member "
+"ResourceImporterDynamicFont.antialiasing])."
+msgstr ""
+"默认项目字体的字体抗锯齿模式。见 [member FontFile.antialiasing]。\n"
+"[b]注意:[/b]这项设置不影响项目中使用的自定义 [Font]。请改用[b]导入[/b]面板"
+"(见 [member ResourceImporterDynamicFont.antialiasing])。"
+
+msgid ""
+"If set to [code]true[/code], the default font will have mipmaps generated. "
+"This prevents text from looking grainy when a [Control] is scaled down, or "
+"when a [Label3D] is viewed from a long distance (if [member Label3D."
+"texture_filter] is set to a mode that displays mipmaps).\n"
+"Enabling [member gui/theme/default_font_generate_mipmaps] increases font "
+"generation time and memory usage. Only enable this setting if you actually "
+"need it.\n"
+"[b]Note:[/b] This setting does not affect custom [Font]s used within the "
+"project. Use the [b]Import[/b] dock for that instead (see [member "
+"ResourceImporterDynamicFont.generate_mipmaps])."
+msgstr ""
+"如果设置为 [code]true[/code],则默认字体将生成 mipmap。这样可以防止文本在 "
+"[Control] 被按比例缩小或从远距离查看 [Label3D] 时看起来有颗粒感(如果 [member "
+"Label3D.texture_filter] 设置为显示 mipmap 的模式)。\n"
+"启用 [member gui/theme/default_font_generate_mipmaps] 会增加字体生成时间和内存"
+"使用量。请只在你确实需要时才启用此设置。\n"
+"[b]注意:[/b]此设置不会影响项目中使用的自定义 [Font]。这种情况下请改用[b]导入"
+"[/b]面板(见 [member ResourceImporterDynamicFont.generate_mipmaps])。"
+
+msgid ""
+"Font hinting mode for the default project font. See [member FontFile."
+"hinting].\n"
+"[b]Note:[/b] This setting does not affect custom [Font]s used within the "
+"project. Use the [b]Import[/b] dock for that instead (see [member "
+"ResourceImporterDynamicFont.hinting])."
+msgstr ""
+"默认项目字体的字体微调模式。见 [member FontFile.hinting]。\n"
+"[b]注意:[/b]这项设置不影响项目中使用的自定义 [Font]。请改用[b]导入[/b]面板"
+"(见 [member ResourceImporterDynamicFont.hinting])。"
+
+msgid ""
+"If set to [code]true[/code], the default font will use multichannel signed "
+"distance field (MSDF) for crisp rendering at any size. Since this approach "
+"does not rely on rasterizing the font every time its size changes, this "
+"allows for resizing the font in real-time without any performance penalty. "
+"Text will also not look grainy for [Control]s that are scaled down (or for "
+"[Label3D]s viewed from a long distance).\n"
+"MSDF font rendering can be combined with [member gui/theme/"
+"default_font_generate_mipmaps] to further improve font rendering quality when "
+"scaled down.\n"
+"[b]Note:[/b] This setting does not affect custom [Font]s used within the "
+"project. Use the [b]Import[/b] dock for that instead (see [member "
+"ResourceImporterDynamicFont.multichannel_signed_distance_field])."
+msgstr ""
+"如果设置为 [code]true[/code],默认字体将使用多通道带符号距离场(MSDF),任何尺"
+"寸都能够进行清晰的渲染。由于这种方法不需要在每次字体大小更改时都对字体进行光栅"
+"化,因此可以实时调整字体大小,不会造成任何性能损失。对于按比例缩小的 [Control]"
+"(或从远距离查看的 [Label3D]),文本也不会看起来有颗粒感。\n"
+"MSDF 字体渲染可以与 [member gui/theme/default_font_generate_mipmaps] 结合使"
+"用,从而进一步提高缩小时的字体渲染质量。\n"
+"[b]注意:[/b]此设置不会影响项目中使用的自定义 [Font]。这种情况下请改用[b]导入"
+"[/b]面板(见 [member ResourceImporterDynamicFont."
+"multichannel_signed_distance_field])。"
+
+msgid ""
+"Font glyph subpixel positioning mode for the default project font. See "
+"[member FontFile.subpixel_positioning].\n"
+"[b]Note:[/b] This setting does not affect custom [Font]s used within the "
+"project. Use the [b]Import[/b] dock for that instead (see [member "
+"ResourceImporterDynamicFont.subpixel_positioning])."
+msgstr ""
+"默认项目字体的字体字形次像素定位模式。见 [member FontFile."
+"subpixel_positioning]。\n"
+"[b]注意:[/b]这项设置不影响项目中使用的自定义 [Font]。请改用[b]导入[/b]面板"
+"(见 [member ResourceImporterDynamicFont.subpixel_positioning])。"
+
msgid ""
"The default scale factor for [Control]s, when not overridden by a [Theme].\n"
"[b]Note:[/b] This property is only read when the project starts. To change "
@@ -86400,6 +86105,11 @@ msgstr ""
"3D 导航地图的默认链接连接半径。见 [method NavigationServer3D."
"map_set_link_connection_radius]。"
+msgid ""
+"Default up orientation for 3D navigation maps. See [method NavigationServer3D."
+"map_set_up]."
+msgstr "3D 导航地图的默认上方向。见 [method NavigationServer3D.map_set_up]。"
+
msgid ""
"If enabled 3D navigation regions will use edge connections to connect with "
"other navigation regions within proximity of the navigation map edge "
@@ -86416,6 +86126,14 @@ msgstr "如果启用,并且使用多线程进行避障计算,则执行的线
msgid "If enabled the avoidance calculations use multiple threads."
msgstr "如果启用,则会使用多线程进行避障计算。"
+msgid ""
+"If enabled and async navmesh baking uses multiple threads the threads run "
+"with high priority."
+msgstr "如果启用,并且使用多线程进行异步导航网格烘焙,则执行的线程为高优先级。"
+
+msgid "If enabled the async navmesh baking uses multiple threads."
+msgstr "如果启用,则会使用多线程进行异步导航网格烘焙。"
+
msgid ""
"Maximum number of characters allowed to send as output from the debugger. "
"Over this value, content is dropped. This helps not to stall the debugger "
@@ -86693,6 +86411,72 @@ msgstr ""
"physics_ticks_per_second],默认为 [code]60[/code])时,会让对象在迭代一次后就"
"停止。"
+msgid ""
+"The default gravity strength in 3D (in meters per second squared).\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity at runtime, use the following code sample:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Set the default gravity strength to 9.8.\n"
+"PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, "
+"PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Set the default gravity strength to 9.8.\n"
+"PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, "
+"PhysicsServer3D.AreaParameter.Gravity, 9.8);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"3D 默认重力强度(单位为米每平方秒)。\n"
+"[b]注意:[/b]这个属性只在项目启动时读取。要在运行时改变默认重力,请使用以下代"
+"码示例:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 将默认重力强度设置为 9.8。\n"
+"PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, "
+"PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 将默认重力强度设置为 9.8。\n"
+"PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, "
+"PhysicsServer3D.AreaParameter.Gravity, 9.8);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"The default gravity direction in 3D.\n"
+"[b]Note:[/b] This property is only read when the project starts. To change "
+"the default gravity vector at runtime, use the following code sample:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Set the default gravity direction to `Vector3(0, -1, 0)`.\n"
+"PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, "
+"PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR, Vector3.DOWN)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Set the default gravity direction to `Vector3(0, -1, 0)`.\n"
+"PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, "
+"PhysicsServer3D.AreaParameter.GravityVector, Vector3.Down)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"3D 默认重力方向。\n"
+"[b]注意:[/b]这个属性只在项目启动时读取。要在运行时改变默认重力向量,请使用以"
+"下代码示例:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 将默认整理方向设置为 `Vector3(0, -1, 0)`。\n"
+"PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, "
+"PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR, Vector3.DOWN)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 将默认整理方向设置为 `Vector3(0, -1, 0)`。\n"
+"PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, "
+"PhysicsServer3D.AreaParameter.GravityVector, Vector3.Down)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
msgid ""
"The default linear damp in 3D.\n"
"[b]Note:[/b] Good values are in the range [code]0[/code] to [code]1[/code]. "
@@ -86827,30 +86611,6 @@ msgstr ""
"[b]注意:[/b]这个属性只在项目启动时读取。要在运行时改变每帧模拟的最大物理步骤"
"数,请改为设置 [member Engine.max_physics_steps_per_frame]。"
-msgid ""
-"Controls how much physics ticks are synchronized with real time. For 0 or "
-"less, the ticks are synchronized. Such values are recommended for network "
-"games, where clock synchronization matters. Higher values cause higher "
-"deviation of in-game clock and real clock, but allows smoothing out framerate "
-"jitters. The default value of 0.5 should be fine for most; values above 2 "
-"could cause the game to react to dropped frames with a noticeable delay and "
-"are not recommended.\n"
-"[b]Note:[/b] For best results, when using a custom physics interpolation "
-"solution, the physics jitter fix should be disabled by setting [member "
-"physics/common/physics_jitter_fix] to [code]0[/code].\n"
-"[b]Note:[/b] This property is only read when the project starts. To change "
-"the physics FPS at runtime, set [member Engine.physics_jitter_fix] instead."
-msgstr ""
-"控制物理周期与真实时间的同步程度。小于等于 0 时,周期是同步的。对时钟同步有要"
-"求的网络游戏建议使用此类值。较高的值会导致游戏内时钟和真实时钟的较大偏差,但可"
-"以平滑帧率抖动。大多数情况下,默认值 0.5 应该没问题;大于 2 的值可能导致游戏对"
-"丢帧作出明显延迟的反应,因此不推荐使用。\n"
-"[b]注意:[/b]为了获得最佳的结果,使用自定义物理插值解决方案时,应通过将 "
-"[member physics/common/physics_jitter_fix] 设置为 [code]0[/code] 来禁用物理抖"
-"动修复。\n"
-"[b]注意:[/b]该属性仅在项目启动时读取。 要在运行时更改物理 FPS,请改为设置 "
-"[member Engine.physics_jitter_fix]。"
-
msgid ""
"The number of fixed iterations per second. This controls how often physics "
"simulation and [method Node._physics_process] methods are run. See also "
@@ -87898,6 +87658,32 @@ msgstr ""
"除射线数量,请使用 [method RenderingServer."
"viewport_set_occlusion_rays_per_thread]。"
+msgid ""
+"If [code]true[/code], [OccluderInstance3D] nodes will be usable for occlusion "
+"culling in 3D in the root viewport. In custom viewports, [member Viewport."
+"use_occlusion_culling] must be set to [code]true[/code] instead.\n"
+"[b]Note:[/b] Enabling occlusion culling has a cost on the CPU. Only enable "
+"occlusion culling if you actually plan to use it. Large open scenes with few "
+"or no objects blocking the view will generally not benefit much from "
+"occlusion culling. Large open scenes generally benefit more from mesh LOD and "
+"visibility ranges ([member GeometryInstance3D.visibility_range_begin] and "
+"[member GeometryInstance3D.visibility_range_end]) compared to occlusion "
+"culling.\n"
+"[b]Note:[/b] Due to memory constraints, occlusion culling is not supported by "
+"default in Web export templates. It can be enabled by compiling custom Web "
+"export templates with [code]module_raycast_enabled=yes[/code]."
+msgstr ""
+"如果为 [code]true[/code],则 [OccluderInstance3D] 节点在根视口的 3D 遮挡剔除中"
+"可用。对于自定义视口,必须改为将 [member Viewport.use_occlusion_culling] 设为 "
+"[code]true[/code]。\n"
+"[b]注意:[/b]启用遮挡剔除会消耗 CPU 资源。请只在打算使用时启用遮挡剔除。阻挡视"
+"线的对象很少或根本不存在的大型开放场景通常不会因遮挡剔除而获得什么优化。相对于"
+"遮挡剔除,大型开放场景通常能够从网格 LOD 和可见范围([member "
+"GeometryInstance3D.visibility_range_begin] 和 [member GeometryInstance3D."
+"visibility_range_end])中获益。\n"
+"[b]注意:[/b]由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导"
+"出模板时使用 [code]module_raycast_enabled=yes[/code] 可以启用。"
+
msgid ""
"Number of cubemaps to store in the reflection atlas. The number of "
"[ReflectionProbe]s in a scene will be limited by this amount. A higher number "
@@ -88276,6 +88062,14 @@ msgstr ""
"无损 WebP 的默认压缩系数。解压速度通常不受压缩系数的影响。支持的值为 0 到 "
"100。"
+msgid ""
+"If [code]true[/code], enables [member Viewport.use_hdr_2d] on the root "
+"viewport. This allows 2D rendering to take advantage of effects requiring "
+"high dynamic range (e.g. 2D glow)."
+msgstr ""
+"如果为 [code]true[/code],则会在根视口上启用 [member Viewport.use_hdr_2d]。这"
+"样 2D 渲染就能够利用需要高动态范围的效果(例如 2D 辉光)。"
+
msgid ""
"If [code]true[/code], enables [member Viewport.transparent_bg] on the root "
"viewport. This allows per-pixel transparency to be effective after also "
@@ -88343,6 +88137,14 @@ msgstr "默认加载的动作映射配置。"
msgid "If [code]true[/code] Godot will setup and initialize OpenXR on startup."
msgstr "如果为 [code]true[/code],Godot 将在启动时初始化 OpenXR。"
+msgid ""
+"Specify how OpenXR should blend in the environment. This is specific to "
+"certain AR and passthrough devices where camera images are blended in by the "
+"XR compositor."
+msgstr ""
+"指定 OpenXR 应如何混合环境。针对的是部分 AR 和穿透设备,XR 合成器会混合相机图"
+"像。"
+
msgid ""
"Specify whether OpenXR should be configured for an HMD or a hand held device."
msgstr "指定是否应为 HMD 或手持设备配置 OpenXR。"
@@ -88375,6 +88177,9 @@ msgstr "指定视图配置,用于配置 OpenXR 设置单视场或立体渲染
msgid "If [code]true[/code], Godot will compile shaders required for XR."
msgstr "如果为 [code]true[/code],Godot 将编译 XR 所需的着色器。"
+msgid "Emitted when any setting is changed, up to once per process frame."
+msgstr "任何设置项发生改变的时候发出,每个处理帧最多一次。"
+
msgid "Interpolates an [Object]'s property over time."
msgstr "随时间对 [Object] 的属性进行插值。"
@@ -88615,18 +88420,6 @@ msgstr ""
"在四元数 [param pre_a]、这个向量、[param b] 以及 [param post_b] 之间按照给定"
"的 [param weight] 进行球面三次插值。"
-msgid ""
-"Performs a spherical cubic interpolation between quaternions [param pre_a], "
-"this vector, [param b], and [param post_b], by the given amount [param "
-"weight].\n"
-"It can perform smoother interpolation than [code]spherical_cubic_interpolate()"
-"[/code] by the time values."
-msgstr ""
-"在四元数 [param pre_a]、该向量、[param b] 和 [param post_b] 之间,按给定量 "
-"[param weight] 执行三次球面插值。\n"
-"它可以根据时间值执行比 [code]spherical_cubic_interpolate()[/code] 更平滑的插"
-"值。"
-
msgid ""
"W component of the quaternion (real part).\n"
"Quaternion components should usually not be manipulated directly."
@@ -88802,14 +88595,6 @@ msgid ""
msgstr ""
"返回在 [param from] 和 [param to] 之间(含端点)的伪随机 32 位无符号整数。"
-msgid ""
-"Setups a time-based seed to for this [RandomNumberGenerator] instance. Unlike "
-"the [@GlobalScope] random number generation functions, different "
-"[RandomNumberGenerator] instances can use different seeds."
-msgstr ""
-"为这个 [RandomNumberGenerator] 实例设置基于时间的种子。与 [@GlobalScope] 随机"
-"数生成函数不同,不同的 [RandomNumberGenerator] 可以使用不同的种子。"
-
msgid ""
"Initializes the random number generator state based on the given seed value. "
"A given seed will give a reproducible sequence of pseudo-random numbers.\n"
@@ -89036,6 +88821,17 @@ msgstr "添加碰撞例外,这样射线就不会报告与指定 [RID] 的碰
msgid "Removes all collision exceptions for this ray."
msgstr "删除此射线的所有碰撞例外。"
+msgid ""
+"Updates the collision information for the ray immediately, without waiting "
+"for the next [code]_physics_process[/code] call. Use this method, for "
+"example, when the ray or its parent has changed state.\n"
+"[b]Note:[/b] [member enabled] does not need to be [code]true[/code] for this "
+"to work."
+msgstr ""
+"立即更新射线的碰撞信息,不等待下一次的 [code]_physics_process[/code] 调用。例"
+"如,请在射线或其父级更改状态后使用该方法。\n"
+"[b]注意:[/b][member enabled] 不需要为 [code]true[/code] 即可生效。"
+
msgid ""
"Returns the first object that the ray intersects, or [code]null[/code] if no "
"object is intersecting the ray (i.e. [method is_colliding] returns "
@@ -89090,6 +88886,12 @@ msgid ""
"specified [RID]."
msgstr "移除碰撞例外,这样射线就会报告与指定的 [RID] 的碰撞。"
+msgid "If [code]true[/code], collisions with [Area2D]s will be reported."
+msgstr "如果为 [code]true[/code],则会报告与 [Area2D] 的碰撞。"
+
+msgid "If [code]true[/code], collisions with [PhysicsBody2D]s will be reported."
+msgstr "如果为 [code]true[/code],则会报告与 [PhysicsBody2D] 的碰撞。"
+
msgid ""
"The ray's collision mask. Only objects in at least one collision layer "
"enabled in the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
@@ -89169,6 +88971,12 @@ msgid ""
msgstr ""
"移除一个碰撞例外,以便射线确实报告与指定 [CollisionObject3D] 节点的碰撞。"
+msgid "If [code]true[/code], collisions with [Area3D]s will be reported."
+msgstr "如果为 [code]true[/code],则会报告与 [Area3D] 的碰撞。"
+
+msgid "If [code]true[/code], collisions with [PhysicsBody3D]s will be reported."
+msgstr "如果为 [code]true[/code],则会报告与 [PhysicsBody3D] 的碰撞。"
+
msgid ""
"The custom color to use to draw the shape in the editor and at run-time if "
"[b]Visible Collision Shapes[/b] is enabled in the [b]Debug[/b] menu. This "
@@ -89589,6 +89397,14 @@ msgstr ""
"要进行 MSAA 采样的数量(如果 [member enable_sample_shading] 为 [code]true[/"
"code] 则为 SSAA 采样)。值越高,抗锯齿效果越好,但会以性能为代价。"
+msgid ""
+"The sample mask array. See the [url=https://registry.khronos.org/vulkan/"
+"specs/1.3-extensions/html/vkspec.html#fragops-samplemask]sample mask Vulkan "
+"documentation[/url] for more details."
+msgstr ""
+"样本掩码。详情见 [url=https://registry.khronos.org/vulkan/specs/1.3-"
+"extensions/html/vkspec.html#fragops-samplemask]Vulkan 的样本掩码文档[/url]。"
+
msgid "Pipeline rasterization state (used by [RenderingDevice])."
msgstr "管线栅格化状态(由 [RenderingDevice] 使用)。"
@@ -89607,6 +89423,11 @@ msgid ""
"its front face."
msgstr "要使用的缠绕顺序,决定三角形的哪个面是正面。"
+msgid ""
+"The line width to use when drawing lines (in pixels). Thick lines may not be "
+"supported on all hardware."
+msgstr "绘制线段时使用的线宽(单位为像素)。可能不是所有硬件都支持粗线段。"
+
msgid ""
"The number of control points to use when drawing a patch with tessellation "
"enabled. Higher values result in higher quality at the cost of performance."
@@ -90016,23 +89837,57 @@ msgstr "顶点属性(由 [RenderingDevice] 使用)。"
msgid "A 2D axis-aligned bounding box using floating-point coordinates."
msgstr "使用浮点数坐标的 2D 轴对齐边界框。"
+msgid ""
+"Constructs a [Rect2] with its [member position] and [member size] set to "
+"[constant Vector2.ZERO]."
+msgstr ""
+"构造 [Rect2],将 [member position] 和 [member size] 设置为 [constant Vector2."
+"ZERO]。"
+
msgid "Constructs a [Rect2] as a copy of the given [Rect2]."
msgstr "构造给定 [Rect2] 的副本。"
msgid "Constructs a [Rect2] from a [Rect2i]."
msgstr "从 [Rect2i] 构造 [Rect2]。"
+msgid "Constructs a [Rect2] by [param position] and [param size]."
+msgstr "使用指定的 [param position] 和 [param size] 构造 [Rect2]。"
+
msgid ""
-"Inversely transforms (multiplies) the [Rect2] by the given [Transform2D] "
-"transformation matrix."
-msgstr "使用给定的 [Transform2D] 变换矩阵对该 [Rect2] 进行逆变换(相乘)。"
+"Constructs a [Rect2] by setting its [member position] to ([param x], [param "
+"y]), and its [member size] to ([param width], [param height])."
+msgstr ""
+"构造 [Rect2],将 [member position] 设置为 ([param x], [param y]),将 [member "
+"size] 设置为 ([param width], [param height])。"
msgid "A 2D axis-aligned bounding box using integer coordinates."
msgstr "使用整数坐标的 2D 轴对齐边界框。"
+msgid ""
+"Constructs a [Rect2i] with its [member position] and [member size] set to "
+"[constant Vector2i.ZERO]."
+msgstr ""
+"构造 [Rect2i],将 [member position] 和 [member size] 设置为 [constant "
+"Vector2i.ZERO]。"
+
msgid "Constructs a [Rect2i] as a copy of the given [Rect2i]."
msgstr "构造给定 [Rect2i] 的副本。"
+msgid ""
+"Constructs a [Rect2i] from a [Rect2]. The floating-point coordinates are "
+"truncated."
+msgstr "根据 [Rect2] 构造 [Rect2i]。会截断浮点数坐标。"
+
+msgid "Constructs a [Rect2i] by [param position] and [param size]."
+msgstr "使用指定的 [param position] 和 [param size] 构造 [Rect2i]。"
+
+msgid ""
+"Constructs a [Rect2i] by setting its [member position] to ([param x], [param "
+"y]), and its [member size] to ([param width], [param height])."
+msgstr ""
+"构造 [Rect2i],将 [member position] 设置为 ([param x], [param y]),将 [member "
+"size] 设置为 ([param width], [param height])。"
+
msgid ""
"Returns [code]true[/code] if this [Rect2i] completely encloses another one."
msgstr "如果该 [Rect2i] 完全包含另一个,则返回 [code]true[/code]。"
@@ -90048,7 +89903,7 @@ msgid ""
msgstr ""
"2D 矩形,旨在用于物理学。通常用于为 [CollisionShape2D] 提供形状。\n"
"[b]性能:[/b][RectangleShape2D] 可以快速检测碰撞。比 [CapsuleShape2D] 快,但"
-"比 [CapsuleShape2D] 慢。"
+"比 [CircleShape2D] 慢。"
msgid "The rectangle's width and height."
msgstr "该矩形的宽度和高度。"
@@ -90102,15 +89957,6 @@ msgstr ""
"内部引用增量计数器。只有在你真的知道你在做什么的时候才使用这个。\n"
"如果增量成功,返回 [code]true[/code],否则返回 [code]false[/code]。"
-msgid ""
-"Decrements the internal reference counter. Use this only if you really know "
-"what you are doing.\n"
-"Returns [code]true[/code] if the decrement was successful, [code]false[/code] "
-"otherwise."
-msgstr ""
-"内部引用减量计数器。只有在你真的知道你在做什么的时候才使用这个。\n"
-"如果减量成功,返回 [code]true[/code],否则返回 [code]false[/code]。"
-
msgid "A rectangle hint for designing UIs."
msgstr "设计 UI 使用的矩形提示。"
@@ -91386,28 +91232,6 @@ msgstr ""
"新建纹理缓冲。可以通过返回的 RID 进行访问。\n"
"RID 使用结束后,应该使用 RenderingServer 的 [method free_rid] 方法进行释放。"
-msgid ""
-"Clears the specified [param texture] by replacing all of its pixels with the "
-"specified [param color]. [param base_mipmap] and [param mipmap_count] "
-"determine which mipmaps of the texture are affected by this clear operation, "
-"while [param base_layer] and [param layer_count] determine which layers of a "
-"3D texture (or texture array) are affected by this clear operation. For 2D "
-"textures (which only have one layer by design), [param base_layer] and [param "
-"layer_count] must both be [code]0[/code].\n"
-"[b]Note:[/b] [param texture] can't be cleared while a draw list that uses it "
-"as part of a framebuffer is being created. Ensure the draw list is finalized "
-"(and that the color/depth texture using it is not set to [constant "
-"FINAL_ACTION_CONTINUE]) to clear this texture."
-msgstr ""
-"将指定的 [param texture] 清屏,将所有像素替换为指定的颜色 [param color]。"
-"[param base_mipmap] 和 [param mipmap_count] 决定该清屏操作影响纹理的哪个 "
-"mipmap,而 [param base_layer] 和 [param layer_count] 决定该清屏操作影响 3D 纹"
-"理(或纹理数组)的哪一层。如果是 2D 纹理(本来就只有一层),则 [param "
-"base_layer] 和 [param layer_count] 必须都为 [code]0[/code]。\n"
-"[b]注意:[/b]如果使用 [param texture] 的绘图列表是创建的帧缓冲的一部分,则该纹"
-"理不能被清屏。绘图列表释放后(并且使用它的颜色和深度纹理没有被设为 [constant "
-"FINAL_ACTION_CONTINUE])才能对该纹理做清屏操作。"
-
msgid ""
"Copies the [param from_texture] to [param to_texture] with the specified "
"[param from_pos], [param to_pos] and [param size] coordinates. The Z axis of "
@@ -91612,6 +91436,26 @@ msgstr ""
"[b]注意:[/b][param texture] 纹理需要获取 [constant "
"TEXTURE_USAGE_CAN_UPDATE_BIT]。"
+msgid ""
+"Creates a new uniform buffer. It can be accessed with the RID that is "
+"returned.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"RenderingDevice's [method free_rid] method."
+msgstr ""
+"新建 uniform 缓冲。可以通过返回的 RID 进行访问。\n"
+"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 方法进行释放。"
+
+msgid ""
+"Creates a new uniform set. It can be accessed with the RID that is returned.\n"
+"Once finished with your RID, you will want to free the RID using the "
+"RenderingDevice's [method free_rid] method."
+msgstr ""
+"新建 uniform 集。可以通过返回的 RID 进行访问。\n"
+"RID 使用结束后,应该使用 RenderingDevice 的 [method free_rid] 方法进行释放。"
+
+msgid "Checks if the [param uniform_set] is valid, i.e. is owned."
+msgstr "检查 [param uniform_set] 是否有效,即是否有归属。"
+
msgid ""
"Creates a vertex array based on the specified buffers. Optionally, [param "
"offsets] (in bytes) may be defined for each buffer."
@@ -93584,14 +93428,30 @@ msgstr ""
msgid "Represents the size of the [enum DataFormat] enum."
msgstr "代表 [enum DataFormat] 枚举的大小。"
+msgid "Vertex shader barrier mask."
+msgstr "顶点着色器屏障掩码。"
+
+msgid "Fragment shader barrier mask."
+msgstr "片段着色器屏障掩码。"
+
msgid "Compute barrier mask."
msgstr "计算屏障掩码。"
msgid "Transfer barrier mask."
msgstr "传输屏障掩码。"
+msgid ""
+"Raster barrier mask (vertex and fragment). Equivalent to "
+"[code]BARRIER_MASK_VERTEX | BARRIER_MASK_FRAGMENT[/code]."
+msgstr ""
+"光栅屏障掩码(顶点及片段)。等价于 [code]BARRIER_MASK_VERTEX | "
+"BARRIER_MASK_FRAGMENT[/code]。"
+
+msgid "Barrier mask for all types (vertex, fragment, compute, transfer)."
+msgstr "所有类型的屏障掩码(顶点、片段、计算、传输)。"
+
msgid "No barrier for any type."
-msgstr "没有任何类型的屏障。"
+msgstr "任何类型都没有屏障。"
msgid "1-dimensional texture."
msgstr "一维纹理。"
@@ -93854,12 +93714,27 @@ msgstr ""
"32 位无符号整数格式的索引缓冲。对可指定索引最大值的限制为 [code]4294967295[/"
"code]。"
+msgid "Sampler uniform."
+msgstr "采样器 uniform。"
+
msgid "Sampler uniform with a texture."
msgstr "带有纹理的采样器 uniform。"
msgid "Texture uniform."
msgstr "纹理 uniform。"
+msgid "Image uniform."
+msgstr "图像 uniform。"
+
+msgid "Texture buffer uniform."
+msgstr "纹理缓冲 uniform。"
+
+msgid "Sampler uniform with a texture buffer."
+msgstr "带有纹理缓冲的采样器 uniform。"
+
+msgid "Image buffer uniform."
+msgstr "图像缓冲 uniform。"
+
msgid "Uniform buffer uniform."
msgstr "Uniform 缓冲区 uniform。"
@@ -95709,6 +95584,14 @@ msgstr ""
"强制在 CPU 和 GPU 之间进行同步,某些情况下是必须的。请只在需要时调用,因为 "
"CPU-GPU 同步对性能有影响。"
+msgid ""
+"Tries to free an object in the RenderingServer. To avoid memory leaks, this "
+"should be called after using an object as memory management does not occur "
+"automatically when using RenderingServer directly."
+msgstr ""
+"尝试释放 RenderingServer 中的某个对象。为了避免内存泄漏,应该在使用完对象后调"
+"用,因为直接使用 RenderingServer 时不会自动进行内存管理。"
+
msgid ""
"Returns the default clear color which is used when a specific clear color has "
"not been selected. See also [method set_default_clear_color]."
@@ -98558,6 +98441,18 @@ msgstr ""
"烘焙时灯光将被忽略。这是最快的模式,但是在烘焙全局照明时仍会考虑该灯光。该模式"
"通常应用于快速变化的动态灯光,因为全局照明的效果在这些灯光上不太明显。"
+msgid ""
+"Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI "
+"([member Environment.sdfgi_enabled])). The light can be moved around or "
+"modified, but its global illumination will not update in real-time. This is "
+"suitable for subtle changes (such as flickering torches), but generally not "
+"large changes such as toggling a light on and off."
+msgstr ""
+"在静态烘焙([VoxelGI]、[LightmapGI]、SDFGI([member Environment."
+"sdfgi_enabled]))时,考虑了灯光。灯光可以四处移动或修改,但其全局照明不会实时"
+"更新。这适用于细微的变化(例如闪烁的手电筒),但通常不适用于大的变化,例如打开"
+"和关闭灯光。"
+
msgid ""
"Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member "
"Environment.sdfgi_enabled]) only). The light can be moved around or modified "
@@ -99984,6 +99879,43 @@ msgid ""
"Hardware supports multithreading. This enum is currently unused in Godot 3.x."
msgstr "硬件支持多线程。这个枚举目前在 Godot 3.x 中没有使用。"
+msgid "The requested screen space AA applied in post processing."
+msgstr "请求在后期处理中应用的屏幕空间抗锯齿。"
+
+msgid "The target (upscale) size if scaling is used."
+msgstr "使用缩放时的目标(放大)大小。"
+
+msgid "Bias applied to mipmaps."
+msgstr "应用于 mipmap 的偏置。"
+
+msgid "The number of views we're rendering."
+msgstr "渲染的视图数。"
+
+msgid "Frees all buffers related to this context."
+msgstr "释放与这个上下文相关的所有缓冲。"
+
+msgid "Returns a cached texture with this name."
+msgstr "返回具有该名称的缓存纹理。"
+
+msgid "Returns a specific slice (layer or mipmap) for a cached texture."
+msgstr "返回缓存纹理的指定切片(层或 mipmap)。"
+
+msgid "Returns the texture size of a given slice of a cached texture."
+msgstr "返回缓存纹理给定切片的纹理大小。"
+
+msgid ""
+"Returns a specific view of a slice (layer or mipmap) for a cached texture."
+msgstr "返回缓存纹理的指定切片视图(层或 mipmap)。"
+
+msgid "Returns [code]true[/code] if TAA is enabled."
+msgstr "如果启用 TAA,则返回 [code]true[/code]。"
+
+msgid "Returns the view count for the associated viewport."
+msgstr "返回关联视口的视图数。"
+
+msgid "Returns [code]true[/code] if a cached texture exists for this name."
+msgstr "如果存在使用该名称的缓冲纹理,则返回 [code]true[/code]。"
+
msgid "Base class for serializable objects."
msgstr "可序列化对象的基类。"
@@ -100088,14 +100020,6 @@ msgstr ""
"instantiate])。\n"
"[b]注意:[/b]运行时,在已创建副本的资源上修改该属性不会有效果。"
-msgid ""
-"An optional name for this resource. When defined, its value is displayed to "
-"represent the resource in the Inspector dock. For built-in scripts, the name "
-"is displayed as part of the tab name in the script editor."
-msgstr ""
-"这个资源的可选名称。定义后会在“检查器”面板中显示这个值来代表该资源。对于内置脚"
-"本,该名称会在脚本编辑器中作为选项卡名称的一部分显示。"
-
msgid ""
"The unique path to this resource. If it has been saved to disk, the value "
"will be its filepath. If the resource is exclusively contained within a "
@@ -100323,6 +100247,199 @@ msgstr ""
"导入器的导入顺序一般应低于[code]100[/code],以避免导入依赖自定义资源的场景时出"
"现问题。"
+msgid "Bitmap fonts - Using fonts"
+msgstr "位图字体——使用字体"
+
+msgid "Imports comma-separated values"
+msgstr "导入 CSV"
+
+msgid "Importing translations"
+msgstr "导入翻译"
+
+msgid "Dynamic fonts - Using fonts"
+msgstr "动态字体——使用字体"
+
+msgid ""
+"Source font size used to generate MSDF textures. Higher values allow for more "
+"precision, but are slower to render and require more memory. Only increase "
+"this value if you notice a visible lack of precision in glyph rendering. Only "
+"effective if [member multichannel_signed_distance_field] is [code]true[/code]."
+msgstr ""
+"用于生成 MSDF 纹理的源字体大小。较高的值允许更高的精度,但渲染速度较慢并且需要"
+"更多内存。只有当注意到字形渲染中明显缺乏精度时,才增加该属性的值。仅在 "
+"[member multichannel_signed_distance_field] 为 [code]true[/code] 时有效。"
+
+msgid ""
+"If set to [code]true[/code], the default font will use multichannel signed "
+"distance field (MSDF) for crisp rendering at any size. Since this approach "
+"does not rely on rasterizing the font every time its size changes, this "
+"allows for resizing the font in real-time without any performance penalty. "
+"Text will also not look grainy for [Control]s that are scaled down (or for "
+"[Label3D]s viewed from a long distance).\n"
+"MSDF font rendering can be combined with [member generate_mipmaps] to further "
+"improve font rendering quality when scaled down."
+msgstr ""
+"如果设置为 [code]true[/code],默认字体将使用多通道带符号距离场(MSDF),任何尺"
+"寸都能够进行清晰的渲染。由于这种方法不需要在每次字体大小更改时都对字体进行光栅"
+"化,因此可以实时调整字体大小,不会造成任何性能损失。对于按比例缩小的 [Control]"
+"(或从远距离查看的 [Label3D]),文本也不会看起来有颗粒感。\n"
+"MSDF 字体渲染可以与 [member generate_mipmaps] 结合使用,从而进一步提高缩小时的"
+"字体渲染质量。"
+
+msgid ""
+"The OpenType features to enable, disable or set a value for this font. This "
+"can be used to enable optional features provided by the font, such as "
+"ligatures or alternative glyphs. The list of supported OpenType features "
+"varies on a per-font basis."
+msgstr ""
+"要为这个字体启用、禁用或设值的 OpenType 特性。可以用来启用字体所提供的可选特"
+"性,例如合字和备选字形。不同字体所支持的 OpenType 特性列表各有不同。"
+
+msgid ""
+"If set to a value greater than [code]0.0[/code], overrides the oversampling "
+"factor for the font. This can be used to render the font at a higher or lower "
+"resolution than intended without affecting its physical size. In most cases, "
+"this should be left at [code]0.0[/code]."
+msgstr ""
+"如果设为大于 [code]0.0[/code] 的值,则会覆盖字体的过采样系数。可以用来在保持字"
+"体物理大小的前提下,使用比原计划更高或更低的分辨率渲染。大多数情况下应该保持"
+"为 [code]0.0[/code]。"
+
+msgid "Importing audio samples"
+msgstr "导入音频样本"
+
+msgid "Importing 3D scenes"
+msgstr "导入 3D 场景"
+
+msgid "Imports a WAV audio file for playback."
+msgstr "导入 WAV 音频文件,用于播放。"
+
+msgid ""
+"WAV is an uncompressed format, which can provide higher quality compared to "
+"Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means "
+"high numbers of WAV sounds can be played at the same time, even on low-end "
+"deviceS."
+msgstr ""
+"WAV 是未经压缩的格式,能够提供比 Ogg Vorbis 和 MP3 更高的质量。解压时的 CPU 开"
+"销也最低。因此,即便在低端设备上,也能够同时播放大量的 WAV 声音。"
+
+msgid ""
+"The compression mode to use on import.\n"
+"[b]Disabled:[/b] Imports audio data without any compression. This results in "
+"the highest possible quality.\n"
+"[b]RAM (Ima-ADPCM):[/b] Performs fast lossy compression on import. Low CPU "
+"cost, but quality is noticeably decreased compared to Ogg Vorbis or even MP3."
+msgstr ""
+"导入时使用的压缩模式。\n"
+"[b]Disabled:[/b]导入音频数据,不进行压缩。得到的质量最高。\n"
+"[b]RAM (Ima-ADPCM):[/b]导入时进行快速有损压缩。CPU 开销较低,但质量比 Ogg "
+"Vorbis 甚至是 MP3 都显著更低。"
+
+msgid ""
+"The begin loop point to use when [member edit/loop_mode] is [b]Forward[/b], "
+"[b]Ping-Pong[/b] or [b]Backward[/b]. This is set in seconds after the "
+"beginning of the audio file."
+msgstr ""
+"循环起始点,[member edit/loop_mode] 为 [b]Forward[/b]、[b]Ping-Pong[/b]、"
+"[b]Backward[/b] 时使用。设置的是音频文件开始之后的秒数。"
+
+msgid ""
+"The end loop point to use when [member edit/loop_mode] is [b]Forward[/b], "
+"[b]Ping-Pong[/b] or [b]Backward[/b]. This is set in seconds after the "
+"beginning of the audio file. A value of [code]-1[/code] uses the end of the "
+"audio file as the end loop point."
+msgstr ""
+"循环结束点,[member edit/loop_mode] 为 [b]Forward[/b]、[b]Ping-Pong[/b]、"
+"[b]Backward[/b] 时使用。设置的是音频文件开始之后的秒数。[code]-1[/code] 表示使"
+"用音频文件的末尾作为循环结束点。"
+
+msgid ""
+"Controls how audio should loop. This is automatically read from the WAV "
+"metadata on import.\n"
+"[b]Disabled:[/b] Don't loop audio, even if metadata indicates the file should "
+"be played back looping.\n"
+"[b]Forward:[/b] Standard audio looping.\n"
+"[b]Ping-Pong:[/b] Play audio forward until it's done playing, then play it "
+"backward and repeat. This is similar to mirrored texture repeat, but for "
+"audio.\n"
+"[b]Backward:[/b] Play audio in reverse and loop back to the end when done "
+"playing.\n"
+"[b]Note:[/b] In [AudioStreamPlayer], the [signal AudioStreamPlayer.finished] "
+"signal won't be emitted for looping audio when it reaches the end of the "
+"audio file, as the audio will keep playing indefinitely."
+msgstr ""
+"控制音频如何循环。导入时会自动从 WAV 元数据读取。\n"
+"[b]Disabled:[/b]不循环,即便元数据显示该文件应该在播放时循环。\n"
+"[b]Forward:[/b]标准音频循环。\n"
+"[b]Ping-Pong:[/b]正向播放音频,播放完以后再反向播放,再不断重复。原理类似于纹"
+"理的镜像重复。\n"
+"[b]Backward:[/b]逆向播放音频,播放完以后再从末尾开始循环播放。\n"
+"[b]注意:[/b]在 [AudioStreamPlayer] 中,循环音频到达音频文件末尾时不会发出 "
+"[signal AudioStreamPlayer.finished] 信号,因为音频会无限循环播放。"
+
+msgid ""
+"If [code]true[/code], normalize the audio volume so that its peak volume is "
+"equal to 0 dB. When enabled, normalization will make audio sound louder "
+"depending on its original peak volume."
+msgstr ""
+"如果为 [code]true[/code],则会将音频音量进行归一化,让最高音量等于 0 dB。启用"
+"后,音频听起来会更响,具体取决于原始的最高音量。"
+
+msgid ""
+"If [code]true[/code], automatically trim the beginning and end of the audio "
+"if it's lower than -50 dB after normalization (see [member edit/normalize]). "
+"This prevents having files with silence at the beginning or end, which "
+"increases their size unnecessarily and adds latency to the moment they are "
+"played back. A fade-in/fade-out period of 500 samples is also used during "
+"trimming to avoid audible pops."
+msgstr ""
+"如果为 [code]true[/code],则会自动修剪掉音频开头和结尾处归一化后低于 -50 dB 的"
+"部分(见 [member edit/normalize])。这样就能够避免出现文件开头和结尾出现空白的"
+"情况,这种情况会占用不必要的文件大小,同时也会在播放时导致延迟。修剪时还会使"
+"用 500 个采样进行淡入/淡出,避免产生爆音。"
+
+msgid ""
+"If [code]true[/code], forces the imported audio to use 8-bit quantization if "
+"the source file is 16-bit or higher.\n"
+"Enabling this is generally not recommended, as 8-bit quantization decreases "
+"audio quality significantly. If you need smaller file sizes, consider using "
+"Ogg Vorbis or MP3 audio instead."
+msgstr ""
+"如果为 [code]true[/code],则会在源文件至少为 16 位时,强制让导入的音频使用 8 "
+"位量化。\n"
+"通常不建议启用,因为 8 位量化会显著降低音质。如果你需要让文件大小更小,请考虑"
+"改用 Ogg Vorbis 或 MP3 音频。"
+
+msgid ""
+"If set to a value greater than [code]0[/code], forces the audio's sample rate "
+"to be reduced to a value lower than or equal to the value specified in "
+"[member force/max_rate_hz].\n"
+"This can decrease file size noticeably on certain sounds, without impacting "
+"quality depending on the actual sound's contents. See [url=$DOCS_URL/"
+"tutorials/assets_pipeline/importing_audio_samples.html#doc-importing-audio-"
+"samples-best-practices]Best practices[/url] for more information."
+msgstr ""
+"如果设成比 [code]0[/code] 大的值,则会强制让音频的采样率降低至小于等于 "
+"[member force/max_rate_hz] 的值。\n"
+"可以让部分声音在不影响音质的同时降低文件大小,具体取决于声音的内容。详见"
+"[url=$DOCS_URL/tutorials/assets_pipeline/importing_audio_samples.html#doc-"
+"importing-audio-samples-best-practices]《最佳实践》[/url]。"
+
+msgid ""
+"The frequency to limit the imported audio sample to (in Hz). Only effective "
+"if [member force/max_rate] is [code]true[/code]."
+msgstr ""
+"导入音频采样的频率限制(单位为赫兹)。仅当 [member force/max_rate] 为 "
+"[code]true[/code] 时有效。"
+
+msgid ""
+"If [code]true[/code], forces the imported audio to be mono if the source file "
+"is stereo. This decreases the file size by 50% by merging the two channels "
+"into one."
+msgstr ""
+"如果为 [code]true[/code],则会在源文件为立体声时,强制让导入的音频使用单声道。"
+"将两个声道合并能够将文件大小降低 50%。"
+
msgid "A singleton for loading resource files."
msgstr "用于加载资源文件的单例。"
@@ -100586,19 +100703,6 @@ msgstr "返回可用于保存给定类型的资源的扩展列表。"
msgid "Unregisters the given [ResourceFormatSaver]."
msgstr "取消注册给定的 [ResourceFormatSaver]。"
-msgid ""
-"Saves a resource to disk to the given path, using a [ResourceFormatSaver] "
-"that recognizes the resource object. If [param path] is empty, "
-"[ResourceSaver] will try to use [member Resource.resource_path].\n"
-"The [param flags] bitmask can be specified to customize the save behavior "
-"using [enum SaverFlags] flags.\n"
-"Returns [constant OK] on success."
-msgstr ""
-"使用识别资源对象的 [ResourceFormatSaver] 将资源保存到给定路径。如果 [param "
-"path] 为空,则 [ResourceSaver] 将尝试使用 [member Resource.resource_path]。\n"
-"可以指定 [param flags] 位掩码以使用 [enum SaverFlags] 标志自定义保存行为。\n"
-"成功时返回 [constant OK]。"
-
msgid "No resource saving option."
msgstr "没有资源保存选项。"
@@ -100776,42 +100880,6 @@ msgstr "将网格指定为两个互相垂直的面,形成十字形。"
msgid "A custom effect for a [RichTextLabel]."
msgstr "[RichTextLabel] 的自定义效果。"
-msgid ""
-"A custom effect for a [RichTextLabel].\n"
-"[b]Note:[/b] For a [RichTextEffect] to be usable, a BBCode tag must be "
-"defined as a member variable called [code]bbcode[/code] in the script.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# The RichTextEffect will be usable like this: `[example]Some text[/"
-"example]`\n"
-"var bbcode = \"example\"\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// The RichTextEffect will be usable like this: `[example]Some text[/"
-"example]`\n"
-"string bbcode = \"example\";\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]Note:[/b] As soon as a [RichTextLabel] contains at least one "
-"[RichTextEffect], it will continuously process the effect unless the project "
-"is paused. This may impact battery life negatively."
-msgstr ""
-"[RichTextLabel] 的自定义效果。\n"
-"[b]注意:[/b]要使用 [RichTextEffect],必须在脚本中定义名为 [code]bbcode[/"
-"code] 的成员变量作为 BBCode 标签。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"# 使用 RichTextEffect 的方式是这样的:`[example]Some text[/example]`\n"
-"var bbcode = \"example\"\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// 使用 RichTextEffect 的方式是这样的:`[example]Some text[/example]`\n"
-"string bbcode = \"example\";\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"[b]注意:[/b]只要 [RichTextLabel] 包含至少一个 [RichTextEffect],它就会持续处"
-"理效果,除非项目暂停。这可能会对电池寿命产生负面影响。"
-
msgid ""
"Override this method to modify properties in [param char_fx]. The method must "
"return [code]true[/code] if the character could be transformed successfully. "
@@ -100827,39 +100895,6 @@ msgid ""
"and basic formatting."
msgstr "用于显示文本的控件,文本中能够包含不同的字体样式、图片以及基础格式。"
-msgid ""
-"A control for displaying text that can contain custom fonts, images, and "
-"basic formatting. [RichTextLabel] manages these as an internal tag stack. It "
-"also adapts itself to given width/heights.\n"
-"[b]Note:[/b] Assignments to [member text] clear the tag stack and reconstruct "
-"it from the property's contents. Any edits made to [member text] will erase "
-"previous edits made from other manual sources such as [method append_text] "
-"and the [code]push_*[/code] / [method pop] methods.\n"
-"[b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For "
-"example, instead of using [code][b]bold[i]bold italic[/b]italic[/i][/code], "
-"use [code][b]bold[i]bold italic[/i][/b][i]italic[/i][/code].\n"
-"[b]Note:[/b] [code]push_*/pop_*[/code] functions won't affect BBCode.\n"
-"[b]Note:[/b] Unlike [Label], [RichTextLabel] doesn't have a [i]property[/i] "
-"to horizontally align text to the center. Instead, enable [member "
-"bbcode_enabled] and surround the text in a [code][center][/code] tag as "
-"follows: [code][center]Example[/center][/code]. There is currently no built-"
-"in way to vertically align text either, but this can be emulated by relying "
-"on anchors/containers and the [member fit_content] property."
-msgstr ""
-"用于显示文本的控件,文本中能够包含自定义字体、图片以及基础格式。"
-"[RichTextLabel] 使用内部标签栈管理这些内容。它还可以适应给定的宽度和高度。\n"
-"[b]注意:[/b]对 [member text] 赋值会将标签栈清空并根据该属性的内容重建。对 "
-"[member text] 所做的任何编辑都将擦除之前从 [method append_text] 和 "
-"[code]push_*[/code] / [method pop] 方法等其他手动来源所做的编辑。\n"
-"[b]注意:[/b]RichTextLabel 不支持纠缠的 BBCode 标签。例如,请不要使用 [code]"
-"[b]加粗[i]加粗斜体[/b]斜体[/i][/code],请改为 [code][b]加粗[i]加粗斜体[/i][/b]"
-"[i]斜体[/i][/code]。\n"
-"[b]注意:[/b][code]push_*/pop[/code] 函数不会影响 BBCode。\n"
-"[b]注意:[/b]与 [Label] 不同,[RichTextLabel] 没有使文本水平居中的[i]属性[/"
-"i]。请启用 [member bbcode_enabled] 并将文本包围在 [code][center][/code] 标签"
-"中,类似:[code][center]示例[/center][/code]。目前也没有垂直对齐文本的内置方"
-"法,但这可以通过使用锚点/容器和 [member fit_content] 属性来模拟。"
-
msgid "GUI Rich Text/BBcode Demo"
msgstr "GUI 富文本/BBcode 演示"
@@ -101136,31 +101171,6 @@ msgstr ""
"终止当前标签。使用 [code]push_*[/code] 方法之后手动关闭 BBCodes。不需要遵循 "
"[code]add_*[/code] 方法。"
-msgid "Adds a [code][bgcolor][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][bgcolor][/code] 标签。"
-
-msgid ""
-"Adds a [code][font][/code] tag with a bold font to the tag stack. This is the "
-"same as adding a [code][b][/code] tag if not currently in a [code][i][/code] "
-"tag."
-msgstr ""
-"在标签栈中添加 [code][font][/code] 标签,字体为黑体。如果当前没有 [code][i][/"
-"code] 标签,则与添加 [code][b][/code] 标签相同。"
-
-msgid ""
-"Adds a [code][font][/code] tag with a bold italics font to the tag stack."
-msgstr "在标签栈中添加 [code][font][/code] 标签,字体为粗斜体。"
-
-msgid ""
-"Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code]"
-"[table][/code] tag. See [method push_table] for details."
-msgstr ""
-"在标签栈中添加 [code][cell][/code] 标签。必须位于 [code][table][/code] 标签"
-"内。详见 [method push_table]。"
-
-msgid "Adds a [code][color][/code] tag to the tag stack."
-msgstr "在标签栈中添加 [code][color][/code] 标签。"
-
msgid ""
"Adds a custom effect tag to the tag stack. The effect does not need to be in "
"[member custom_effects]. The environment is directly passed to the effect."
@@ -101168,90 +101178,6 @@ msgstr ""
"将一个自定义效果标签添加到标签栈。效果不需要在 [member custom_effects] 中。环"
"境被直接传入给效果。"
-msgid ""
-"Adds a [code][dropcap][/code] tag to the tag stack. Drop cap (dropped "
-"capital) is a decorative element at the beginning of a paragraph that is "
-"larger than the rest of the text."
-msgstr ""
-"将 [code][dropcap][/code] 标签添加到标签堆栈中。首字下沉(dropped capital)是"
-"一个装饰性元素,位于段落开头,比其余文本要大。"
-
-msgid "Adds a [code][fgcolor][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][fgcolor][/code] 标签。"
-
-msgid ""
-"Adds a [code][font_size][/code] tag to the tag stack. Overrides default font "
-"size for its duration."
-msgstr ""
-"在标签栈中添加 [code][font_size][/code] 标签。在其有效期内覆盖默认字体大小。"
-
-msgid ""
-"Adds a [code][hint][/code] tag to the tag stack. Same as BBCode [code]"
-"[hint=something]{text}[/hint][/code]."
-msgstr ""
-"向标签栈中添加 [code][hint][/code] 标签。类似于 BBCode 的 [code]"
-"[hint=something]{text}[/hint][/code]。"
-
-msgid ""
-"Adds an [code][indent][/code] tag to the tag stack. Multiplies [param level] "
-"by current [member tab_size] to determine new margin length."
-msgstr ""
-"添加一个 [code][indent][/code] 标签到标签栈。将 [param level] 乘以当前 "
-"[member tab_size] 以确定新的边距长度。"
-
-msgid ""
-"Adds a [code][font][/code] tag with an italics font to the tag stack. This is "
-"the same as adding an [code][i][/code] tag if not currently in a [code][b][/"
-"code] tag."
-msgstr ""
-"在标签栈中添加 [code][font][/code] 标签,字体为斜体。如果当前不在 [code][b][/"
-"code] 标签中,则与添加 [code][i][/code] 标签相同。"
-
-msgid ""
-"Adds [code][ol][/code] or [code][ul][/code] tag to the tag stack. Multiplies "
-"[param level] by current [member tab_size] to determine new margin length."
-msgstr ""
-"将 [code][ol][/code] 或 [code][ul][/code] 标签添加到标签堆栈中。将 [param "
-"level] 乘以当前 [member tab_size] 来确定新的边距长度。"
-
-msgid ""
-"Adds a meta tag to the tag stack. Similar to the BBCode [code][url=something]"
-"{text}[/url][/code], but supports non-[String] metadata types."
-msgstr ""
-"在标签栈中添加元标签。类似于 BBCode 的 [code][url=something]{text}[/url][/"
-"code],但支持非 [String] 元数据类型。"
-
-msgid "Adds a [code][font][/code] tag with a monospace font to the tag stack."
-msgstr "在标签栈中添加 [code][font][/code] 标签,该标签为等宽字体。"
-
-msgid "Adds a [code][font][/code] tag with a normal font to the tag stack."
-msgstr "在标签栈中添加具有正常字体的 [code][font][/code] 标签。"
-
-msgid ""
-"Adds a [code][outline_color][/code] tag to the tag stack. Adds text outline "
-"for its duration."
-msgstr ""
-"在标签栈中添加 [code][outline_color][/code] 标签。在其有效期内为文本添加轮廓。"
-
-msgid ""
-"Adds a [code][outline_size][/code] tag to the tag stack. Overrides default "
-"text outline size for its duration."
-msgstr ""
-"在标签栈中添加 [code][outline_size][/code] 标签。在其有效期内覆盖默认的文本轮"
-"廓大小。"
-
-msgid "Adds a [code][p][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][p][/code] 标签。"
-
-msgid "Adds a [code][s][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][s][/code] 标签。"
-
-msgid "Adds a [code][table=columns,inline_align][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][table=columns,inline_align][/code] 标签。"
-
-msgid "Adds a [code][u][/code] tag to the tag stack."
-msgstr "向标签栈中添加 [code][u][/code] 标签。"
-
msgid ""
"Removes a paragraph of content from the label. Returns [code]true[/code] if "
"the paragraph exists.\n"
@@ -101337,20 +101263,6 @@ msgstr ""
"如果为 [code]true[/code],该标签的最小尺寸会自动更新,适应其内容,与 [Label] "
"的行为相匹配。"
-msgid ""
-"If [code]true[/code], the label underlines hint tags such as [code]"
-"[hint=description]{text}[/hint][/code]."
-msgstr ""
-"如果为 [code]true[/code],则该标签节点会在 hint 标记下,加下划线,例如 [code]"
-"[hint=description]{text}[/hint][/code]。"
-
-msgid ""
-"If [code]true[/code], the label underlines meta tags such as [code][url]{text}"
-"[/url][/code]."
-msgstr ""
-"如果为 [code]true[/code],则会在元标签下划线,例如 [code][url]{text}[/url][/"
-"code]。"
-
msgid ""
"The delay after which the loading progress bar is displayed, in milliseconds. "
"Set to [code]-1[/code] to disable progress bar entirely.\n"
@@ -101389,43 +101301,12 @@ msgstr ""
"与单个制表符长度关联的空格数。不影响文本标签中的 [code]\\t[/code],只影响缩进"
"标签。"
-msgid ""
-"The label's text in BBCode format. Is not representative of manual "
-"modifications to the internal tag stack. Erases changes made by other methods "
-"when edited.\n"
-"[b]Note:[/b] If [member bbcode_enabled] is [code]true[/code], it is unadvised "
-"to use the [code]+=[/code] operator with [code]text[/code] (e.g. [code]text "
-"+= \"some string\"[/code]) as it replaces the whole text and can cause "
-"slowdowns. It will also erase all BBCode that was added to stack using "
-"[code]push_*[/code] methods. Use [method append_text] for adding text "
-"instead, unless you absolutely need to close a tag that was opened in an "
-"earlier method call."
-msgstr ""
-"以 BBCode 格式表示的标签的文本。当编辑时,不代表对内部标签栈所做的手动修改。在"
-"编辑时将擦除使用其他方法添加的更改。\n"
-"[b]注意:[/b]如果 [member bbcode_enabled] 是 [code]true[/code],则不建议使用 "
-"[code]text += \"some string\"[/code] 这样的 [code]+=[/code] 操作符,因为它会替"
-"换整个文本,并可能导致减速。它还将擦除使用 [code]push_*[/code] 方法添加到堆栈"
-"中的所有 BBCode。可使用 [method append_text] 来添加文本,除非你绝对需要关闭在"
-"之前的方法调用中打开的标记。"
-
msgid "If [code]true[/code], text processing is done in a background thread."
msgstr "如果为 [code]true[/code],则文本处理在后台线程中完成。"
msgid "Triggered when the document is fully loaded."
msgstr "当文档完全加载时触发。"
-msgid ""
-"Triggered when the user clicks on content between meta tags. If the meta is "
-"defined in text, e.g. [code][url={\"data\"=\"hi\"}]hi[/url][/code], then the "
-"parameter for this signal will be a [String] type. If a particular type or an "
-"object is desired, the [method push_meta] method must be used to manually "
-"insert the data into the tag stack."
-msgstr ""
-"当用户点击元标记之间的内容时触发。如果元是在文本中定义的,例如[code]"
-"[url={\"data\"=\"hi\"}]hi[/url][/code],则该信号的参数为[String]类型。如果需要"
-"特定类型或对象,则必须使用 [method push_meta] 方法将数据手动插入标签栈。"
-
msgid "Triggers when the mouse exits a meta tag."
msgstr "当鼠标退出元标签时触发。"
@@ -101491,12 +101372,6 @@ msgstr "表中元素的水平间距。"
msgid "The vertical separation of elements in a table."
msgstr "表中元素的垂直间距。"
-msgid "The horizontal padding around a highlighting and background color box."
-msgstr "水平边距,用于高亮及背景色框。"
-
-msgid "The vertical padding around a highlighting and background color box."
-msgstr "垂直边距,用于高亮及背景色框。"
-
msgid "The font used for bold text."
msgstr "用于粗体字的字体。"
@@ -101527,22 +101402,6 @@ msgstr "用于等宽文本的字体大小。"
msgid "The default text font size."
msgstr "默认文本字体大小。"
-msgid ""
-"The background used when the [RichTextLabel] is focused. The [code]focus[/"
-"code] [StyleBox] is displayed [i]over[/i] the base [StyleBox], so a partially "
-"transparent [StyleBox] should be used to ensure the base [StyleBox] remains "
-"visible. A [StyleBox] that represents an outline or an underline works well "
-"for this purpose. To disable the focus visual effect, assign a "
-"[StyleBoxEmpty] resource. Note that disabling the focus visual effect will "
-"harm keyboard/controller navigation usability, so this is not recommended for "
-"accessibility reasons."
-msgstr ""
-"该 [RichTextLabel] 处于聚焦状态时使用的背景。[code]focus[/code] [StyleBox] 显"
-"示在基础 [StyleBox] [i]之上[/i],所以应该使用部分透明的 [StyleBox],确保基础 "
-"[StyleBox] 仍然可见。代表轮廓或下划线的 [StyleBox] 可以很好地实现这个目的。要"
-"禁用聚焦的视觉效果,请指定 [StyleBoxEmpty] 资源。请注意,禁用聚焦的视觉效果会"
-"影响使用键盘/手柄进行导航的可用性,所以出于可访问性的原因,不建议这样做。"
-
msgid "The normal background for the [RichTextLabel]."
msgstr "[RichTextLabel] 的正常背景。"
@@ -102255,69 +102114,6 @@ msgstr ""
"生 RigidBody3D 的重力。例如,值为 1 表示正常重力,值为 2 将施加双倍重力,而值"
"为 0.5 将施加一半重力到该对象。"
-msgid ""
-"The body's moment of inertia. This is like mass, but for rotation: it "
-"determines how much torque it takes to rotate the body on each axis. The "
-"moment of inertia is usually computed automatically from the mass and the "
-"shapes, but this property allows you to set a custom value.\n"
-"If set to [code]Vector3.ZERO[/code], inertia is automatically computed "
-"(default value).\n"
-"[b]Note:[/b] This value does not change when inertia is automatically "
-"computed. Use [PhysicsServer3D] to get the computed inertia.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"@onready var ball = $Ball\n"
-"\n"
-"func get_ball_inertia():\n"
-" return PhysicsServer3D.body_get_direct_state(ball.get_rid())."
-"inverse_inertia.inverse()\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"private RigidBody3D _ball;\n"
-"\n"
-"public override void _Ready()\n"
-"{\n"
-" _ball = GetNode(\"Ball\");\n"
-"}\n"
-"\n"
-"private Vector3 GetBallInertia()\n"
-"{\n"
-" return PhysicsServer3D.BodyGetDirectState(_ball.GetRid()).InverseInertia."
-"Inverse();\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-msgstr ""
-"该物体的惯性力矩。与质量类似,但适用于旋转:用于确定各个轴上需要施加多少扭矩才"
-"能让该物体旋转。通常会自动根据质量和形状计算惯性力矩,但这个属性能够让你设置自"
-"定义的值。\n"
-"设置为 [code]Vector3.ZERO[/code] 时,会自动计算惯性(默认值)。\n"
-"[b]注意:[/b]自动计算出惯性后,这个值不会改变。请使用 [PhysicsServer3D] 获取计"
-"算出的惯性。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"@onready var ball = $Ball\n"
-"\n"
-"func get_ball_inertia():\n"
-" return PhysicsServer3D.body_get_direct_state(ball.get_rid())."
-"inverse_inertia.inverse()\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"private RigidBody3D _ball;\n"
-"\n"
-"public override void _Ready()\n"
-"{\n"
-" _ball = GetNode(\"Ball\");\n"
-"}\n"
-"\n"
-"private Vector3 GetBallInertia()\n"
-"{\n"
-" return PhysicsServer3D.BodyGetDirectState(_ball.GetRid()).InverseInertia."
-"Inverse();\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]"
-
msgid ""
"Emitted when a collision with another [PhysicsBody3D] or [GridMap] occurs. "
"Requires [member contact_monitor] to be set to [code]true[/code] and [member "
@@ -102676,16 +102472,54 @@ msgid ""
"configured to be synchronized on spawn."
msgstr "返回属性是否配置为在出生时同步,该属性由 [param path] 指定。"
+msgid ""
+"Sets the synchronization mode for the property identified by the given [param "
+"path]. See [enum ReplicationMode]."
+msgstr "为路径为 [param path] 的属性设置同步模式。见 [enum ReplicationMode]。"
+
msgid ""
"Sets whether the property identified by the given [param path] is configured "
"to be synchronized on spawn."
-msgstr "设置属性是否配置为在出生时同步,该属性由 [param path] 指定。"
+msgstr "设置是否将路径为 [param path] 的属性配置为在出生时同步。"
+
+msgid ""
+"Sets whether the property identified by the given [param path] is configured "
+"to be synchronized on process.\n"
+"[i]Deprecated.[/i] Use [method property_set_replication_mode] with [constant "
+"REPLICATION_MODE_ALWAYS] instead."
+msgstr ""
+"设置是否将路径为 [param path] 的属性配置为在处理时同步。\n"
+"[i]已废弃。[/i]请改为使用 [constant REPLICATION_MODE_ALWAYS] 调用 [method "
+"property_set_replication_mode]。"
+
+msgid ""
+"Sets whether the property identified by the given [param path] is configured "
+"to be reliably synchronized when changes are detected on process.\n"
+"[i]Deprecated.[/i] Use [method property_set_replication_mode] with [constant "
+"REPLICATION_MODE_ON_CHANGE] instead."
+msgstr ""
+"设置是否将路径为 [param path] 的属性配置为在处理时检测到变化时进行可靠同步。\n"
+"[i]已废弃。[/i]请改为使用 [constant REPLICATION_MODE_ON_CHANGE] 调用 [method "
+"property_set_replication_mode]。"
msgid ""
"Removes the property identified by the given [param path] from the "
"configuration."
msgstr "从配置中移除属性,该属性由 [param path] 指定。"
+msgid "Do not keep the given property synchronized."
+msgstr "不要让给定的属性保持同步。"
+
+msgid ""
+"Replicate the given property on process by constantly sending updates using "
+"unreliable transfer mode."
+msgstr "处理时复制给定的属性,会使用不可靠的传输模式持续发送更新。"
+
+msgid ""
+"Replicate the given property on process by sending updates using reliable "
+"transfer mode when its value changes."
+msgstr "处理时复制给定的属性,会使用可靠的传输模式在值发生变化时发送更新。"
+
msgid "Provides access to a scene file's information."
msgstr "提供对场景文件信息的访问。"
@@ -102933,6 +102767,43 @@ msgstr ""
"GROUP_CALL_DEFERRED] 标志,则方法会在该帧末尾调用,与 [method Object."
"set_deferred] 类似。"
+msgid ""
+"Changes the running scene to the one at the given [param path], after loading "
+"it into a [PackedScene] and creating a new instance.\n"
+"Returns [constant OK] on success, [constant ERR_CANT_OPEN] if the [param "
+"path] cannot be loaded into a [PackedScene], or [constant ERR_CANT_CREATE] if "
+"that scene cannot be instantiated.\n"
+"[b]Note:[/b] The new scene node is added to the tree at the end of the frame. "
+"This ensures that both scenes aren't running at the same time, while still "
+"freeing the previous scene in a safe way similar to [method Node.queue_free]. "
+"As such, you won't be able to access the loaded scene immediately after the "
+"[method change_scene_to_file] call."
+msgstr ""
+"将位于给定路径 [param path] 的场景加载进一个 [PackedScene] 并新建其实例,然后"
+"将正在运行的场景修改为这个场景。\n"
+"成功时返回 [constant OK],如果 [param path] 不能被加载到一个 [PackedScene] "
+"中,则返回 [constant ERR_CANT_OPEN];如果该场景无法被实例化,则返回 [constant "
+"ERR_CANT_CREATE]。\n"
+"[b]注意:[/b]新的场景节点是在该帧的末尾添加的。这确保了两个场景永远不会同时加"
+"载,如果场景太大或在内存受限的环境中运行,这会耗尽系统资源。因此,无法在 "
+"[method change_scene_to_file] 调用后,立即访问到被加载的场景。"
+
+msgid ""
+"Changes the running scene to a new instance of the given [PackedScene] (which "
+"must be valid).\n"
+"Returns [constant OK] on success, [constant ERR_CANT_CREATE] if the scene "
+"cannot be instantiated, or [constant ERR_INVALID_PARAMETER] if the scene is "
+"invalid.\n"
+"[b]Note:[/b] The new scene node is added to the tree at the end of the frame. "
+"You won't be able to access it immediately after the [method "
+"change_scene_to_packed] call."
+msgstr ""
+"将正在运行的场景改变为给定 [PackedScene] (必须有效)的一个新实例。\n"
+"成功时返回 [constant OK],场景无法实例化时返回 [constant ERR_CANT_CREATE],场"
+"景无效时返回 [constant ERR_INVALID_PARAMETER]。\n"
+"[b]注意:[/b]新的场景节点会在当前帧的末尾添加到场景树中。无法在调用 [method "
+"change_scene_to_packed] 后立即访问到它。"
+
msgid ""
"Returns a [SceneTreeTimer] which will emit [signal SceneTreeTimer.timeout] "
"after the given time in seconds elapsed in this [SceneTree].\n"
@@ -102999,6 +102870,23 @@ msgstr ""
"_process] 方法比计时器先调用([param process_in_physics] 为 [code]true[/code] "
"时为 [method Node._physics_process])。"
+msgid ""
+"Creates and returns a new [Tween]. The Tween will start automatically on the "
+"next process frame or physics frame (depending on [enum Tween."
+"TweenProcessMode]).\n"
+"[b]Note:[/b] When creating a [Tween] using this method, the [Tween] will not "
+"be tied to the [Node] that called it. It will continue to animate even if the "
+"[Node] is freed, but it will automatically finish if there's nothing left to "
+"animate. If you want the [Tween] to be automatically killed when the [Node] "
+"is freed, use [method Node.create_tween] or [method Tween.bind_node]."
+msgstr ""
+"创建并返回新的 [Tween]。该 Tween 会在下一个处理帧或物理帧中自动开始(取决于 "
+"[enum Tween.TweenProcessMode])。\n"
+"[b]注意:[/b]使用这个方法创建 [Tween] 时,[Tween] 不会与调用的 [Node] 绑定。即"
+"便在该 [Node] 释放后也仍然会继续进行动画,但是在已经没有任何可以动画的东西时会"
+"自动结束。如果你想要让 [Tween] 在该 [Node] 释放时自动销毁,请使用 [method "
+"Node.create_tween] 或 [method Tween.bind_node]。"
+
msgid ""
"Returns the first node in the specified group, or [code]null[/code] if the "
"group is empty or does not exist."
@@ -103022,6 +102910,15 @@ msgid ""
msgstr ""
"返回在 [SceneTree] 中当前存在的 [Tween] 的数组(包括正在运行的和已暂停的)。"
+msgid ""
+"Returns [code]true[/code] if the given group exists.\n"
+"A group exists if any [Node] in the tree belongs to it (see [method Node."
+"add_to_group]). Groups without nodes are removed automatically."
+msgstr ""
+"如果存在给定的分组,则返回 [code]true[/code]。\n"
+"场景中存在属于某个分组的 [Node] 时,该分组才存在(见 [method Node."
+"add_to_group])。不含任何节点的分组会被自动移除。"
+
msgid ""
"Sends the given notification to all members of the [param group].\n"
"[b]Note:[/b] [method notify_group] will immediately notify all members at "
@@ -103125,6 +103022,18 @@ msgstr ""
"如果为 [code]true[/code],则应用程序会自动接受退出请求。\n"
"移动平台见 [member quit_on_go_back]。"
+msgid ""
+"Returns the root node of the currently running scene, regardless of its "
+"structure.\n"
+"[b]Warning:[/b] Setting this directly might not work as expected, and will "
+"[i]not[/i] add or remove any nodes from the tree, consider using [method "
+"change_scene_to_file] or [method change_scene_to_packed] instead."
+msgstr ""
+"返回当前运行场景的根节点,无视其结构。\n"
+"[b]警告:[/b]直接设置这个属性可能无法达到预期效果,[i]不会[/i]为场景树添加或移"
+"除任何节点,请考虑改用 [method change_scene_to_file] 或 [method "
+"change_scene_to_packed]。"
+
msgid ""
"If [code]true[/code], collision shapes will be visible when running the game "
"from the editor for debugging purposes.\n"
@@ -103384,6 +103293,13 @@ msgid ""
"script."
msgstr "如果 [param base_object] 是该脚本的实例,则返回 [code]true[/code]。"
+msgid ""
+"Returns [code]true[/code] if the script is an abstract script. An abstract "
+"script does not have a constructor and cannot be instantiated."
+msgstr ""
+"如果脚本是抽象脚本,则返回 [code]true[/code]。抽象脚本没有构造函数,无法被实例"
+"化。"
+
msgid ""
"Returns [code]true[/code] if the script is a tool script. A tool script can "
"run in the editor."
@@ -103575,6 +103491,9 @@ msgstr "用户进行上下文跳转,并且该条目在同一个脚本中时发
msgid "Emitted when the user request to search text in the file system."
msgstr "用户请求在文件系统中搜索文本时发出。"
+msgid "[i]Deprecated.[/i] This method is not called by the engine."
+msgstr "[i]已废弃。[/i]引擎不会调用这个方法。"
+
msgid "Abstract base class for scrollbars."
msgstr "滚动条的抽象基类。"
@@ -103812,16 +103731,6 @@ msgid ""
"any collider."
msgstr "用于物理碰撞的 2D 射线形状,会尝试将自己与其他碰撞体分开。"
-msgid ""
-"A 2D ray shape, intended for use in physics. Usually used to provide a shape "
-"for a [CollisionShape2D]. When a [SeparationRayShape2D] collides with an "
-"object, it tries to separate itself from it by moving its endpoint to the "
-"collision point. It can for example be used for spears falling from the sky."
-msgstr ""
-"2D 射线形状,旨在用于物理。通常用来为 [CollisionShape2D] 提供形状。"
-"[SeparationRayShape2D] 与某个对象发生碰撞时,会尝试将其端点移动至碰撞点,将自"
-"己与该对象分离。示例用法是充当从天上落下的长矛。"
-
msgid "The ray's length."
msgstr "射线的长度。"
@@ -103935,6 +103844,9 @@ msgstr "用于绘制天空的模式。仅适用于附加到 [Sky] 对象的着
msgid "Mode used for setting the color and density of volumetric fog effect."
msgstr "用于设置体积雾效果的颜色和密度的模式。"
+msgid "A node used to override global shader parameters' values in a scene."
+msgstr "在场景中覆盖全局着色器参数取值的节点。"
+
msgid ""
"Similar to how a [WorldEnvironment] node can be used to override the "
"environment while a specific scene is loaded, [ShaderGlobalsOverride] can be "
@@ -103962,6 +103874,9 @@ msgstr ""
"[ShaderGlobalsOverride] 还会加入 [code]\"shader_overrides_group_active\"[/"
"code] 分组。你可以据此来检查当前活动的 [ShaderGlobalsOverride] 节点是哪一个。"
+msgid "Shading language"
+msgstr "着色语言"
+
msgid ""
"A snippet of shader code to be included in a [Shader] with [code]#include[/"
"code]."
@@ -104211,17 +104126,6 @@ msgstr "添加碰撞例外,使该形状不汇报与指定 [RID] 节点的碰
msgid "Removes all collision exceptions for this shape."
msgstr "移除该形状的所有碰撞例外。"
-msgid ""
-"Updates the collision information for the shape. Use this method to update "
-"the collision information immediately instead of waiting for the next "
-"[code]_physics_process[/code] call, for example if the shape or its parent "
-"has changed state.\n"
-"[b]Note:[/b] [code]enabled == true[/code] is not required for this to work."
-msgstr ""
-"更新形状的碰撞信息。使用此方法会立即更新碰撞信息,不会等待到下一次 "
-"[code]_physics_process[/code] 调用,例如,如果形状或其父级已更改状态。\n"
-"[b]注意:[/b]此函数不需要 [code]enabled == true[/code] 也能正常工作。"
-
msgid ""
"The fraction from the [ShapeCast2D]'s origin to its [member target_position] "
"(between 0 and 1) of how far the shape can move without triggering a "
@@ -104296,12 +104200,6 @@ msgid ""
"specified [RID]."
msgstr "移除碰撞例外,使该形状能够汇报与指定 [RID] 的碰撞。"
-msgid "If [code]true[/code], collision with [Area2D]s will be reported."
-msgstr "如果为 [code]true[/code],则会报告与 [Area2D] 的碰撞。"
-
-msgid "If [code]true[/code], collision with [PhysicsBody2D]s will be reported."
-msgstr "如果为 [code]true[/code],则会报告与 [PhysicsBody2D] 的碰撞。"
-
msgid ""
"The shape's collision mask. Only objects in at least one collision layer "
"enabled in the mask will be detected."
@@ -104387,12 +104285,6 @@ msgid ""
"specified [CollisionObject3D] node."
msgstr "移除碰撞例外,让该形状汇报与指定 [CollisionObject3D] 节点的碰撞。"
-msgid "If [code]true[/code], collision with [Area3D]s will be reported."
-msgstr "如果为 [code]true[/code],则会报告与 [Area3D] 的碰撞。"
-
-msgid "If [code]true[/code], collision with [PhysicsBody3D]s will be reported."
-msgstr "如果为 [code]true[/code],则会报告与 [PhysicsBody3D] 的碰撞。"
-
msgid ""
"The shape's collision mask. Only objects in at least one collision layer "
"enabled in the mask will be detected. See [url=$DOCS_URL/tutorials/physics/"
@@ -106517,60 +106409,6 @@ msgstr "球体的半径。形状的直径是半径的两倍。"
msgid "An input field for numbers."
msgstr "数字的输入字段。"
-msgid ""
-"[SpinBox] is a numerical input text field. It allows entering integers and "
-"floating point numbers.\n"
-"[b]Example:[/b]\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var spin_box = SpinBox.new()\n"
-"add_child(spin_box)\n"
-"var line_edit = spin_box.get_line_edit()\n"
-"line_edit.context_menu_enabled = false\n"
-"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"var spinBox = new SpinBox();\n"
-"AddChild(spinBox);\n"
-"var lineEdit = spinBox.GetLineEdit();\n"
-"lineEdit.ContextMenuEnabled = false;\n"
-"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"The above code will create a [SpinBox], disable context menu on it and set "
-"the text alignment to right.\n"
-"See [Range] class for more options over the [SpinBox].\n"
-"[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a "
-"[SpinBox]'s background, add theme items for [LineEdit] and customize them.\n"
-"[b]Note:[/b] If you want to implement drag and drop for the underlying "
-"[LineEdit], you can use [method Control.set_drag_forwarding] on the node "
-"returned by [method get_line_edit]."
-msgstr ""
-"[SpinBox] 是一种用于输入数值的文本字段,允许输入整数和浮点数。\n"
-"[b]示例:[/b]\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var spin_box = SpinBox.new()\n"
-"add_child(spin_box)\n"
-"var line_edit = spin_box.get_line_edit()\n"
-"line_edit.context_menu_enabled = false\n"
-"spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"var spinBox = new SpinBox();\n"
-"AddChild(spinBox);\n"
-"var lineEdit = spinBox.GetLineEdit();\n"
-"lineEdit.ContextMenuEnabled = false;\n"
-"spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"上面的代码会创建一个 [SpinBox],禁用其中的上下文菜单,并将文本设置为右对齐。\n"
-"[SpinBox] 的更多选项见 [Range] 类。\n"
-"[b]注意:[/b][SpinBox] 依赖底层的 [LineEdit] 节点。要为 [SpinBox] 的背景设置主"
-"题,请为 [LineEdit] 添加主题项目并进行自定义。\n"
-"[b]注意:[/b]如果你想要为底层的 [LineEdit] 实现拖放,可以对 [method "
-"get_line_edit] 所返回的节点使用 [method Control.set_drag_forwarding]。"
-
msgid "Applies the current value of this [SpinBox]."
msgstr "应用此 [SpinBox] 的当前值。"
@@ -106589,25 +106427,12 @@ msgstr ""
msgid "Changes the alignment of the underlying [LineEdit]."
msgstr "更改底层 [LineEdit] 的对齐方式。"
-msgid ""
-"If not [code]0[/code], [code]value[/code] will always be rounded to a "
-"multiple of [code]custom_arrow_step[/code] when interacting with the arrow "
-"buttons of the [SpinBox]."
-msgstr ""
-"如果不是 [code]0[/code],则在与 [SpinBox] 的箭头按钮交互时,[code]value[/"
-"code] 将始终四舍五入为 [code]custom_arrow_step[/code] 的倍数。"
-
msgid ""
"If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be "
"read only."
msgstr ""
"如果为 [code]true[/code],则 [SpinBox] 将是可编辑的。否则,它将是只读的。"
-msgid ""
-"Adds the specified [code]prefix[/code] string before the numerical value of "
-"the [SpinBox]."
-msgstr "在 [SpinBox] 的数值前添加指定的 [code]prefix[/code] 字符串。"
-
msgid ""
"If [code]true[/code], the [SpinBox] will select the whole text when the "
"[LineEdit] gains focus. Clicking the up and down arrows won't trigger this "
@@ -106616,11 +106441,6 @@ msgstr ""
"如果为 [code]true[/code],则该 [SpinBox] 会在 [LineEdit] 获得焦点时选中整个文"
"本。点击上下箭头不会触发这种行为。"
-msgid ""
-"Adds the specified [code]suffix[/code] string after the numerical value of "
-"the [SpinBox]."
-msgstr "在 [SpinBox] 的数值后添加指定的 [code]suffix[/code] 字符串。"
-
msgid ""
"Sets the value of the [Range] for this [SpinBox] when the [LineEdit] text is "
"[i]changed[/i] instead of [i]submitted[/i]. See [signal LineEdit."
@@ -106810,6 +106630,17 @@ msgid ""
"A 3D raycast that dynamically moves its children near the collision point."
msgstr "能够动态地将子节点朝碰撞点移动的 3D 射线投射。"
+msgid ""
+"[SpringArm3D] casts a ray or a shape along its Z axis and moves all its "
+"direct children to the collision point, with an optional margin. This is "
+"useful for 3rd person cameras that move closer to the player when inside a "
+"tight space (you may need to exclude the player's collider from the "
+"[SpringArm3D]'s collision check)."
+msgstr ""
+"[SpringArm3D] 会朝它的 Z 轴投射射线或形状,并将所有直接子节点朝碰撞点移动,可"
+"以保留一定的边距。可用于第三人称相机,让其在狭窄空间中朝玩家移动(你可能需要"
+"在 [SpringArm3D] 的碰撞检查中排除玩家的碰撞体)。"
+
msgid ""
"Adds the [PhysicsBody3D] object with the given [RID] to the list of "
"[PhysicsBody3D] objects excluded from the collision check."
@@ -108923,6 +108754,9 @@ msgstr ""
"将该字符串中出现的所有 [param what] 都替换为给定的 [param forwhat],[b]大小写"
"不敏感[/b]。"
+msgid "Returns the copy of this string in reverse order."
+msgstr "返回将这个字符串逆序后的副本。"
+
msgid ""
"Returns the index of the [b]last[/b] occurrence of [param what] in this "
"string, or [code]-1[/code] if there are none. The search's start can be "
@@ -109200,6 +109034,17 @@ msgstr ""
"返回该字符串中的某一部分,位置从 [param from] 开始,长度为 [param len]。如果 "
"[param len] 为 [code]-1[/code](默认值),将返回开给定位置开始的剩余字符。"
+msgid ""
+"Converts the string to an [url=https://en.wikipedia.org/wiki/ASCII]ASCII[/"
+"url]/Latin-1 encoded [PackedByteArray]. This method is slightly faster than "
+"[method to_utf8_buffer], but replaces all unsupported characters with spaces. "
+"This is the inverse of [method PackedByteArray.get_string_from_ascii]."
+msgstr ""
+"将该字符串转换为 [url=https://zh.wikipedia.org/wiki/ASCII]ASCII[/url]/Latin-1 "
+"编码的 [PackedByteArray]。这个方法比 [method to_utf8_buffer] 稍快,但会把不支"
+"持的字符都替换为空格。这是 [method PackedByteArray.get_string_from_ascii] 的逆"
+"运算。"
+
msgid "Returns the string converted to [code]camelCase[/code]."
msgstr "返回将该字符串转换为小驼峰命名 [code]camelCase[/code] 的结果。"
@@ -109259,6 +109104,47 @@ msgstr "返回将该字符串转换为蛇形命名 [code]snake_case[/code] 的
msgid "Returns the string converted to uppercase."
msgstr "返回将该字符串转换为大写的结果。"
+msgid ""
+"Converts the string to a [url=https://en.wikipedia.org/wiki/UTF-8]UTF-8[/url] "
+"encoded [PackedByteArray]. This method is slightly slower than [method "
+"to_ascii_buffer], but supports all UTF-8 characters. For most cases, prefer "
+"using this method. This is the inverse of [method PackedByteArray."
+"get_string_from_utf8]."
+msgstr ""
+"将该字符串转换为 [url=https://zh.wikipedia.org/wiki/UTF-8]UTF-8[/url] 编码的 "
+"[PackedByteArray]。这个方法比 [method to_ascii_buffer] 稍慢,但支持所有 UTF-8 "
+"字符。大多数情况下请优先使用这个方法。这是 [method PackedByteArray."
+"get_string_from_utf8] 的逆运算。"
+
+msgid ""
+"Converts the string to a [url=https://en.wikipedia.org/wiki/UTF-16]UTF-16[/"
+"url] encoded [PackedByteArray]. This is the inverse of [method "
+"PackedByteArray.get_string_from_utf16]."
+msgstr ""
+"将该字符串转换为 [url=https://zh.wikipedia.org/wiki/UTF-16]UTF-16[/url] 编码"
+"的 [PackedByteArray]。这是 [method PackedByteArray.get_string_from_utf16] 的逆"
+"运算。"
+
+msgid ""
+"Converts the string to a [url=https://en.wikipedia.org/wiki/UTF-32]UTF-32[/"
+"url] encoded [PackedByteArray]. This is the inverse of [method "
+"PackedByteArray.get_string_from_utf32]."
+msgstr ""
+"将该字符串转换为 [url=https://zh.wikipedia.org/wiki/UTF-32]UTF-32[/url] 编码"
+"的 [PackedByteArray]。这是 [method PackedByteArray.get_string_from_utf32] 的逆"
+"运算。"
+
+msgid ""
+"Converts the string to a [url=https://en.wikipedia.org/wiki/"
+"Wide_character]wide character[/url] ([code]wchar_t[/code], UTF-16 on Windows, "
+"UTF-32 on other platforms) encoded [PackedByteArray]. This is the inverse of "
+"[method PackedByteArray.get_string_from_wchar]."
+msgstr ""
+"将该字符串转换为 [url=https://zh.wikipedia.org/zh-cn/"
+"%E5%AF%AC%E5%AD%97%E5%85%83]宽字符[/url]([code]wchat_t[/code],Windows 上为 "
+"UTF-16,其他平台上为 UTF-32)编码的 [PackedByteArray]。这是 [method "
+"PackedByteArray.get_string_from_wchar] 的逆运算。"
+
msgid ""
"Removes the given [param prefix] from the start of the string, or returns the "
"string unchanged."
@@ -110530,6 +110416,9 @@ msgstr ""
"[b]注意:[/b]Godot 中三角形图元模式的正面使用顺时针 [url=https://learnopengl-"
"cn.github.io/04%20Advanced%20OpenGL/04%20Face%20culling/]缠绕顺序[/url]。"
+msgid "Using the SurfaceTool"
+msgstr "使用 SurfaceTool"
+
msgid ""
"Adds a vertex to index array if you are using indexed vertices. Does not need "
"to be called before adding vertices."
@@ -111276,11 +111165,6 @@ msgid ""
"Emitted when a tab is right-clicked. [member select_with_rmb] must be enabled."
msgstr "右键单击选项卡时发出。必须启用 [member select_with_rmb]。"
-msgid ""
-"Emitted when a tab is selected via click or script, even if it is the current "
-"tab."
-msgstr "通过点击或脚本选中某个选项卡时发出,即便该选项卡本来就是当前选项卡。"
-
msgid "Places tabs to the left."
msgstr "将选项卡置于左侧。"
@@ -111442,6 +111326,16 @@ msgstr ""
"[b]警告:[/b]这是一个必需的内部节点,移除和释放它可能会导致崩溃。如果希望隐藏"
"它或它的任何子项,请使用它们的 [member Window.visible] 属性。"
+msgid ""
+"Returns the [TabBar] contained in this container.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it or "
+"editing its tabs may cause a crash. If you wish to edit the tabs, use the "
+"methods provided in [TabContainer]."
+msgstr ""
+"返回这个容器中包含的 [TabBar]。\n"
+"[b]警告:[/b]这是一个必需的内部节点,对其进行移除和释放或者编辑其中的选项卡可"
+"能会导致崩溃。如果你想编辑选项卡,请使用 [TabContainer] 提供的方法。"
+
msgid "Returns the button icon from the tab at index [param tab_idx]."
msgstr "返回索引为 [param tab_idx] 的选项卡的按钮图标。"
@@ -111516,6 +111410,9 @@ msgid ""
"AlignmentMode] for details."
msgstr "设置选项卡的放置位置。详情见 [enum TabBar.AlignmentMode]。"
+msgid "The focus access mode for the internal [TabBar] node."
+msgstr "内部 [TabBar] 节点的焦点访问模式。"
+
msgid ""
"[TabContainer]s with the same rearrange group ID will allow dragging the tabs "
"between them. Enable drag with [member drag_to_rearrange_enabled].\n"
@@ -111551,9 +111448,6 @@ msgstr ""
msgid "Emitted when the user clicks on the button icon on this tab."
msgstr "用户点击该选项卡上的按钮图标时发出。"
-msgid "Emitted when a tab is selected, even if it is the current tab."
-msgstr "选择选项卡时发出,即使它是当前选项卡。"
-
msgid "Font color of the currently hovered tab."
msgstr "当前悬停选项卡的字体颜色。"
@@ -112509,9 +112403,6 @@ msgstr "如果有一个水平滚动条,这决定了当前的水平滚动值,
msgid "Allow scrolling past the last line into \"virtual\" space."
msgstr "允许滚动过最后一行,进入“虚拟”空间。"
-msgid "Scroll smoothly over the text rather then jumping to the next location."
-msgstr "在文本上平滑滚动,而不是跳到下一个位置。"
-
msgid ""
"Sets the scroll speed with the minimap or when [member scroll_smooth] is "
"enabled."
@@ -112709,22 +112600,6 @@ msgstr "为空格文本字符,设置一个自定义 [Texture2D]。"
msgid "Sets a custom [Texture2D] for tab text characters."
msgstr "为制表符文本字符,设置一个自定义 [Texture2D]。"
-msgid ""
-"Sets the [StyleBox] when in focus. The [code]focus[/code] [StyleBox] is "
-"displayed [i]over[/i] the base [StyleBox], so a partially transparent "
-"[StyleBox] should be used to ensure the base [StyleBox] remains visible. A "
-"[StyleBox] that represents an outline or an underline works well for this "
-"purpose. To disable the focus visual effect, assign a [StyleBoxEmpty] "
-"resource. Note that disabling the focus visual effect will harm keyboard/"
-"controller navigation usability, so this is not recommended for accessibility "
-"reasons."
-msgstr ""
-"设置当获得焦点时的 [StyleBox]。该 [code]focus[/code] [StyleBox] 显示在基础 "
-"[StyleBox] [i]之上[/i],因此应使用部分透明的 [StyleBox] 以确保基础 [StyleBox] "
-"保持可见。表示轮廓或下划线的 [StyleBox] 非常适合此目的。要禁用焦点视觉效果,请"
-"指定一个 [StyleBoxEmpty] 资源。请注意,禁用焦点视觉效果会破坏键盘 / 控制器导航"
-"的可用性,出于可访问性原因,不建议这样做。"
-
msgid "Sets the [StyleBox] of this [TextEdit]."
msgstr "设置这个 [TextEdit] 的 [StyleBox]。"
@@ -113144,25 +113019,6 @@ msgid ""
"Returns the font oversampling factor, shared by all fonts in the TextServer."
msgstr "返回字体过采样系数,由 TextServer 中的所有字体共享。"
-msgid ""
-"Returns outline contours of the glyph as a [code]Dictionary[/code] with the "
-"following contents:\n"
-"[code]points[/code] - [PackedVector3Array], containing outline "
-"points. [code]x[/code] and [code]y[/code] are point coordinates. [code]z[/"
-"code] is the type of the point, using the [enum ContourPointTag] values.\n"
-"[code]contours[/code] - [PackedInt32Array], containing indices the end "
-"points of each contour.\n"
-"[code]orientation[/code] - [bool], contour orientation. If [code]true[/"
-"code], clockwise contours must be filled."
-msgstr ""
-"将字形的轮廓线轮廓返回为具有以下内容的一个 [code]Dictionary[/code]:\n"
-"[code]points[/code] - [PackedVector3Array],包含轮廓点。[code]x[/"
-"code] 和 [code]y[/code] 是点坐标。[code]z[/code] 是点的类型,使用 [enum "
-"ContourPointTag] 值。\n"
-"[code]contours[/code] - [PackedInt32Array],包含每个轮廓端点的索引。\n"
-"[code]orientation[/code] - [bool],轮廓方向。如果为 [code]true[/code],则顺"
-"时针轮廓必须被填充。"
-
msgid "Returns size of the glyph."
msgstr "返回该字形的大小。"
@@ -113203,6 +113059,13 @@ msgstr ""
"返回字体过采样系数,如果设置为 [code]0.0[/code],则使用全局过采样系数。仅由动"
"态字体使用。"
+msgid ""
+"Returns the spacing for [param spacing] (see [enum TextServer.SpacingType]) "
+"in pixels (not relative to the font size)."
+msgstr ""
+"返回 [param spacing](见 [enum TextServer.SpacingType])的间距,单位为像素(与"
+"字体大小无关)。"
+
msgid "Returns font style flags, see [enum FontStyle]."
msgstr "返回字体样式标志,见 [enum FontStyle]。"
@@ -113578,6 +113441,9 @@ msgstr "添加文本区间和字体,将其绘制到文本缓冲中。"
msgid "Clears text buffer (removes text and inline objects)."
msgstr "清空文本缓冲(移除文本和内联对象)。"
+msgid "Returns composite character position closest to the [param pos]."
+msgstr "返回距离 [param pos] 最近的组合字符位置。"
+
msgid ""
"Draw shaped text into a canvas item at a given position, with [param color]. "
"[param pos] specifies the leftmost point of the baseline (for horizontal "
@@ -113614,6 +113480,9 @@ msgstr ""
"返回与文本中字符偏移 [param position] 对应的文本光标的形状。返回的光标形状是宽"
"度为 1 像素的矩形。"
+msgid "Returns array of the composite character boundaries."
+msgstr "返回组合字符边界的数组。"
+
msgid ""
"Returns custom punctuation character list, used for word breaking. If set to "
"empty string, server defaults are used."
@@ -113709,6 +113578,10 @@ msgstr ""
"将文本分解成单词并返回字符范围的数组。请使用 [param grapheme_flags] 来设置哪些"
"字符会被用于分解(见 [enum GraphemeFlag])。"
+msgid ""
+"Returns [code]true[/code] if text buffer contains any visible characters."
+msgstr "如果文本缓冲区存在可显示字符,则返回 [code]true[/code]。"
+
msgid ""
"Returns grapheme index at the specified pixel offset at the baseline, or "
"[code]-1[/code] if none is found."
@@ -113722,12 +113595,18 @@ msgstr "如果缓冲区成功塑形,则返回 [code]true[/code]。"
msgid "Returns composite character end position closest to the [param pos]."
msgstr "返回距离 [param pos] 最近的组合字符结束位置。"
+msgid "Returns grapheme end position closest to the [param pos]."
+msgstr "返回距离 [param pos] 最近的字素结束位置。"
+
msgid "Trims text if it exceeds the given width."
msgstr "如果文本超出给定宽度,则修剪文本。"
msgid "Returns composite character start position closest to the [param pos]."
msgstr "返回距离 [param pos] 最近的组合字符开始位置。"
+msgid "Returns grapheme start position closest to the [param pos]."
+msgstr "返回距离 [param pos] 最近的字素开始位置。"
+
msgid ""
"Sets custom punctuation character list, used for word breaking. If set to "
"empty string, server defaults are used."
@@ -113799,6 +113678,21 @@ msgstr ""
"[b]注意:[/b]如果服务器不支持 [constant FEATURE_UNICODE_SECURITY] 特性,则始终"
"返回 [code]false[/code]。"
+msgid ""
+"Returns array of the composite character boundaries.\n"
+"[codeblock]\n"
+"var ts = TextServerManager.get_primary_interface()\n"
+"print(ts.string_get_word_breaks(\"Test ❤️🔥 Test\")) # Prints [1, 2, 3, 4, 5, "
+"9, 10, 11, 12, 13, 14]\n"
+"[/codeblock]"
+msgstr ""
+"返回组合字符边界的数组。\n"
+"[codeblock]\n"
+"var ts = TextServerManager.get_primary_interface()\n"
+"print(ts.string_get_word_breaks(\"Test ❤️🔥 Test\")) # 输出 [1, 2, 3, 4, 5, 9, "
+"10, 11, 12, 13, 14]\n"
+"[/codeblock]"
+
msgid ""
"Returns an array of the word break boundaries. Elements in the returned array "
"are the offsets of the start and end of words. Therefore the length of the "
@@ -114282,13 +114176,6 @@ msgstr "文件路径的 BiDi 覆盖。"
msgid "BiDi override for email."
msgstr "电子邮件的 BiDi 覆盖。"
-msgid ""
-"BiDi override for lists.\n"
-"Structured text options: list separator [code]String[/code]."
-msgstr ""
-"列表的 BiDi 覆盖。\n"
-"结构化文本选项:列表分隔符 [code]String[/code]。"
-
msgid "BiDi override for GDScript."
msgstr "GDScript 的 BiDi 覆盖。"
@@ -114584,6 +114471,18 @@ msgid ""
"Creates a placeholder version of this resource ([PlaceholderTexture2DArray])."
msgstr "创建该资源的占位符版本([PlaceholderTexture2DArray])。"
+msgid ""
+"Texture Array for 2D that is bound to a texture created on the "
+"[RenderingDevice]."
+msgstr "用于 2D 的纹理数组,与 [RenderingDevice] 上创建的纹理绑定。"
+
+msgid ""
+"Texture for 2D that is bound to a texture created on the [RenderingDevice]."
+msgstr "用于 2D 的纹理,与 [RenderingDevice] 上创建的纹理绑定。"
+
+msgid "The RID of the texture object created on the [RenderingDevice]."
+msgstr "[RenderingDevice] 上创建的纹理对象的 RID。"
+
msgid "Base class for 3-dimensionnal textures."
msgstr "3D 纹理的基类。"
@@ -114962,20 +114861,6 @@ msgstr ""
msgid "[Texture2D] that draws under the progress bar. The bar's background."
msgstr "在进度条下绘制的 [Texture2D]。该进度条的背景。"
-msgid ""
-"Multiplies the color of the bar's [code]texture_over[/code] texture. The "
-"effect is similar to [member CanvasItem.modulate], except it only affects "
-"this specific texture instead of the entire node."
-msgstr ""
-"将条形的 [code]texture_over[/code] 纹理的颜色相乘。其效果类似于 [member "
-"CanvasItem.modulate] ,只是它只影响这个特定的纹理,而不是整个节点。"
-
-msgid "Multiplies the color of the bar's [code]texture_progress[/code] texture."
-msgstr "将条形的 [code]texture_progress[/code] 纹理的颜色相乘。"
-
-msgid "Multiplies the color of the bar's [code]texture_under[/code] texture."
-msgstr "将条形的 [code]texture_under[/code] 纹理的颜色相乘。"
-
msgid "The [member texture_progress] fills from left to right."
msgstr "[member texture_progress] 从左到右填充。"
@@ -116170,9 +116055,102 @@ msgstr ""
msgid "Clears all cells."
msgstr "清除所有单元格。"
+msgid ""
+"Clears all cells on the given layer.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"清除给定图层上的所有单元格。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Erases the cell on layer [param layer] at coordinates [param coords].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"擦除图层 [param layer] 上位于 [param coords] 坐标的单元格。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid "Clears cells that do not exist in the tileset."
msgstr "清除图块集中不存在的单元格。"
+msgid ""
+"[i]Deprecated.[/i] See [method notify_runtime_tile_data_update] and [method "
+"update_internals]."
+msgstr ""
+"[i]已废弃。[/i]见 [method notify_runtime_tile_data_update] 和 [method "
+"update_internals]。"
+
+msgid ""
+"Returns the tile alternative ID of the cell on layer [param layer] at [param "
+"coords]. If [param use_proxies] is [code]false[/code], ignores the "
+"[TileSet]'s tile proxies, returning the raw alternative identifier. See "
+"[method TileSet.map_tile_proxy].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 [param layer] 层中位于坐标 [param coords] 单元格的图块备选 ID。如果 "
+"[param use_proxies] 为 [code]false[/code],则会忽略该 [TileSet] 的图块代理,返"
+"回原始的备选标识符。见 [method TileSet.map_tile_proxy]。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns the tile atlas coordinates ID of the cell on layer [param layer] at "
+"coordinates [param coords]. If [param use_proxies] is [code]false[/code], "
+"ignores the [TileSet]'s tile proxies, returning the raw alternative "
+"identifier. See [method TileSet.map_tile_proxy].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 [param layer] 层中位于坐标 [param coords] 单元格的图块图集坐标 ID。如果 "
+"[param use_proxies] 为 [code]false[/code],则会忽略该 [TileSet] 的图块代理,返"
+"回原始的备选标识符。见 [method TileSet.map_tile_proxy]。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns the tile source ID of the cell on layer [param layer] at coordinates "
+"[param coords]. Returns [code]-1[/code] if the cell does not exist.\n"
+"If [param use_proxies] is [code]false[/code], ignores the [TileSet]'s tile "
+"proxies, returning the raw alternative identifier. See [method TileSet."
+"map_tile_proxy].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 [param layer] 层中位于坐标 [param coords] 单元格的图块源 ID。如果该单元格"
+"不存在,则返回 [code]-1[/code]。\n"
+"如果 [param use_proxies] 为 [code]false[/code],则会忽略该 [TileSet] 的图块代"
+"理,返回原始的备选标识符。见 [method TileSet.map_tile_proxy]。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns the [TileData] object associated with the given cell, or [code]null[/"
+"code] if the cell does not exist or is not a [TileSetAtlasSource].\n"
+"If [param layer] is negative, the layers are accessed from the last one.\n"
+"If [param use_proxies] is [code]false[/code], ignores the [TileSet]'s tile "
+"proxies, returning the raw alternative identifier. See [method TileSet."
+"map_tile_proxy].\n"
+"[codeblock]\n"
+"func get_clicked_tile_power():\n"
+" var clicked_cell = tile_map.local_to_map(tile_map."
+"get_local_mouse_position())\n"
+" var data = tile_map.get_cell_tile_data(0, clicked_cell)\n"
+" if data:\n"
+" return data.get_custom_data(\"power\")\n"
+" else:\n"
+" return 0\n"
+"[/codeblock]"
+msgstr ""
+"返回与给定单元格关联的 [TileData] 对象,如果单元格不存在或者不是 "
+"[TileSetAtlasSource] 则返回 [code]null[/code]。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。\n"
+"如果 [param use_proxies] 为 [code]false[/code],则会忽略 [TileSet] 的图块代"
+"理,返回原始的备选标识符。见 [method TileSet.map_tile_proxy]。\n"
+"[codeblock]\n"
+"func get_clicked_tile_power():\n"
+" var clicked_cell = tile_map.local_to_map(tile_map."
+"get_local_mouse_position())\n"
+" var data = tile_map.get_cell_tile_data(0, clicked_cell)\n"
+" if data:\n"
+" return data.get_custom_data(\"power\")\n"
+" else:\n"
+" return 0\n"
+"[/codeblock]"
+
msgid ""
"Returns the coordinates of the tile for given physics body RID. Such RID can "
"be retrieved from [method KinematicCollision2D.get_collider_rid], when "
@@ -116189,9 +116167,60 @@ msgstr ""
"返回给定物理物体 RID 对应图块的 TileMap 图层。与图块发生碰撞时,可以通过 "
"[method KinematicCollision2D.get_collider_rid] 获取该 RID。"
+msgid ""
+"Returns a TileMap layer's modulate.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 TileMap 图层的调制颜色。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns a TileMap layer's name.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 TileMap 图层的名称。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns the [NavigationServer2D] navigation map [RID] currently assigned to "
+"the specified TileMap [param layer].\n"
+"By default the TileMap uses the default [World2D] navigation map for the "
+"first TileMap layer. For each additional TileMap layer a new navigation map "
+"is created for the additional layer.\n"
+"In order to make [NavigationAgent2D] switch between TileMap layer navigation "
+"maps use [method NavigationAgent2D.set_navigation_map] with the navigation "
+"map received from [method get_layer_navigation_map].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回当前分配给指定 TileMap [param layer] 的 [NavigationServer2D] 导航地图 "
+"[RID]。\n"
+"默认情况下,TileMap 为第一个 TileMap 层,使用默认的 [World2D] 导航地图。对于每"
+"个附加的 TileMap 层,都会为附加层创建一个新的导航地图。\n"
+"为了使 [NavigationAgent2D] 在 TileMap 层导航地图之间切换,使用 [method "
+"NavigationAgent2D.set_navigation_map] 和从 [method get_navigation_map] 接收的"
+"导航地图。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns a TileMap layer's Y sort origin.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 TileMap 图层的 Y 排序原点。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns a TileMap layer's Z-index value.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 TileMap 图层的 Z 索引值。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid "Returns the number of layers in the TileMap."
msgstr "返回 TileMap 图层的数量。"
+msgid "See [method get_layer_navigation_map]."
+msgstr "见 [method get_layer_navigation_map]。"
+
msgid ""
"Returns the neighboring cell to the one at coordinates [param coords], "
"identified by the [param neighbor] direction. This method takes into account "
@@ -116200,15 +116229,70 @@ msgstr ""
"返回与位于坐标 [param coords] 的单元格相邻的单元格,方向由 [param neighbor] 表"
"示。这个方法会考虑 TileMap 的不同布局。"
+msgid ""
+"Creates a new [TileMapPattern] from the given layer and set of cells.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"根据给定的图层和单元格新建 [TileMapPattern]。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid ""
"Returns the list of all neighbourings cells to the one at [param coords]."
msgstr "返回与 [param coords] 处的单元格相邻的所有单元格的列表。"
+msgid ""
+"Returns a [Vector2i] array with the positions of all cells containing a tile "
+"in the given layer. A cell is considered empty if its source identifier "
+"equals -1, its atlas coordinates identifiers is [code]Vector2(-1, -1)[/code] "
+"and its alternative identifier is -1.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 [Vector2i] 数组,其中存放的是给定图层中所有包含图块的单元格的位置。空单元"
+"格的源标识符等于 -1、图集坐标标识符为 [code]Vector2(-1, -1)[/code]、备选标识符"
+"为 -1。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns a [Vector2i] array with the positions of all cells containing a tile "
+"in the given layer. Tiles may be filtered according to their source ([param "
+"source_id]), their atlas coordinates ([param atlas_coords]) or alternative id "
+"([param alternative_tile]).\n"
+"If a parameter has its value set to the default one, this parameter is not "
+"used to filter a cell. Thus, if all parameters have their respective default "
+"value, this method returns the same result as [method get_used_cells].\n"
+"A cell is considered empty if its source identifier equals -1, its atlas "
+"coordinates identifiers is [code]Vector2(-1, -1)[/code] and its alternative "
+"identifier is -1.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回 [Vector2i] 数组,其中存放的是给定图层中所有包含图块的单元格的位置。可以根"
+"据源([param source_id])、图集坐标([param atlas_coords])、备选 ID([param "
+"alternative_tile])进行过滤。\n"
+"如果某个参数为默认值,则该参数不会用于单元格的过滤。因此,如果所有参数都使用默"
+"认值,则返回的结果与 [method get_used_cells] 相同。\n"
+"空单元格的源标识符等于 -1、图集坐标标识符为 [code]Vector2(-1, -1)[/code]、备选"
+"标识符为 -1。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid ""
"Returns a rectangle enclosing the used (non-empty) tiles of the map, "
"including all layers."
msgstr "返回该地图的包围矩形,包围所有图层中的已使用(非空)的图块。"
+msgid ""
+"Returns if a layer is enabled.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回某个图层是否已启用。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
+msgid ""
+"Returns if a layer Y-sorts its tiles.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"返回某个图层是否会对图块进行 Y 排序。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid ""
"Returns the map coordinates of the cell containing the given [param "
"local_position]. If [param local_position] is in global coordinates, consider "
@@ -116252,6 +116336,86 @@ msgstr ""
msgid "Removes the layer at index [param layer]."
msgstr "移除索引为 [param layer] 的层。"
+msgid ""
+"Sets the tile identifiers for the cell on layer [param layer] at coordinates "
+"[param coords]. Each tile of the [TileSet] is identified using three parts:\n"
+"- The source identifier [param source_id] identifies a [TileSetSource] "
+"identifier. See [method TileSet.set_source_id],\n"
+"- The atlas coordinates identifier [param atlas_coords] identifies a tile "
+"coordinates in the atlas (if the source is a [TileSetAtlasSource]). For "
+"[TileSetScenesCollectionSource] it should always be [code]Vector2i(0, 0)[/"
+"code]),\n"
+"- The alternative tile identifier [param alternative_tile] identifies a tile "
+"alternative in the atlas (if the source is a [TileSetAtlasSource]), and the "
+"scene for a [TileSetScenesCollectionSource].\n"
+"If [param source_id] is set to [code]-1[/code], [param atlas_coords] to "
+"[code]Vector2i(-1, -1)[/code] or [param alternative_tile] to [code]-1[/code], "
+"the cell will be erased. An erased cell gets [b]all[/b] its identifiers "
+"automatically set to their respective invalid values, namely [code]-1[/code], "
+"[code]Vector2i(-1, -1)[/code] and [code]-1[/code].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"设置位于层 [param layer] 坐标为 [param coords] 的单元格的图块标识符。"
+"[TileSet] 中的每个图块都由三部分进行标识:\n"
+"- 源标识符 [param source_id] 标识的是 [TileSetSource] 标识符。见 [method "
+"TileSet.set_source_id],\n"
+"- 图集坐标标识符 [param atlas_coords] 标识的是图集中的图块坐标(如果使用的是 "
+"[TileSetAtlasSource] 源)。如果使用的是 [TileSetScenesCollectionSource],应该"
+"始终为 [code]Vector2i(0, 0)[/code],\n"
+"- 备选图块标识符 [param alternative_tile] 标识的是图集中的图块备选项(如果使用"
+"的是 [TileSetAtlasSource] 源),如果使用的是 [TileSetScenesCollectionSource] "
+"则标识的是场景。\n"
+"如果 [param source_id] 为 [code]-1[/code]、[param atlas_coords] 为 "
+"[code]Vector2i(-1, -1)[/code] 或 [param alternative_tile] 为 [code]-1[/code],"
+"则会擦除该单元格。擦除后的单元格中,[b]所有[/b]标识符都会自动设为对应的无效"
+"值,即 [code]-1[/code]、[code]Vector2i(-1, -1)[/code] 和 [code]-1[/code]。\n"
+"如果 [param layer] 为负数,则从最后一个图层开始访问。"
+
+msgid ""
+"Update all the cells in the [param cells] coordinates array so that they use "
+"the given [param terrain] for the given [param terrain_set]. If an updated "
+"cell has the same terrain as one of its neighboring cells, this function "
+"tries to join the two. This function might update neighboring tiles if needed "
+"to create correct terrain transitions.\n"
+"If [param ignore_empty_terrains] is true, empty terrains will be ignored when "
+"trying to find the best fitting tile for the given terrain constraints.\n"
+"If [param layer] is negative, the layers are accessed from the last one.\n"
+"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to "
+"have terrains set up with all required terrain combinations. Otherwise, it "
+"may produce unexpected results."
+msgstr ""
+"更新 [param cells] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用"
+"于给定的 [param terrain_set]。如果一个更新的单元格与其相邻单元格之一具有相同的"
+"地形,则该函数会尝试将两者连接起来。如果需要创建正确的地形过渡,该函数可能会更"
+"新相邻的图块。\n"
+"如果 [param ignore_empty_terrains] 为真,则在尝试为给定地形约束找到最合适的图"
+"块时,空地形将被忽略。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。\n"
+"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地"
+"形组合的地形。否则,可能会产生意想不到的结果。"
+
+msgid ""
+"Update all the cells in the [param path] coordinates array so that they use "
+"the given [param terrain] for the given [param terrain_set]. The function "
+"will also connect two successive cell in the path with the same terrain. This "
+"function might update neighboring tiles if needed to create correct terrain "
+"transitions.\n"
+"If [param ignore_empty_terrains] is true, empty terrains will be ignored when "
+"trying to find the best fitting tile for the given terrain constraints.\n"
+"If [param layer] is negative, the layers are accessed from the last one.\n"
+"[b]Note:[/b] To work correctly, this method requires the TileMap's TileSet to "
+"have terrains set up with all required terrain combinations. Otherwise, it "
+"may produce unexpected results."
+msgstr ""
+"更新 [param path] 坐标数组中的所有单元格,以便它们将给定的 [param terrain] 用"
+"于给定的 [param terrain_set]。该函数还将连接路径中具有相同地形的两个连续单元"
+"格。如果需要创建正确的地形过渡,该函数可能会更新相邻的图块。\n"
+"如果 [param ignore_empty_terrains] 为真,则在尝试为给定地形约束找到最合适的图"
+"块时将忽略空地形。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。\n"
+"[b]注意:[/b]要正常工作,这个方法需要 TileMap 的 TileSet 设置了具有所有必需地"
+"形组合的地形。否则,可能会产生意想不到的结果。"
+
msgid ""
"Enables or disables the layer [param layer]. A disabled layer is not "
"processed at all (no rendering, no physics, etc...).\n"
@@ -116276,6 +116440,25 @@ msgstr ""
"设置图层的名称。主要在编辑器中使用。\n"
"如果 [param layer] 为负,则逆序访问图层。"
+msgid ""
+"Assigns a [NavigationServer2D] navigation map [RID] to the specified TileMap "
+"[param layer].\n"
+"By default the TileMap uses the default [World2D] navigation map for the "
+"first TileMap layer. For each additional TileMap layer a new navigation map "
+"is created for the additional layer.\n"
+"In order to make [NavigationAgent2D] switch between TileMap layer navigation "
+"maps use [method NavigationAgent2D.set_navigation_map] with the navigation "
+"map received from [method get_layer_navigation_map].\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"将 [NavigationServer2D] 导航地图 [RID] 分配给指定的 TileMap [param layer]。\n"
+"默认情况下,TileMap 为第一个 TileMap 层使用默认的 [World2D] 导航地图。对于每个"
+"附加的 TileMap 层,都会为附加层创建一个新的导航地图。\n"
+"为了使 [NavigationAgent2D] 在 TileMap 层导航地图之间切换,使用 [method "
+"NavigationAgent2D.set_navigation_map] 和从 [method get_navigation_map] 接收的"
+"导航地图。\n"
+"如果 [param layer] 为负,则从最后一个图层开始访问。"
+
msgid ""
"Enables or disables a layer's Y-sorting. If a layer is Y-sorted, the layer "
"will behave as a CanvasItem node where each of its tile gets Y-sorted.\n"
@@ -116309,6 +116492,36 @@ msgstr ""
"设置图层的 Z 索引值。各个图块的 Z 索引值都会加上这个 Z 索引。\n"
"如果 [param layer] 为负,则逆序访问图层。"
+msgid "See [method set_layer_navigation_map]."
+msgstr "见 [method set_layer_navigation_map]。"
+
+msgid ""
+"Paste the given [TileMapPattern] at the given [param position] and [param "
+"layer] in the tile map.\n"
+"If [param layer] is negative, the layers are accessed from the last one."
+msgstr ""
+"将给定的 [TileMapPattern] 粘贴到图块地图中的 [param position] 位置和 [param "
+"layer] 层。\n"
+"如果 [param layer] 为负,则从最后一层开始访问。"
+
+msgid ""
+"Triggers a direct update of the TileMap. Usually, calling this function is "
+"not needed, as TileMap node updates automatically when one of its properties "
+"or cells is modified.\n"
+"However, for performance reasons, those updates are batched and delayed to "
+"the end of the frame. Calling this function will force the TileMap to update "
+"right away instead.\n"
+"[b]Warning:[/b] Updating the TileMap is computationally expensive and may "
+"impact performance. Try to limit the number of updates and how many tiles "
+"they impact."
+msgstr ""
+"触发 TileMap 的更新。通常不需要调用这个函数,因为 TileMap 节点的属性发生修改后"
+"会自动更新。\n"
+"但是出于性能原因,会对这些更新进行分批,延迟到该帧的末尾执行。调用这个函数会强"
+"制 TileMap 立即进行更新。\n"
+"[b]警告:[/b]更新 TileMap 的计算量很大,可能会影响性能。请尽量限制更新的次数和"
+"受影响的图块。"
+
msgid ""
"If enabled, the TileMap will see its collisions synced to the physics tick "
"and change its collision type from static to kinematic. This is required to "
@@ -116336,6 +116549,25 @@ msgstr ""
"显示或隐藏该 TileMap 的导航网格。如果设置为 [constant "
"VISIBILITY_MODE_DEFAULT],则取决于调试设置“显示导航”。"
+msgid ""
+"The TileMap's quadrant size. A quadrant is a group of tiles to be drawn "
+"together on a single canvas item, for optimization purposes. [member "
+"rendering_quadrant_size] defines the length of a square's side, in the map's "
+"coordinate system, that forms the quadrant. Thus, the default quandrant size "
+"groups together [code]16 * 16 = 256[/code] tiles.\n"
+"The quadrant size does not apply on Y-sorted layers, as tiles are be grouped "
+"by Y position instead in that case.\n"
+"[b]Note:[/b] As quadrants are created according to the map's coordinate "
+"system, the quadrant's \"square shape\" might not look like square in the "
+"TileMap's local coordinate system."
+msgstr ""
+"TileMap 的象限大小。象限是在单个画布项上一起绘制的一组图块,用于优化。[member "
+"rendering_quadrant_size] 定义的是形成象限的正方形的边长,使用地图坐标系。因"
+"此,默认象限大小将 [code]16 * 16 = 256[/code] 个图块组合到了一起。\n"
+"Y 排序的图层不使用象限大小,这种图层中的图块会按 Y 位置分组。\n"
+"[b]注意:[/b]象限是根据地图坐标系创建的,“正方形”的象限在 TileMap 的局部坐标系"
+"中可能并不是正方形。"
+
msgid "The assigned [TileSet]."
msgstr "指定的 [TileSet] 图块集。"
@@ -116386,12 +116618,45 @@ msgstr "返回该图案是否为空。"
msgid "Remove the cell at the given coordinates."
msgstr "移除给定坐标的单元格。"
+msgid ""
+"Sets the tile identifiers for the cell at coordinates [param coords]. See "
+"[method TileMap.set_cell]."
+msgstr ""
+"设置位于 [param coords] 的单元格的图块标识符。见 [method TileMap.set_cell]。"
+
msgid "Sets the size of the pattern."
msgstr "设置图案的大小。"
msgid "Tile library for tilemaps."
msgstr "Tilemap 的图块库。"
+msgid ""
+"A TileSet is a library of tiles for a [TileMap]. A TileSet handles a list of "
+"[TileSetSource], each of them storing a set of tiles.\n"
+"Tiles can either be from a [TileSetAtlasSource], which renders tiles out of a "
+"texture with support for physics, navigation, etc., or from a "
+"[TileSetScenesCollectionSource], which exposes scene-based tiles.\n"
+"Tiles are referenced by using three IDs: their source ID, their atlas "
+"coordinates ID, and their alternative tile ID.\n"
+"A TileSet can be configured so that its tiles expose more or fewer "
+"properties. To do so, the TileSet resources use property layers, which you "
+"can add or remove depending on your needs.\n"
+"For example, adding a physics layer allows giving collision shapes to your "
+"tiles. Each layer has dedicated properties (physics layer and mask), so you "
+"may add several TileSet physics layers for each type of collision you need.\n"
+"See the functions to add new layers for more information."
+msgstr ""
+"TileSet 是 [TileMap] 的图块库。TileSet 处理 [TileSetSource] 列表,每个表中存储"
+"一组图块。\n"
+"图块既可以来自 [TileSetAtlasSource],可以渲染纹理中的图块,支持物理、导航等功"
+"能,也可以来自 [TileSetScenesCollectionSource],提供基于场景的图块。\n"
+"图块通过使用三个 ID 来引用:源 ID、图集坐标 ID、备选图块 ID。\n"
+"TileSet 可以配置图块暴露哪些属性。为了做到这一点,TileSet 资源使用了属性层,你"
+"可以根据需要进行添加和删除。\n"
+"例如,添加物理层可以为瓷砖提供碰撞形状。不同的层都有不同的属性(物理层和遮"
+"罩),要实现不同类型的碰撞,你也可以添加多个 TileSet 物理层。\n"
+"更多信息请参阅添加新层的函数。"
+
msgid ""
"Adds a custom data layer to the TileSet at the given position [param "
"to_position] in the array. If [param to_position] is -1, adds it at the end "
@@ -116523,13 +116788,6 @@ msgstr "返回给定 TileSet 导航层的(导航服务器中的)导航层。
msgid "Returns the navigation layers count."
msgstr "返回导航层的数量。"
-msgid ""
-"Returns a new unused source ID. This generated ID is the same that a call to "
-"[code]add_source[/code] would return."
-msgstr ""
-"返回新的未使用的源 ID。这个生成的 ID 与调用 [code]add_source[/code] 将返回的 "
-"ID 相同。"
-
msgid "Returns the light mask of the occlusion layer."
msgstr "返回遮挡层的光照掩码。"
@@ -116605,6 +116863,20 @@ msgstr "返回该 TileSet 中是否存在给定源 ID 的源。"
msgid "Returns if there is a source-level proxy for the given source ID."
msgstr "返回给定的源 ID 是否存在源级别的代理。"
+msgid ""
+"According to the configured proxies, maps the provided identifiers to a new "
+"set of identifiers. The source ID, atlas coordinates ID and alternative tile "
+"ID are returned as a 3 elements Array.\n"
+"This function first look for matching alternative-level proxies, then "
+"coordinates-level proxies, then source-level proxies.\n"
+"If no proxy corresponding to provided identifiers are found, returns the same "
+"values the ones used as arguments."
+msgstr ""
+"根据配置的代理,将提供的标识符映射到一组新的标识符。返回的是由源 ID、图集坐标 "
+"ID 和备选图块 ID 这三个元素构成的 Array。\n"
+"这个函数首先查找匹配的备选级代理,然后是坐标级代理,然后是源级代理。\n"
+"如果未找到与提供的标识符对应的代理,则返回与用作参数的值相同的值。"
+
msgid ""
"Moves the custom data layer at index [param layer_index] to the given "
"position [param to_position] in the array. Also updates the atlas tiles "
@@ -116973,6 +117245,14 @@ msgstr ""
"[code]TileSetAtlasSource.set(\"://"
"\")[/code] 设置。"
+msgid ""
+"Removes all tiles that don't fit the available texture area. This method "
+"iterates over all the source's tiles, so it's advised to use [method "
+"has_tiles_outside_texture] beforehand."
+msgstr ""
+"移除所有位于可用纹理区域之外的图块。这个方法会遍历所有源的图块,因此建议先使"
+"用 [method has_tiles_outside_texture]。"
+
msgid ""
"Creates an alternative tile for the tile at coordinates [param atlas_coords]. "
"If [param alternative_id_override] is -1, give it an automatically generated "
@@ -116991,14 +117271,6 @@ msgid ""
"size]."
msgstr "在坐标 [param atlas_coords] 处新建给定大小 [param size] 的图块。"
-msgid ""
-"Returns the atlas grid size, which depends on how many tiles can fit in the "
-"texture. It thus depends on the Texture's size, the atlas [code]margins[/"
-"code] the tiles' [code]texture_region_size[/code]."
-msgstr ""
-"返回图集栅格大小,这取决于纹理中可以容纳多少个图块。因此,它取决于纹理的大小,"
-"该图集 [code]margins[/code]、和该图块的 [code]texture_region_size[/code]。"
-
msgid ""
"Returns the alternative ID a following call to [method "
"create_alternative_tile] would return."
@@ -117041,6 +117313,13 @@ msgid ""
"atlas_coords]."
msgstr "返回位于坐标 [param atlas_coords] 的图块有多少动画帧。"
+msgid ""
+"Returns the [enum TileAnimationMode] of the tile at [param atlas_coords]. See "
+"also [method set_tile_animation_mode]."
+msgstr ""
+"返回图集坐标为 [param atlas_coords] 的图块的 [enum TileAnimationMode]。另见 "
+"[method set_tile_animation_mode]。"
+
msgid ""
"Returns the separation (as in the atlas grid) between each frame of an "
"animated tile at coordinates [param atlas_coords]."
@@ -117105,6 +117384,13 @@ msgstr ""
"ignored_tile],则判断时会和给定的图块在图集中不存在一样。可以在想要修改某个图"
"块的属性时使用。"
+msgid ""
+"Checks if the source has any tiles that don't fit the texture area (either "
+"partially or completely)."
+msgstr ""
+"检查该源是否存在位于纹理区域之外的图块(无论是部分位于区域外还是完全位于区域"
+"外)。"
+
msgid ""
"Move the tile and its alternatives at the [param atlas_coords] coordinates to "
"the [param new_atlas_coords] coordinates with the [param new_size] size. This "
@@ -117165,6 +117451,13 @@ msgid ""
"has."
msgstr "设置位于坐标 [param atlas_coords] 的图块有多少动画帧。"
+msgid ""
+"Sets the [enum TileAnimationMode] of the tile at [param atlas_coords] to "
+"[param mode]. See also [method get_tile_animation_mode]."
+msgstr ""
+"将图集坐标为 [param atlas_coords] 的图块的 [enum TileAnimationMode] 设置为 "
+"[param mode]。另见 [method get_tile_animation_mode]。"
+
msgid ""
"Sets the margin (in grid tiles) between each tile in the animation layout of "
"the tile at coordinates [param atlas_coords] has."
@@ -117205,6 +117498,45 @@ msgstr ""
"禁用该设置可能会导致性能略有提高,因为在 TileSetAtlasSource 资源被修改时,生成"
"内部纹理需要内存和处理时间。"
+msgid "Tile animations start at same time, looking identical."
+msgstr "图块动画在相同的时间开始,外观一致。"
+
+msgid "Tile animations start at random times, looking varied."
+msgstr "图块动画在随机的时间开始,外观不同。"
+
+msgid "Represents the size of the [enum TileAnimationMode] enum."
+msgstr "代表 [enum TileAnimationMode] 枚举的大小。"
+
+msgid ""
+"Represents cell's horizontal flip flag. Should be used directly with "
+"[TileMap] to flip placed tiles by altering their alternative IDs.\n"
+"[codeblock]\n"
+"var alternate_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2))\n"
+"if not alternate_id & TileSetAtlasSource.TRANSFORM_FLIP_H:\n"
+" # If tile is not already flipped, flip it.\n"
+" $TileMap.set_cell(0, Vector2i(2, 2), source_id, atlas_coords, "
+"alternate_id | TileSetAtlasSource.TRANSFORM_FLIP_H)\n"
+"[/codeblock]"
+msgstr ""
+"代表单元格的水平翻转标志。应该直接对 [TileMap] 使用,修改放置图块的备选 ID,将"
+"其进行翻转。\n"
+"[codeblock]\n"
+"var alternate_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2))\n"
+"if not alternate_id & TileSetAtlasSource.TRANSFORM_FLIP_H:\n"
+" # 如果没有翻转过就进行翻转。\n"
+" $TileMap.set_cell(0, Vector2i(2, 2), source_id, atlas_coords, "
+"alternate_id | TileSetAtlasSource.TRANSFORM_FLIP_H)\n"
+"[/codeblock]"
+
+msgid ""
+"Represents cell's vertical flip flag. See [constant TRANSFORM_FLIP_H] for "
+"usage."
+msgstr "代表单元格的垂直翻转标志。用法见 [constant TRANSFORM_FLIP_H]。"
+
+msgid ""
+"Represents cell's transposed flag. See [constant TRANSFORM_FLIP_H] for usage."
+msgstr "代表单元格的转置标志。用法见 [constant TRANSFORM_FLIP_H]。"
+
msgid "Exposes a set of scenes as tiles for a [TileSet] resource."
msgstr "以图块的形式向 [TileSet] 资源暴露一组场景。"
@@ -117416,22 +117748,6 @@ msgid ""
"Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD)."
msgstr "将给定的 Unix 时间戳转换为 ISO 8601 日期字符串(YYYY-MM-DD)。"
-msgid ""
-"Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a "
-"dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], "
-"[code]weekday[/code], [code]hour[/code], [code]minute[/code], and "
-"[code]second[/code].\n"
-"If [param weekday] is [code]false[/code], then the [code]weekday[/code] entry "
-"is excluded (the calculation is relatively expensive).\n"
-"[b]Note:[/b] Any decimal fraction in the time string will be ignored silently."
-msgstr ""
-"将给定的 ISO 8601 日期和时间字符串(YYYY-MM-DDTHH:MM:SS)转换为字典,包含的键"
-"为:[code]year[/code]、[code]month[/code]、[code]day[/code]、[code]weekday[/"
-"code]、[code]hour[/code]、[code]minute[/code]、[code]second[/code]。\n"
-"当 [param weekday] 为 [code]false[/code] 时,不包含 [code]weekday[/code] 记录"
-"(计算花费相对较大)。\n"
-"[b]注意:[/b]时间字符串中的小数会被静默忽略。"
-
msgid ""
"Returns the current date as a dictionary of keys: [code]year[/code], "
"[code]month[/code], [code]day[/code], [code]weekday[/code], [code]hour[/"
@@ -117557,15 +117873,6 @@ msgstr ""
msgid "Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS)."
msgstr "将给定的 Unix 时间戳转换为 ISO 8601 时间字符串(HH:MM:SS)。"
-msgid ""
-"Returns the current time zone as a dictionary of keys: [code]bias[/code] and "
-"[code]name[/code]. The [code]bias[/code] value is the offset from UTC in "
-"minutes, since not all time zones are multiples of an hour from UTC."
-msgstr ""
-"以字典的形式返回当前时区,包含的键为:[code]bias[/code](偏置)和 [code]name[/"
-"code](名称)。[code]bias[/code] 的值是从 UTC 的偏移量,单位为分,因为并不是所"
-"有时区与 UTC 的时间差都是整数倍小时。"
-
msgid ""
"Converts a dictionary of time values to a Unix timestamp.\n"
"The given dictionary can be populated with the following keys: [code]year[/"
@@ -117817,23 +118124,6 @@ msgstr ""
"[/gdscript]\n"
"[/codeblocks]"
-msgid ""
-"Creates a TLS client configuration which validates certificates and their "
-"common names (fully qualified domain names).\n"
-"You can specify a custom [param trusted_chain] of certification authorities "
-"(the default CA list will be used if [code]null[/code]), and optionally "
-"provide a [param common_name_override] if you expect the certificate to have "
-"a common name other then the server FQDN.\n"
-"[b]Note:[/b] On the Web platform, TLS verification is always enforced against "
-"the CA list of the web browser. This is considered a security feature."
-msgstr ""
-"创建 TLS 客户端配置,验证证书及其通用名称(完整域名)。\n"
-"你可以指定自定义的证书颁发机构信任链 [param trusted_chain](如果为 "
-"[code]null[/code] 则使用默认 CA 列表)。如果你希望证书拥有服务器 FQDN 之外的通"
-"用名称,还可以提供通用名称覆盖 [param common_name_override]。\n"
-"[b]注意:[/b]在 Web 平台上,TLS 验证始终强制使用 Web 浏览器的 CA 列表。这是一"
-"种安全特性。"
-
msgid ""
"Creates an [b]unsafe[/b] TLS client configuration where certificate "
"validation is optional. You can optionally provide a valid [param "
@@ -117978,25 +118268,6 @@ msgstr ""
"从表示 [member x]、[member y]、[member origin] 的 3 个 [Vector2](三个列向量)"
"构建变换。"
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation, scaling and translation."
-msgstr "返回该变换的逆,假设变换由旋转、缩放和平移组成。"
-
-msgid ""
-"Returns a vector transformed (multiplied) by the basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"返回经过基矩阵变换(相乘)的向量。\n"
-"该方法不考虑平移(原点向量)。"
-
-msgid ""
-"Returns a vector transformed (multiplied) by the inverse basis matrix.\n"
-"This method does not account for translation (the origin vector)."
-msgstr ""
-"返回经过逆基矩阵变换(相乘)的向量。\n"
-"该方法不考虑平移(原点向量)。"
-
msgid ""
"Returns the determinant of the basis matrix. If the basis is uniformly "
"scaled, then its determinant equals the square of the scale factor.\n"
@@ -118027,22 +118298,6 @@ msgstr ""
"返回将该变换与其他变换使用给定权重 [param weight] 进行插值的结果(权重范围为 "
"0.0 到 1.0)。"
-msgid ""
-"Returns the inverse of the transform, under the assumption that the "
-"transformation is composed of rotation and translation (no scaling, use "
-"[method affine_inverse] for transforms with scaling)."
-msgstr ""
-"返回变换的反值,假设该变换是由旋转和平移组成的(没有缩放,对有缩放的变换使用 "
-"[method affine_inverse])。"
-
-msgid ""
-"Returns [code]true[/code] if this transform and [param xform] are "
-"approximately equal, by calling [code]is_equal_approx[/code] on each "
-"component."
-msgstr ""
-"如果该变换和 [param xform] 近似相等,则返回 [code]true[/code],确定近似相等的"
-"方法是在每个分量上调用 [code]is_equal_approx[/code]。"
-
msgid ""
"Returns [code]true[/code] if this transform is finite, by calling [method "
"@GlobalScope.is_finite] on each component."
@@ -118189,13 +118444,6 @@ msgstr ""
msgid "Transforms (multiplies) the [Vector2] by the given [Transform2D] matrix."
msgstr "使用给定的 [Transform2D] 矩阵将该 [Vector2] 进行变换(相乘)。"
-msgid ""
-"This operator multiplies all components of the [Transform2D], including the "
-"origin vector, which scales it uniformly."
-msgstr ""
-"这个运算符对该 [Transform2D] 的所有分量进行乘运算,包括原点向量,进行统一缩"
-"放。"
-
msgid ""
"Returns [code]true[/code] if the transforms are exactly equal.\n"
"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
@@ -118355,13 +118603,6 @@ msgstr "使用给定的 [Transform3D] 矩阵对 [Plane] 进行变换(相乘)
msgid "Transforms (multiplies) the [Vector3] by the given [Transform3D] matrix."
msgstr "使用给定的 [Transform3D] 矩阵对 [Vector3] 进行变换(相乘)。"
-msgid ""
-"This operator multiplies all components of the [Transform3D], including the "
-"origin vector, which scales it uniformly."
-msgstr ""
-"这个运算符对该 [Transform3D] 的所有分量进行乘运算,包括原点向量,进行统一缩"
-"放。"
-
msgid ""
"A language translation that maps a collection of strings to their individual "
"translations."
@@ -119048,13 +119289,6 @@ msgstr "使用鼠标按钮选中某一项时发出。"
msgid "Emitted when an item is selected."
msgstr "选中某一项时发出。"
-msgid ""
-"Emitted instead of [code]item_selected[/code] if [code]select_mode[/code] is "
-"[constant SELECT_MULTI]."
-msgstr ""
-"如果 [code]select_mode[/code] 为 [constant SELECT_MULTI] 时,代替 "
-"[code]item_selected[/code] 发出。"
-
msgid "Emitted when a left mouse button click does not select any item."
msgstr "鼠标左键未选中任一项时发出。"
@@ -119196,6 +119430,18 @@ msgstr ""
"项目单元格所允许的最大图标宽度。这是在图标默认大小的基础上的限制,在 [method "
"TreeItem.set_icon_max_width] 所设置的值之前生效。高度会根据图标的长宽比调整。"
+msgid "The inner bottom margin of an item."
+msgstr "项目的底部内边距。"
+
+msgid "The inner left margin of an item."
+msgstr "项目的左侧内边距。"
+
+msgid "The inner right margin of an item."
+msgstr "项目的右侧内边距。"
+
+msgid "The inner top margin of an item."
+msgstr "项目的顶部内边距。"
+
msgid ""
"The horizontal margin at the start of an item. This is used when folding is "
"enabled for the item."
@@ -121746,216 +121992,6 @@ msgstr "内存分配错误。"
msgid "The most important data type in Godot."
msgstr "Godot 中最重要的数据类型。"
-msgid ""
-"In computer programming, a Variant class is a class that is designed to store "
-"a variety of other types. Dynamic programming languages like PHP, Lua, "
-"JavaScript and GDScript like to use them to store variables' data on the "
-"backend. With these Variants, properties are able to change value types "
-"freely.\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var foo = 2 # foo is dynamically an integer\n"
-"foo = \"Now foo is a string!\"\n"
-"foo = RefCounted.new() # foo is an Object\n"
-"var bar: int = 2 # bar is a statically typed integer.\n"
-"# bar = \"Uh oh! I can't make static variables become a different type!\"\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// C# is statically typed. Once a variable has a type it cannot be changed. "
-"You can use the `var` keyword to let the compiler infer the type "
-"automatically.\n"
-"var foo = 2; // Foo is a 32-bit integer (int). Be cautious, integers in "
-"GDScript are 64-bit and the direct C# equivalent is `long`.\n"
-"// foo = \"foo was and will always be an integer. It cannot be turned into a "
-"string!\";\n"
-"var boo = \"Boo is a string!\";\n"
-"var ref = new RefCounted(); // var is especially useful when used together "
-"with a constructor.\n"
-"\n"
-"// Godot also provides a Variant type that works like a union of all the "
-"Variant-compatible types.\n"
-"Variant fooVar = 2; // fooVar is dynamically an integer (stored as a `long` "
-"in the Variant type).\n"
-"fooVar = \"Now fooVar is a string!\";\n"
-"fooVar = new RefCounted(); // fooVar is a GodotObject.\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"Godot tracks all scripting API variables within Variants. Without even "
-"realizing it, you use Variants all the time. When a particular language "
-"enforces its own rules for keeping data typed, then that language is applying "
-"its own custom logic over the base Variant scripting API.\n"
-"- GDScript automatically wrap values in them. It keeps all data in plain "
-"Variants by default and then optionally enforces custom static typing rules "
-"on variable types.\n"
-"- C# is statically typed, but uses its own implementation of the "
-"[code]Variant[/code] type in place of Godot's Variant class when it needs to "
-"represent a dynamic value. A [code]Variant[/code] can be assigned any "
-"compatible type implicitly but converting requires an explicit cast.\n"
-"The global [method @GlobalScope.typeof] function returns the enumerated value "
-"of the Variant type stored in the current variable (see [enum Variant."
-"Type]).\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var foo = 2\n"
-"match typeof(foo):\n"
-" TYPE_NIL:\n"
-" print(\"foo is null\")\n"
-" TYPE_INTEGER:\n"
-" print(\"foo is an integer\")\n"
-" TYPE_OBJECT:\n"
-" # Note that Objects are their own special category.\n"
-" # To get the name of the underlying Object type, you need the "
-"`get_class()` method.\n"
-" print(\"foo is a(n) %s\" % foo.get_class()) # inject the class name "
-"into a formatted string.\n"
-" # Note also that there is not yet any way to get a script's "
-"`class_name` string easily.\n"
-" # To fetch that value, you can use ProjectSettings."
-"get_global_class_list().\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"Variant foo = 2;\n"
-"switch (foo.VariantType)\n"
-"{\n"
-" case Variant.Type.Nil:\n"
-" GD.Print(\"foo is null\");\n"
-" break;\n"
-" case Variant.Type.Int:\n"
-" GD.Print(\"foo is an integer\");\n"
-" break;\n"
-" case Variant.Type.Object:\n"
-" // Note that Objects are their own special category.\n"
-" // You can convert a Variant to a GodotObject and use reflection to "
-"get its name.\n"
-" GD.Print($\"foo is a(n) {foo.AsGodotObject().GetType().Name}\");\n"
-" break;\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"A Variant takes up only 20 bytes and can store almost any engine datatype "
-"inside of it. Variants are rarely used to hold information for long periods "
-"of time. Instead, they are used mainly for communication, editing, "
-"serialization and moving data around.\n"
-"Godot has specifically invested in making its Variant class as flexible as "
-"possible; so much so that it is used for a multitude of operations to "
-"facilitate communication between all of Godot's systems.\n"
-"A Variant:\n"
-"- Can store almost any datatype.\n"
-"- Can perform operations between many variants. GDScript uses Variant as its "
-"atomic/native datatype.\n"
-"- Can be hashed, so it can be compared quickly to other variants.\n"
-"- Can be used to convert safely between datatypes.\n"
-"- Can be used to abstract calling methods and their arguments. Godot exports "
-"all its functions through variants.\n"
-"- Can be used to defer calls or move data between threads.\n"
-"- Can be serialized as binary and stored to disk, or transferred via "
-"network.\n"
-"- Can be serialized to text and use it for printing values and editable "
-"settings.\n"
-"- Can work as an exported property, so the editor can edit it universally.\n"
-"- Can be used for dictionaries, arrays, parsers, etc.\n"
-"[b]Containers (Array and Dictionary):[/b] Both are implemented using "
-"variants. A [Dictionary] can match any datatype used as key to any other "
-"datatype. An [Array] just holds an array of Variants. Of course, a Variant "
-"can also hold a [Dictionary] and an [Array] inside, making it even more "
-"flexible.\n"
-"Modifications to a container will modify all references to it. A [Mutex] "
-"should be created to lock it if multi-threaded access is desired."
-msgstr ""
-"在计算机编程中,Variant(变体)类是用来存储各种其他类型的类。像 PHP、 Lua、 "
-"JavaScript 和 GDScript 这样的动态编程语言喜欢用它们在后端存储变量数据。使用 "
-"Variant,属性可以自由地更改值类型。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var foo = 2 # foo 是动态类型的整数\n"
-"foo = \"现在 foo 是字符串!\"\n"
-"foo = RefCounted.new() # foo 是 Object\n"
-"var bar: int = 2 # bar 是静态类型的整数。\n"
-"# bar = \"诶呀!我没法让静态类型的变量变成其他类型!\"\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"// C# 是静态类型的。变量设置类型后无法改变。你可以用 `var` 关键字让编译器自动"
-"推断类型。\n"
-"var foo = 2; // foo 是 32 位整数(int)。请注意,GDScript 中的整数是 64 位的,"
-"在 C# 中与之等价的是 `long`。\n"
-"// foo = \"foo 过去、现在、将来都是整数,没法变成字符串!\";\n"
-"var boo = \"boo 是字符串!\";\n"
-"var ref = new RefCounted(); // var 非常适合与构造函数配合使用。\n"
-"\n"
-"// Godot 也提供了 Variant 类,类似于所有与 Variant 兼容类型的 union。\n"
-"Variant fooVar = 2; // fooVar 是动态类型的整数(在 Variant 类型中存储为 "
-"`long`)。\n"
-"fooVar = \"现在 fooVar 是字符串!\";\n"
-"fooVar = new RefCounted(); // fooVar 是 GodotObject。\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"Godot 在 Variant 中跟踪所有脚本 API 变量。你一直在无意中使用 Variant。某种语言"
-"为保持数据类型而执行自己的规则时,那么就是该语言在基础 Variant 脚本 API 上应用"
-"了自定义的逻辑。\n"
-"- GDScript 会自动将数值进行包装。默认情况下会将所有数据保存在普通的 Variant "
-"中,也可以选择对变量类型执行自定义的静态类型规则。\n"
-"- C# 是静态类型的,但是当它需要表示动态值时,就会在需要 Godot 的 Variant 类的"
-"地方使用它自己实现的 [code]Variant[/code] 类型。[code]Variant[/code] 可以用任"
-"意兼容类型隐式赋值,但反之则需要显式类型转换。\n"
-"全局函数 [method @GlobalScope.typeof] 返回的是枚举类型的值,表示当前变量中所存"
-"储的 Variant 类型(见 [enum Variant.Type])。\n"
-"[codeblocks]\n"
-"[gdscript]\n"
-"var foo = 2\n"
-"match typeof(foo):\n"
-" TYPE_NIL:\n"
-" print(\"foo 为 null\")\n"
-" TYPE_INTEGER:\n"
-" print(\"foo 为整数\")\n"
-" TYPE_OBJECT:\n"
-" # 请注意,Object 有自己的特殊分类。\n"
-" # 要获取实际的 Object 类型名称,你需要使用 `get_class()` 方法。\n"
-" print(\"foo is a(n) %s\" % foo.get_class()) # 将类名注入格式字符串"
-"中。\n"
-" # 另外请注意,目前没有比较方便的方法来获取脚本的 `class_name` 字符"
-"串。\n"
-" # 如果要获取,你可以使用 ProjectSettings.get_global_class_list。\n"
-"[/gdscript]\n"
-"[csharp]\n"
-"Variant foo = 2;\n"
-"switch (foo.VariantType)\n"
-"{\n"
-" case Variant.Type.Nil:\n"
-" GD.Print(\"foo 为 null\");\n"
-" break;\n"
-" case Variant.Type.Int:\n"
-" GD.Print(\"foo 为整数\");\n"
-" break;\n"
-" case Variant.Type.Object:\n"
-" // 请注意,Object 有自己的特殊分类。\n"
-" // 可以将 Variant 转换为 GodotObject,通过反射获取名称。\n"
-" GD.Print($\"foo is a(n) {foo.AsGodotObject().GetType().Name}\");\n"
-" break;\n"
-"}\n"
-"[/csharp]\n"
-"[/codeblocks]\n"
-"Variant 只占 20 个字节,可以在其中存储几乎所有的引擎数据类型。Variant 很少用于"
-"长期保存信息,主要还是用于通信、编辑、序列化和移动数据。\n"
-"Godot 特别致力于使其 Variant 类尽可能灵活;以使它可被用于各种操作,促进 Godot "
-"所有系统之间的联系。\n"
-"Variant:\n"
-"- 可以存储几乎任何数据类型。\n"
-"- 可以在许多 Variant 之间执行操作。GDScript 使用 Variant 作为其原子/原生数据类"
-"型。\n"
-"- 可以被哈希,所以可以快速与其他 Variant 进行比较。\n"
-"- 可以用于数据类型之间的安全转换。\n"
-"- 可以用来抽象调用方法和它们的参数。Godot 通过 Variant 导出所有函数。\n"
-"- 可以用来推迟调用或在线程之间移动数据。\n"
-"- 可以序列化为二进制并存储到磁盘,或通过网络传输。\n"
-"- 可以序列化为文本,用于打印数值和可编辑设置项。\n"
-"- 可以作为一个导出的属性工作,所以编辑器可以通用地进行编辑。\n"
-"- 可以用于字典、数组、解析器等。\n"
-"[b]容器(数组和字典):[/b]它们都是用 Variant 来实现的。[Dictionary] 可以将任"
-"何作为键的数据类型匹配到到任何其他数据类型。[Array] 就是持有 Variant 的数组。"
-"当然,Variant 也可以在里面再容纳 [Dictionary] 和 [Array],使其更加灵活。\n"
-"对容器的修改会修改所有对它的引用。如果需要多线程访问,应该创建 [Mutex] 来对它"
-"进行锁定。"
-
msgid "Variant class introduction"
msgstr "Variant 类简介"
@@ -122081,19 +122117,6 @@ msgstr ""
"pre_a] 和 [param post_b] 作为控制柄。[param weight] 在 0.0 到 1.0 的范围内,代"
"表插值的量。"
-msgid ""
-"Performs a cubic interpolation between this vector and [param b] using [param "
-"pre_a] and [param post_b] as handles, and returns the result at position "
-"[param weight]. [param weight] is on the range of 0.0 to 1.0, representing "
-"the amount of interpolation.\n"
-"It can perform smoother interpolation than [code]cubic_interpolate()[/code] "
-"by the time values."
-msgstr ""
-"返回该向量和 [param b] 之间进行三次插值 [param weight] 处的结果,使用 [param "
-"pre_a] 和 [param post_b] 作为控制柄。[param weight] 在 0.0 到 1.0 的范围内,代"
-"表插值的量。\n"
-"通过使用时间值,可以比 [code]cubic_interpolate()[/code] 进行更平滑的插值。"
-
msgid ""
"Returns the normalized vector pointing from this vector to [param to]. This "
"is equivalent to using [code](b - a).normalized()[/code]."
@@ -122378,11 +122401,6 @@ msgstr ""
"[b]注意:[/b]包含 [constant @GDScript.NAN] 元素的向量的行为与其他向量不同。因"
"此,如果包含 NaN,则这个方法的结果可能不准确。"
-msgid ""
-"Inversely transforms (multiplies) the [Vector2] by the given [Transform2D] "
-"transformation matrix."
-msgstr "使用给定的 [Transform2D] 变换矩阵对该 [Vector2] 进行逆变换(相乘)。"
-
msgid ""
"Multiplies each component of the [Vector2] by the components of the given "
"[Vector2].\n"
@@ -122940,19 +122958,6 @@ msgstr "指向导入后 3D 资产正面(前方)的单位向量。"
msgid "Unit vector pointing towards the rear side (back) of imported 3D assets."
msgstr "指向导入后 3D 资产背面(后方)的单位向量。"
-msgid ""
-"Inversely transforms (multiplies) the [Vector3] by the given [Basis] matrix."
-msgstr "使用给定的 [Basis] 矩阵逆变换(乘)该 [Vector3]。"
-
-msgid ""
-"Inversely transforms (multiplies) the [Vector3] by the given [Quaternion]."
-msgstr "使用给定的 [Quaternion] 对该 [Vector3] 进行逆变换(做乘法)。"
-
-msgid ""
-"Inversely transforms (multiplies) the [Vector3] by the given [Transform3D] "
-"transformation matrix."
-msgstr "使用给定的 [Transform3D] 变换矩阵对该 [Vector3] 进行逆变换(做乘法)。"
-
msgid ""
"Multiplies each component of the [Vector3] by the components of the given "
"[Vector3].\n"
@@ -123368,11 +123373,6 @@ msgid ""
msgstr ""
"W 轴的枚举值。由 [method max_axis_index] 和 [method min_axis_index] 返回。"
-msgid ""
-"Inversely transforms (multiplies) the [Vector4] by the given [Projection] "
-"matrix."
-msgstr "使用给定的 [Projection] 矩阵对该 [Vector4] 进行逆变换(相乘)。"
-
msgid ""
"Multiplies each component of the [Vector4] by the components of the given "
"[Vector4].\n"
@@ -124040,6 +124040,9 @@ msgstr ""
"所有视频流的基础资源类型。派生自 [VideoStream] 的类都可以用作在 "
"[VideoStreamPlayer] 中播放视频的资源类型。"
+msgid "Playing videos"
+msgstr "播放视频"
+
msgid ""
"Called when the video starts playing, to initialize and return a subclass of "
"[VideoStreamPlayback]."
@@ -124603,6 +124606,35 @@ msgstr ""
"如果为 [code]true[/code],则该视口会使用 [member world_3d] 中定义的 [World3D] "
"的唯一副本。"
+msgid ""
+"If [code]true[/code], the objects rendered by viewport become subjects of "
+"mouse picking process.\n"
+"[b]Note:[/b] The number of simultaneously pickable objects is limited to 64 "
+"and they are selected in a non-deterministic order, which can be different in "
+"each picking process."
+msgstr ""
+"如果为 [code]true[/code],则视口中渲染的对象会成为鼠标拾取过程中的候选。\n"
+"[b]注意:[/b]同时能够被拾取的对象最多只有 64 个,选择的顺序是不确定的,每次拾"
+"取可能都不相同。"
+
+msgid ""
+"If [code]true[/code], objects receive mouse picking events sorted primarily "
+"by their [member CanvasItem.z_index] and secondarily by their position in the "
+"scene tree. If [code]false[/code], the order is undetermined.\n"
+"[b]Note:[/b] This setting is disabled by default because of its potential "
+"expensive computational cost.\n"
+"[b]Note:[/b] Sorting happens after selecting the pickable objects. Because of "
+"the limitation of 64 simultaneously pickable objects, it is not guaranteed "
+"that the object with the highest [member CanvasItem.z_index] receives the "
+"picking event."
+msgstr ""
+"如果为 [code]true[/code],则对象会按照固定的顺序接收鼠标拾取事件,首先会按各自"
+"的 [member CanvasItem.z_index] 排序,然后按它们在场景树中的位置排序。如果为 "
+"[code]false[/code],则顺序不确定。\n"
+"[b]注意:[/b]默认情况下禁用此设置,因为它可能会产生昂贵的计算成本。\n"
+"[b]注意:[/b]排序发生在选择可拾取对象之后。因为同时能够被拾取的对象最多只有 "
+"64 个,所以无法保证 [member CanvasItem.z_index] 最大的对象能够接收到拾取事件。"
+
msgid "The subdivision amount of the first quadrant on the shadow atlas."
msgstr "阴影图集上第一象限的细分量。"
@@ -124684,6 +124716,37 @@ msgstr ""
"模糊边缘。它与 MSAA 不同,后者在渲染对象时采用多个覆盖样本。屏幕空间抗锯齿方法"
"通常比 MSAA 更快,并且会平滑高光锯齿,但往往会使场景显得模糊。"
+msgid ""
+"Affects the final texture sharpness by reading from a lower or higher mipmap "
+"(also called \"texture LOD bias\"). Negative values make mipmapped textures "
+"sharper but grainier when viewed at a distance, while positive values make "
+"mipmapped textures blurrier (even when up close).\n"
+"Enabling temporal antialiasing ([member use_taa]) will automatically apply a "
+"[code]-0.5[/code] offset to this value, while enabling FXAA ([member "
+"screen_space_aa]) will automatically apply a [code]-0.25[/code] offset to "
+"this value. If both TAA and FXAA are enabled at the same time, an offset of "
+"[code]-0.75[/code] is applied to this value.\n"
+"[b]Note:[/b] If [member scaling_3d_scale] is lower than [code]1.0[/code] "
+"(exclusive), [member texture_mipmap_bias] is used to adjust the automatic "
+"mipmap bias which is calculated internally based on the scale factor. The "
+"formula for this is [code]log2(scaling_3d_scale) + mipmap_bias[/code].\n"
+"To control this property on the root viewport, set the [member "
+"ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias] "
+"project setting."
+msgstr ""
+"通过从更低或更高的 mipmap 中读取数据影响最终纹理的锐度(也叫“纹理 LOD 偏"
+"置”)。负值会让 mipmap 纹理更锐利,但从较远处观察时颗粒更明显,而正值会让 "
+"mipmap 纹理更模糊(即便凑近看也一样)。\n"
+"启用时间抗锯齿([member use_taa])会对这个值应用 [code]-0.5[/code] 的偏移量,"
+"而启用 FXAA([member screen_space_aa])则会对这个值应用 [code]-0.25[/code] 的"
+"偏移量。如果同时启用 TAA 和 FXAA,则会对这个值应用 [code]-0.75[/code] 的偏移"
+"量。\n"
+"[b]注意:[/b]如果 [member scaling_3d_scale] 比 [code]1.0[/code] 小(包含),则"
+"会使用 [member texture_mipmap_bias] 自动调整 mipmap 偏置,内部会根据缩放系数进"
+"行计算。公式为 [code]log2(scaling_3d_scale) + mipmap_bias[/code]。\n"
+"要在根视口上控制这个属性,请使用项目设置 [member ProjectSettings.rendering/"
+"textures/default_filters/texture_mipmap_bias]。"
+
msgid ""
"If [code]true[/code], the viewport should render its background as "
"transparent."
@@ -124706,6 +124769,61 @@ msgstr ""
"在某些情况下,去条带可能会引入稍微明显的抖动图案。建议仅在实际需要时才启用去条"
"带,因为抖动图案会使无损压缩的屏幕截图变大。"
+msgid ""
+"If [code]true[/code], 2D rendering will use an high dynamic range (HDR) "
+"format framebuffer matching the bit depth of the 3D framebuffer. When using "
+"the Forward+ renderer this will be a [code]RGBA16[/code] framebuffer, while "
+"when using the Mobile renderer it will be a [code]RGB10_A2[/code] "
+"framebuffer. Additionally, 2D rendering will take place in linear color space "
+"and will be converted to sRGB space immediately before blitting to the screen "
+"(if the Viewport is attached to the screen). Practically speaking, this means "
+"that the end result of the Viewport will not be clamped into the [code]0-1[/"
+"code] range and can be used in 3D rendering without color space adjustments. "
+"This allows 2D rendering to take advantage of effects requiring high dynamic "
+"range (e.g. 2D glow) as well as substantially improves the appearance of "
+"effects requiring highly detailed gradients.\n"
+"[b]Note:[/b] This setting will have no effect when using the GL Compatibility "
+"renderer as the GL Compatibility renderer always renders in low dynamic range "
+"for performance reasons."
+msgstr ""
+"如果为 [code]true[/code],则 2D 渲染会使用高动态范围格式的帧缓冲,与 3D 帧缓冲"
+"的位深度一致。使用 Forward+ 渲染器时为 [code]RGBA16[/code] 帧缓冲,而使用 "
+"Mobile 渲染器时为 [code]RGB10_A2[/code] 帧缓冲。另外,2D 渲染是发生在线性色彩"
+"空间的,会在传输至屏幕前转换至 sRGB 空间(如果 Viewport 与屏幕进行了关联)。这"
+"意味着在实际情况下,Viewport 的最终效果不会被限制在 [code]0-1[/code] 的范围"
+"内,无需色彩空间调整就能够用于 3D 渲染。这样 2D 渲染就能够利用到需要高动态范围"
+"的效果(例如 2D 辉光),并且能够大幅提升需要大量细节内容的效果。\n"
+"[b]注意:[/b]使用 GL Compatibility 渲染器时无效,因为 GL Compatibility 渲染器"
+"出于性能的原因始终使用低动态范围。"
+
+msgid ""
+"If [code]true[/code], [OccluderInstance3D] nodes will be usable for occlusion "
+"culling in 3D for this viewport. For the root viewport, [member "
+"ProjectSettings.rendering/occlusion_culling/use_occlusion_culling] must be "
+"set to [code]true[/code] instead.\n"
+"[b]Note:[/b] Enabling occlusion culling has a cost on the CPU. Only enable "
+"occlusion culling if you actually plan to use it, and think whether your "
+"scene can actually benefit from occlusion culling. Large, open scenes with "
+"few or no objects blocking the view will generally not benefit much from "
+"occlusion culling. Large open scenes generally benefit more from mesh LOD and "
+"visibility ranges ([member GeometryInstance3D.visibility_range_begin] and "
+"[member GeometryInstance3D.visibility_range_end]) compared to occlusion "
+"culling.\n"
+"[b]Note:[/b] Due to memory constraints, occlusion culling is not supported by "
+"default in Web export templates. It can be enabled by compiling custom Web "
+"export templates with [code]module_raycast_enabled=yes[/code]."
+msgstr ""
+"如果为 [code]true[/code],[OccluderInstance3D] 节点将被用于该视口中的 3D 遮挡"
+"剔除。对于根视口,[member ProjectSettings.rendering/occlusion_culling/"
+"use_occlusion_culling] 必须改为被设置为 [code]true[/code]。\n"
+"[b]注意:[/b]启用遮挡剔除会消耗一定的 CPU。仅当确实打算使用遮挡剔除时才启用"
+"它,并考虑场景是否真的可以从遮挡剔除中受益。具有很少或没有对象阻挡视图的大型开"
+"放场景,通常不会从遮挡剔除中受益更多。与遮挡剔除相比,大型开放场景通常从网格 "
+"LOD 和可见性范围([member GeometryInstance3D.visibility_range_begin] 和 "
+"[member GeometryInstance3D.visibility_range_end])中受益更多。\n"
+"[b]注意:[/b]由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导"
+"出模板时使用 [code]module_raycast_enabled=yes[/code] 可以启用。"
+
msgid ""
"Enables Temporal Anti-Aliasing for this viewport. TAA works by jittering the "
"camera and accumulating the images of the last rendered frames, motion vector "
@@ -124977,42 +125095,6 @@ msgstr ""
"[b]注意:[/b]在编辑器中,目标视口或其祖级节点发生重命名或移动时会自动更新这个"
"路径。在运行时,该路径可能无法自动更新,因为无法确定场景的根节点。"
-msgid "Automatically disables another node if not visible on screen."
-msgstr "某个节点在屏幕上不可见时自动禁用该节点。"
-
-msgid ""
-"VisibleOnScreenEnabler2D detects when it is visible on screen (just like "
-"[VisibleOnScreenNotifier2D]) and automatically enables or disables the target "
-"node. The target node is disabled when [VisibleOnScreenEnabler2D] is not "
-"visible on screen (including when [member CanvasItem.visible] is [code]false[/"
-"code]), and enabled when the enabler is visible. The disabling is achieved by "
-"changing [member Node.process_mode]."
-msgstr ""
-"VisibleOnScreenEnabler2D 检测它何时在屏幕上可见(就像 "
-"[VisibleOnScreenNotifier2D] 一样)并自动启用或禁用目标节点。当 "
-"[VisibleOnScreenEnabler2D] 在屏幕上不可见时(包括当 [member CanvasItem."
-"visible] 为 [code]false[/code] 时),目标节点会被禁用;当该启动节点可见时,目"
-"标节点会被启用。禁用是通过更改 [member Node.process_mode] 来实现的。"
-
-msgid ""
-"Determines how the node is enabled. Corresponds to [enum Node.ProcessMode]. "
-"Disabled node uses [constant Node.PROCESS_MODE_DISABLED]."
-msgstr ""
-"确定节点的启用方式。与 [enum Node.ProcessMode] 对应。被禁用的节点使用 "
-"[constant Node.PROCESS_MODE_DISABLED]。"
-
-msgid ""
-"The path to the target node, relative to the [VisibleOnScreenEnabler2D]. The "
-"target node is cached; it's only assigned when setting this property (if the "
-"[VisibleOnScreenEnabler2D] is inside scene tree) and every time the "
-"[VisibleOnScreenEnabler2D] enters the scene tree. If the path is invalid, "
-"nothing will happen."
-msgstr ""
-"目标节点的路径,相对于 [VisibleOnScreenEnabler2D]。目标节点会被缓存;只有在设"
-"置这个属性时([VisibleOnScreenEnabler2D] 位于场景树中),以及 "
-"[VisibleOnScreenEnabler2D] 进入场景树时会进行赋值。如果路径无效,则不会发生任"
-"何事情。"
-
msgid "Corresponds to [constant Node.PROCESS_MODE_INHERIT]."
msgstr "对应 [constant Node.PROCESS_MODE_INHERIT]。"
@@ -125022,62 +125104,6 @@ msgstr "对应 [constant Node.PROCESS_MODE_ALWAYS]。"
msgid "Corresponds to [constant Node.PROCESS_MODE_WHEN_PAUSED]."
msgstr "对应 [constant Node.PROCESS_MODE_WHEN_PAUSED]。"
-msgid "Enables certain nodes only when approximately visible."
-msgstr "只在大约可见时启用某些节点。"
-
-msgid ""
-"The VisibleOnScreenEnabler3D will disable [RigidBody3D] and [AnimationPlayer] "
-"nodes when they are not visible. It will only affect other nodes within the "
-"same scene as the VisibleOnScreenEnabler3D itself.\n"
-"If you just want to receive notifications, use [VisibleOnScreenNotifier3D] "
-"instead.\n"
-"[b]Note:[/b] VisibleOnScreenEnabler3D uses an approximate heuristic for "
-"performance reasons. It doesn't take walls and other occlusion into account. "
-"The heuristic is an implementation detail and may change in future versions. "
-"If you need precise visibility checking, use another method such as adding an "
-"[Area3D] node as a child of a [Camera3D] node and/or [method Vector3.dot].\n"
-"[b]Note:[/b] VisibleOnScreenEnabler3D will not affect nodes added after scene "
-"initialization."
-msgstr ""
-"VisibleOnScreenEnabler3D 会禁用不可见的 [RigidBody3D] 和 [AnimationPlayer] 节"
-"点。它只会影响与 VisibleOnScreenEnabler3D 本身相同场景中的其他节点。\n"
-"如果你只是想接收通知,请使用 [VisibleOnScreenNotifier3D] 代替。\n"
-"[b]注意:[/b]VisibleOnScreenEnabler3D 由于性能原因使用了一个近似的启发式方法。"
-"它不会考虑墙和其他遮挡物。启发式方法属于实现细节,在未来的版本中可能会改变。如"
-"果你需要精确的可见性检查,请使用其他方法,例如添加一个 [Area3D] 节点作为 "
-"[Camera3D] 节点的子节点和/或 [method Vector3.dot]。\n"
-"[b]注意:[/b]VisibleOnScreenEnabler3D 不会影响场景初始化后添加的节点。"
-
-msgid "Detects when the node extents are visible on screen."
-msgstr "检测节点范围何时在屏幕上可见。"
-
-msgid ""
-"The VisibleOnScreenNotifier2D detects when it is visible on the screen. It "
-"also notifies when its bounding rectangle enters or exits the screen or a "
-"viewport.\n"
-"If you want nodes to be disabled automatically when they exit the screen, use "
-"[VisibleOnScreenEnabler2D] instead.\n"
-"[b]Note:[/b] VisibleOnScreenNotifier2D uses the render culling code to "
-"determine whether it's visible on screen, which also means that its [member "
-"CanvasItem.visible] must be [code]true[/code] to work correctly."
-msgstr ""
-"VisibleOnScreenNotifier2D 检测它何时在屏幕上可见。它还会在其边界矩形进入或退出"
-"屏幕或视口时发出通知。\n"
-"如果希望节点在退出屏幕时自动禁用,请改用 [VisibleOnScreenEnabler2D]。\n"
-"[b]注意:[/b]VisibleOnScreenNotifier2D 使用渲染剔除代码来确定它是否在屏幕上可"
-"见,这也意味着它的 [member CanvasItem.visible] 必须是 [code]true[/code] 才能正"
-"常工作。"
-
-msgid ""
-"If [code]true[/code], the bounding rectangle is on the screen.\n"
-"[b]Note:[/b] It takes one frame for the node's visibility to be assessed once "
-"added to the scene tree, so this method will return [code]false[/code] right "
-"after it is instantiated, even if it will be on screen in the draw pass."
-msgstr ""
-"如果为 [code]true[/code],则边界矩形在屏幕上。\n"
-"[b]注意:[/b]一旦添加到场景树中,需要一帧来计算节点的可见性,所以这个方法将在"
-"它被实例化后立即返回 [code]false[/code],即使屏幕在绘制过程中。"
-
msgid "The VisibleOnScreenNotifier2D's bounding rectangle."
msgstr "该 VisibleOnScreenNotifier2D 的边界矩形。"
@@ -125087,45 +125113,6 @@ msgstr "当该 VisibleOnScreenNotifier2D 进入屏幕时发出。"
msgid "Emitted when the VisibleOnScreenNotifier2D exits the screen."
msgstr "当该 VisibleOnScreenNotifier2D 退出屏幕时发出。"
-msgid "Detects approximately when the node is visible on screen."
-msgstr "大约在节点在屏幕上可见时进行检测。"
-
-msgid ""
-"The VisibleOnScreenNotifier3D detects when it is visible on the screen. It "
-"also notifies when its bounding rectangle enters or exits the screen or a "
-"[Camera3D]'s view.\n"
-"If you want nodes to be disabled automatically when they exit the screen, use "
-"[VisibleOnScreenEnabler3D] instead.\n"
-"[b]Note:[/b] VisibleOnScreenNotifier3D uses the render culling code to "
-"determine whether it's visible on screen, which also means that its [member "
-"Node3D.visible] must be [code]true[/code] to work correctly."
-msgstr ""
-"VisibleOnScreenNotifier3D 检测它何时在该屏幕上可见。它还会在其边界矩形进入或退"
-"出该屏幕或 [Camera3D] 的视图时发出通知。\n"
-"如果希望节点在退出屏幕时自动禁用,请改用 [VisibleOnScreenEnabler3D]。\n"
-"[b]注意:[/b]VisibleOnScreenNotifier3D 使用渲染剔除代码来确定它是否在屏幕上可"
-"见,这也意味着它的 [member Node3D.visible] 必须为 [code]true[/code] 时才能正常"
-"工作。"
-
-msgid ""
-"If [code]true[/code], the bounding box is on the screen.\n"
-"[b]Note:[/b] It takes one frame for the node's visibility to be assessed once "
-"added to the scene tree, so this method will return [code]false[/code] right "
-"after it is instantiated, even if it will be on screen in the draw pass."
-msgstr ""
-"如果为 [code]true[/code],则边界框在屏幕上。\n"
-"[b]注意:[/b]一旦添加到场景树中,需要一帧来计算节点的可见性,所以这个方法将在"
-"它被实例化后立即返回 [code]false[/code],即使屏幕在绘制过程中。"
-
-msgid "The VisibleOnScreenNotifier3D's bounding box."
-msgstr "该 VisibleOnScreenNotifier3D 的边界框。"
-
-msgid "Emitted when the VisibleOnScreenNotifier3D enters the screen."
-msgstr "当该 VisibleOnScreenNotifier3D 进入屏幕时发出。"
-
-msgid "Emitted when the VisibleOnScreenNotifier3D exits the screen."
-msgstr "当该 VisibleOnScreenNotifier3D 退出屏幕时发出。"
-
msgid "Parent of all visual 3D nodes."
msgstr "所有可视 3D 节点的父节点。"
@@ -125250,6 +125237,9 @@ msgstr ""
msgid "A custom shader program with a visual editor."
msgstr "带有可视化编辑器的自定义着色器程序。"
+msgid "Using VisualShaders"
+msgstr "使用可视化着色器"
+
msgid "Adds the specified [param node] to the shader."
msgstr "向着色器中添加指定的节点 [param node]。"
@@ -125402,6 +125392,9 @@ msgstr "表示无效的 [VisualShader] 节点。"
msgid "Denotes output node of [VisualShader]."
msgstr "表示 [VisualShader] 的输出节点。"
+msgid "Base class for [VisualShader] nodes. Not related to scene nodes."
+msgstr "[VisualShader] 节点的基类。与场景节点无关。"
+
msgid "Clears the default input ports value."
msgstr "清除默认输入端口值。"
@@ -125436,38 +125429,6 @@ msgstr ""
"设置将被显示为预览的输出端口索引。如果设置为[code]-1[/code],则没有端口会被打"
"开进行预览。"
-msgid ""
-"Floating-point scalar. Translated to [code]float[/code] type in shader code."
-msgstr "浮点数类型。在着色器代码中,会被翻译为 [code]float[/code] 类型。"
-
-msgid "Integer scalar. Translated to [code]int[/code] type in shader code."
-msgstr "整数标量。在着色器代码中,会被翻译为 [code]int[/code] 类型。"
-
-msgid ""
-"Unsigned integer scalar. Translated to [code]uint[/code] type in shader code."
-msgstr "无符号整数标量。在着色器代码中,会被翻译为 [code]uint[/code] 类型。"
-
-msgid ""
-"2D vector of floating-point values. Translated to [code]vec2[/code] type in "
-"shader code."
-msgstr "浮点数 2D 向量。在着色器代码中,会被翻译为 [code]vec2[/code] 类型。"
-
-msgid ""
-"3D vector of floating-point values. Translated to [code]vec3[/code] type in "
-"shader code."
-msgstr "浮点数 3D 向量。在着色器代码中,会被翻译为 [code]vec3[/code] 类型。"
-
-msgid ""
-"4D vector of floating-point values. Translated to [code]vec4[/code] type in "
-"shader code."
-msgstr "浮点数 4D 向量。在着色器代码中,会被翻译为 [code]vec4[/code] 类型。"
-
-msgid "Boolean type. Translated to [code]bool[/code] type in shader code."
-msgstr "布尔值类型。在着色器代码中,会被翻译为 [code]bool[/code] 类型。"
-
-msgid "Transform type. Translated to [code]mat4[/code] type in shader code."
-msgstr "变换类型。在着色器代码中,会被翻译为 [code]mat4[/code] 类型。"
-
msgid ""
"Sampler type. Translated to reference of sampler uniform in shader code. Can "
"only be used for input ports in non-uniform nodes."
@@ -125518,13 +125479,6 @@ msgstr "代表 [enum BillboardType] 枚举的大小。"
msgid "A boolean constant to be used within the visual shader graph."
msgstr "在可视化着色器图中使用的布尔常量。"
-msgid ""
-"Has only one output port and no inputs.\n"
-"Translated to [code]bool[/code] in the shader language."
-msgstr ""
-"只有一个输出端口,没有输入。\n"
-"在着色器语言中被转换成 [code]bool[/code]。"
-
msgid "A boolean constant which represents a state of this node."
msgstr "布尔常量,表示该节点的状态。"
@@ -126359,9 +126313,6 @@ msgid ""
"A scalar floating-point constant to be used within the visual shader graph."
msgstr "可视化着色器图中使用的浮点数标量常量。"
-msgid "Translated to [code]float[/code] in the shader language."
-msgstr "翻译为着色器语言中的 [code]float[/code]。"
-
msgid "A floating-point constant which represents a state of this node."
msgstr "代表该节点状态的浮点数常量。"
@@ -126828,6 +126779,18 @@ msgstr ""
"使用一个[String]格式的以冒号分隔的列表来定义所有输出端口: [code]id,type,name;"
"[/code] ,参阅[method add_output_port]。"
+msgid ""
+"This visual shader node has six input ports. Port 1 and 2 provide the two "
+"floating point numbers [code]a[/code] and [code]b[/code] that will be "
+"compared. Port 3 is the tolerance, which allows similar floating point number "
+"to be considered equal. Ports 4 to 6 are the possible outputs, returned if "
+"[code]a == b[/code], [code]a > b[/code], or [code]a < b[/code] respectively."
+msgstr ""
+"这个可视化着色器节点有六个输入端口。端口 1 和端口 2 提供的是需要比较的两个浮点"
+"数 [code]a[/code] 和 [code]b[/code]。端口 3 是公差,能够将相似的浮点数认定为相"
+"等。端口 4 到端口 6 是可能的输出,分别是 [code]a == b[/code]、[code]a > b[/"
+"code]、[code]a < b[/code] 时的返回值。"
+
msgid "Represents the input shader parameter within the visual shader graph."
msgstr "在可视化着色器图中,代表输入着色器参数。"
@@ -126863,9 +126826,6 @@ msgstr "通过 [member input_name] 更改输入时发出。"
msgid "A scalar integer constant to be used within the visual shader graph."
msgstr "标量整数常量,在可视化着色器图中使用。"
-msgid "Translated to [code]int[/code] in the shader language."
-msgstr "翻译为着色器语言中的 [code]int[/code]。"
-
msgid "An integer constant which represents a state of this node."
msgstr "整数常量,代表该节点的状态。"
@@ -127358,6 +127318,11 @@ msgstr "可调整大小的节点上有一个控制柄,用户能够根据需要
msgid "The size of the node in the visual shader graph."
msgstr "可视化着色器图中,该节点的大小。"
+msgid ""
+"A visual shader node that modifies the rotation of the object using a "
+"rotation matrix."
+msgstr "可视化着色器节点,使用旋转矩阵修改对象的旋转。"
+
msgid ""
"A base node for nodes which samples 3D textures in the visual shader graph."
msgstr "可视化着色器图中,对 3D 纹理进行采样的节点的基础节点。"
@@ -127374,6 +127339,13 @@ msgstr "创建内部 uniform,提供一种在节点内赋值的方式。"
msgid "Use the uniform texture from sampler port."
msgstr "使用采样器端口的 uniform 纹理。"
+msgid ""
+"A visual shader node that unpacks the screen normal texture in World Space."
+msgstr "可视化着色器节点,在世界空间中拆封屏幕法线纹理。"
+
+msgid "The ScreenNormalWorldSpace node allows to create outline effects."
+msgstr "ScreenNormalWorldSpace 节点能够用来创建轮廓效果。"
+
msgid ""
"A function to convert screen UV to an SDF (signed-distance field), to be used "
"within the visual shader graph."
@@ -127458,13 +127430,6 @@ msgstr ""
msgid "A selector function for use within the visual shader graph."
msgstr "可视化着色器中使用的选择器函数。"
-msgid ""
-"Returns an associated value of the [code]op_type[/code] type if the provided "
-"boolean value is [code]true[/code] or [code]false[/code]."
-msgstr ""
-"如果提供的布尔值为 [code]true[/code] 或 [code]false[/code],则返回 "
-"[code]op_type[/code] 类型的一个关联值。"
-
msgid "A transform type."
msgstr "变换类型。"
@@ -128321,6 +128286,9 @@ msgstr ""
"GeometryInstance3D.gi_mode] 设置为 [constant GeometryInstance3D."
"GI_MODE_STATIC]。然后可以在烘焙 [VoxelGI] 节点后,隐藏这些临时节点。"
+msgid "Using Voxel global illumination"
+msgstr "使用体素全局光照"
+
msgid ""
"Bakes the effect from all [GeometryInstance3D]s marked with [constant "
"GeometryInstance3D.GI_MODE_STATIC] and [Light3D]s marked with either "
@@ -128835,6 +128803,30 @@ msgstr ""
msgid "Interface to a WebRTC peer connection."
msgstr "与 WebRTC 对等体连接的接口。"
+msgid ""
+"A WebRTC connection between the local computer and a remote peer. Provides an "
+"interface to connect, maintain and monitor the connection.\n"
+"Setting up a WebRTC connection between two peers may not seem a trivial task, "
+"but it can be broken down into 3 main steps:\n"
+"- The peer that wants to initiate the connection ([code]A[/code] from now on) "
+"creates an offer and send it to the other peer ([code]B[/code] from now on).\n"
+"- [code]B[/code] receives the offer, generate and answer, and sends it to "
+"[code]A[/code]).\n"
+"- [code]A[/code] and [code]B[/code] then generates and exchange ICE "
+"candidates with each other.\n"
+"After these steps, the connection should become connected. Keep on reading or "
+"look into the tutorial for more information."
+msgstr ""
+"本地计算机和远程对等体之间的 WebRTC 连接。提供一个接口来连接、维护和监控连"
+"接。\n"
+"在两个对等体之间建立 WebRTC 连接看上去可能不是一项简单的任务,但它可以分解为 "
+"3 个主要步骤。\n"
+"- 想要启动连接的对等体([code]A[/code]从现在开始)创建一个提交,并将其发送给另"
+"一个对等体([code]B[/code]从现在开始)。\n"
+"- [code]B[/code] 收到要约,生成和回答,并将其发送给 [code]A[/code])。\n"
+"- [code]A[/code] 和 [code]B[/code] 然后生成并相互交换 ICE 候选。\n"
+"在这些步骤之后,连接应该成功建立。继续阅读或查看教程以了解更多信息。"
+
msgid ""
"Add an ice candidate generated by a remote peer (and received over the "
"signaling server). See [signal ice_candidate_created]."
@@ -130072,6 +130064,12 @@ msgstr ""
"运行时,[Window] 不会在请求关闭时自动关闭。你需要使用 [signal "
"close_requested] 信号手动处理(适用于点击关闭按钮和点击弹出窗口外部)。"
+msgid ""
+"Virtual method to be implemented by the user. Overrides the value returned by "
+"[method get_contents_minimum_size]."
+msgstr ""
+"需要用户实现的虚方法。能够覆盖 [method get_contents_minimum_size] 的返回值。"
+
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 "
@@ -130288,6 +130286,12 @@ msgstr ""
"如果启用了字体过采样,则返回 [code]true[/code]。见 [method "
"set_use_font_oversampling]。"
+msgid ""
+"Centers a native window on the current screen and an embedded window on its "
+"embedder [Viewport]."
+msgstr ""
+"在当前屏幕里居中原生窗口,如果时嵌入式窗口则是在嵌入器 [Viewport] 里居中。"
+
msgid "Moves the [Window] on top of other windows and focuses it."
msgstr "将该 [Window] 移动到其他窗口的顶部并聚焦。"
@@ -130507,6 +130511,14 @@ msgstr ""
"内容的基础大小(内容指在窗口内绘制的节点)。如果非零,当窗口大小发生变化时,"
"[Window] 的内容将被缩放。"
+msgid ""
+"The policy to use to determine the final scale factor for 2D elements. This "
+"affects how [member content_scale_factor] is applied, in addition to the "
+"automatic scale factor determined by [member content_scale_size]."
+msgstr ""
+"决定 2D 元素最终缩放系数的策略。会影响 [member content_scale_factor] 的使用,"
+"与 [member display/window/stretch/mode] 决定的自动缩放系数共同生效。"
+
msgid "The screen the window is currently on."
msgstr "该窗口当前所在的屏幕。"
@@ -130645,6 +130657,16 @@ msgstr ""
"和 macOS 上则会被绘制。\n"
"[b]注意:[/b]该属性在 Linux (X11)、macOS 和 Windows 上实现。"
+msgid ""
+"If [code]true[/code], the [Window] will be considered a popup. Popups are sub-"
+"windows that don't show as separate windows in system's window manager's "
+"window list and will send close request when anything is clicked outside of "
+"them (unless [member exclusive] is enabled)."
+msgstr ""
+"如果为 [code]true[/code],则该 [Window] 将被视为弹出窗口。弹出窗口是子窗口,不"
+"会在系统窗口管理器的窗口列表中显示为单独的窗口,并且会在单击它们之外的任何位置"
+"时发送关闭请求(除非启用了 [member exclusive])。"
+
msgid ""
"The window's position in pixels.\n"
"If [member ProjectSettings.display/window/subwindows/embed_subwindows] is "
@@ -130840,41 +130862,6 @@ msgstr ""
"[b]注意:[/b]为了优化性能,此节点在场景树之外发生更改时不会发送此通知。取而代"
"之的是,当节点进入场景树时会统一应用所有主题项的更新。"
-msgid ""
-"Full screen window mode. Note that this is not [i]exclusive[/i] full screen. "
-"On Windows and Linux, a borderless window is used to emulate full screen. On "
-"macOS, a new desktop is used to display the running project.\n"
-"Regardless of the platform, enabling full screen will change the window size "
-"to match the monitor's size. Therefore, make sure your project supports "
-"[url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple "
-"resolutions[/url] when enabling full screen mode."
-msgstr ""
-"全屏窗口模式。请注意,这不是[i]独占的[/i]全屏显示。在 Windows 和 Linux 上,无"
-"边框窗口用于模拟全屏。在 macOS 上,会创建一个新的桌面用于显示正在运行的项"
-"目。\n"
-"无论平台如何,启用全屏都会更改窗口大小以匹配显示器的大小。因此,请确保你的项目"
-"在启用全屏模式时支持[url=$DOCS_URL/tutorials/rendering/multiple_resolutions."
-"html]多种分辨率[/url]。"
-
-msgid ""
-"Exclusive full screen window mode. This mode is implemented on Windows only. "
-"On other platforms, it is equivalent to [constant MODE_FULLSCREEN].\n"
-"Only one window in exclusive full screen mode can be visible on a given "
-"screen at a time. If multiple windows are in exclusive full screen mode for "
-"the same screen, the last one being set to this mode takes precedence.\n"
-"Regardless of the platform, enabling full screen will change the window size "
-"to match the monitor's size. Therefore, make sure your project supports "
-"[url=$DOCS_URL/tutorials/rendering/multiple_resolutions.html]multiple "
-"resolutions[/url] when enabling full screen mode."
-msgstr ""
-"独占式全屏窗口模式。该模式仅在 Windows 平台上实现。在其他平台上等同于 "
-"[constant MODE_FULLSCREEN]。\n"
-"同一屏幕上一次只能有一个窗口处于独占式全屏模式。如果同一屏幕上有多个窗口都启用"
-"了独占式全屏模式,则最后一个设置为该模式的窗口会优先显示。\n"
-"无论在哪个平台上,启用全屏模式将会将窗口大小调整为与显示器相匹配的大小。因此,"
-"在启用全屏模式之前,请确保你的项目支持[url=$DOCS_URL/tutorials/rendering/"
-"multiple_resolutions.html]多分辨率[/url]。"
-
msgid ""
"The window can't be resized by dragging its resize grip. It's still possible "
"to resize the window using [member size]. This flag is ignored for full "
@@ -131007,6 +130994,22 @@ msgstr ""
"会保留内容的纵横比。如果目标大小与原始大小的纵横比不同,则内容会保持在左上角,"
"将拉伸出的空间增加为可见区域。"
+msgid ""
+"The content will be stretched according to a fractional factor. This fills "
+"all the space available in the window, but allows \"pixel wobble\" to occur "
+"due to uneven pixel scaling."
+msgstr ""
+"内容会根据小数系数进行拉伸。这样就能够填充窗口的所有空间,但非整数的像素缩放会"
+"导致发生“像素摆动”。"
+
+msgid ""
+"The content will be stretched only according to an integer factor, preserving "
+"sharp pixels. This may leave a black background visible on the window's edges "
+"depending on the window size."
+msgstr ""
+"内容只会根据整数系数进行拉伸,保持像素的锐利。可能导致窗口的边缘留出可见的黑色"
+"背景,具体取决于窗口大小。"
+
msgid ""
"Automatic layout direction, determined from the parent window layout "
"direction."
@@ -131082,6 +131085,9 @@ msgstr ""
"[code]expand_margin_*[/code] 属性。\n"
"[b]注意:[/b]只有在启用 [member transparent] 时,内容背景才会可见。"
+msgid "The background style used when the [Window] is embedded and unfocused."
+msgstr "[Window] 为嵌入式且未获得焦点时使用的背景样式。"
+
msgid ""
"A singleton that allocates some [Thread]s on startup, used to offload tasks "
"to these threads."
@@ -131368,14 +131374,6 @@ msgstr ""
"在直线 [code]ax + by = d[/code] 的标量方程中,这是 [code]d[/code],而 [code]"
"(a, b)[/code] 坐标由 [member normal] 属性表示。"
-msgid ""
-"The line's normal, typically a unit vector. Its direction indicates the non-"
-"colliding half-plane. Can be of any length but zero. Defaults to "
-"[code]Vector2.UP[/code]."
-msgstr ""
-"该直线的法线,通常是单位向量。方向表示不带碰撞的那半个平面。长度可以是零以外的"
-"任何值。默认为 [code]Vector2.UP[/code]。"
-
msgid "A 3D world boundary (half-space) shape used for physics collision."
msgstr "用于物理碰撞的 3D 空间边界(半空间)形状。"
@@ -131458,9 +131456,224 @@ msgid ""
"certificate is invalid."
msgstr "返回证书的字符串表示,如果证书无效则返回空字符串。"
+msgid "Provides a low-level interface for creating parsers for XML files."
+msgstr "为创建 XML 文件解析器提供低阶接口。"
+
+msgid ""
+"Provides a low-level interface for creating parsers for [url=https://en."
+"wikipedia.org/wiki/XML]XML[/url] files. This class can serve as base to make "
+"custom XML parsers.\n"
+"To parse XML, you must open a file with the [method open] method or a buffer "
+"with the [method open_buffer] method. Then, the [method read] method must be "
+"called to parse the next nodes. Most of the methods take into consideration "
+"the currently parsed node.\n"
+"Here is an example of using [XMLParser] to parse a SVG file (which is based "
+"on XML), printing each element and its attributes as a dictionary:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var parser = XMLParser.new()\n"
+"parser.open(\"path/to/file.svg\")\n"
+"while parser.read() != ERR_FILE_EOF:\n"
+" if parser.get_node_type() == XMLParser.NODE_ELEMENT:\n"
+" var node_name = parser.get_node_name()\n"
+" var attributes_dict = {}\n"
+" for idx in range(parser.get_attribute_count()):\n"
+" attributes_dict[parser.get_attribute_name(idx)] = parser."
+"get_attribute_value(idx)\n"
+" print(\"The \", node_name, \" element has the following attributes: "
+"\", attributes_dict)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var parser = new XmlParser();\n"
+"parser.Open(\"path/to/file.svg\");\n"
+"while (parser.Read() != Error.FileEof)\n"
+"{\n"
+" if (parser.GetNodeType() == XmlParser.NodeType.Element)\n"
+" {\n"
+" var nodeName = parser.GetNodeName();\n"
+" var attributesDict = new Godot.Collections.Dictionary();\n"
+" for (int idx = 0; idx < parser.GetAttributeCount(); idx++)\n"
+" {\n"
+" attributesDict[parser.GetAttributeName(idx)] = parser."
+"GetAttributeValue(idx);\n"
+" }\n"
+" GD.Print($\"The {nodeName} element has the following attributes: "
+"{attributesDict}\");\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"为创建 [url=https://zh.wikipedia.org/wiki/XML]XML[/url] 文件解析器提供低阶接"
+"口。制作自定义 XML 解析器时,可以将这个类作为基础。\n"
+"要解析 XML,你必须使用 [method open] 方法打开文件,或者使用 [method "
+"open_buffer] 方法打开缓冲区。然后必须使用 [method read] 方法解析后续节点。大多"
+"数方法使用的是当前解析节点。\n"
+"以下是使用 [XMLParser] 解析 SVG 文件(基于 XML)的粒子,会输出所有的元素,以字"
+"典的形式输出对应的属性:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var parser = XMLParser.new()\n"
+"parser.open(\"path/to/file.svg\")\n"
+"while parser.read() != ERR_FILE_EOF:\n"
+" if parser.get_node_type() == XMLParser.NODE_ELEMENT:\n"
+" var node_name = parser.get_node_name()\n"
+" var attributes_dict = {}\n"
+" for idx in range(parser.get_attribute_count()):\n"
+" attributes_dict[parser.get_attribute_name(idx)] = parser."
+"get_attribute_value(idx)\n"
+" print(\"元素 \", node_name, \" 包含的属性有:\", attributes_dict)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var parser = new XmlParser();\n"
+"parser.Open(\"path/to/file.svg\");\n"
+"while (parser.Read() != Error.FileEof)\n"
+"{\n"
+" if (parser.GetNodeType() == XmlParser.NodeType.Element)\n"
+" {\n"
+" var nodeName = parser.GetNodeName();\n"
+" var attributesDict = new Godot.Collections.Dictionary();\n"
+" for (int idx = 0; idx < parser.GetAttributeCount(); idx++)\n"
+" {\n"
+" attributesDict[parser.GetAttributeName(idx)] = parser."
+"GetAttributeValue(idx);\n"
+" }\n"
+" GD.Print($\"元素 {nodeName} 包含的属性有:{attributesDict}\");\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the number of attributes in the currently parsed element.\n"
+"[b]Note:[/b] If this method is used while the currently parsed node is not "
+"[constant NODE_ELEMENT] or [constant NODE_ELEMENT_END], this count will not "
+"be updated and will still reflect the last element."
+msgstr ""
+"返回当前解析元素中属性的数量。\n"
+"[b]注意:[/b]如果在当前解析的节点不是 [constant NODE_ELEMENT] 或 [constant "
+"NODE_ELEMENT_END] 时调用这个方法,则该计数不会更新,仍然反映的是之前的元素。"
+
+msgid ""
+"Returns the name of an attribute of the currently parsed element, specified "
+"by the [param idx] index."
+msgstr "返回当前解析元素中某个属性的名称,属性由 [param idx] 索引指定。"
+
+msgid ""
+"Returns the value of an attribute of the currently parsed element, specified "
+"by the [param idx] index."
+msgstr "返回当前解析元素中某个属性的取值,属性由 [param idx] 索引指定。"
+
+msgid "Returns the current line in the parsed file, counting from 0."
+msgstr "返回解析文件中的当前行,从 0 开始计数。"
+
+msgid ""
+"Returns the value of an attribute of the currently parsed element, specified "
+"by its [param name]. This method will raise an error if the element has no "
+"such attribute."
+msgstr ""
+"返回当前解析元素中某个属性的取值,属性由名称 [param name] 指定。如果该元素没有"
+"符合要求的属性,则会引发错误。"
+
+msgid ""
+"Returns the value of an attribute of the currently parsed element, specified "
+"by its [param name]. This method will return an empty string if the element "
+"has no such attribute."
+msgstr ""
+"返回当前解析元素中某个属性的取值,属性由名称 [param name] 指定。如果该元素没有"
+"符合要求的属性,则会返回空字符串。"
+
+msgid ""
+"Returns the contents of a text node. This method will raise an error if the "
+"current parsed node is of any other type."
+msgstr "返回文本节点的内容。如果当前解析节点是其他类型,则会引发错误。"
+
+msgid ""
+"Returns the name of an element node. This method will raise an error if the "
+"currently parsed node is not of [constant NODE_ELEMENT] or [constant "
+"NODE_ELEMENT_END] type."
+msgstr ""
+"返回元素节点的名称。如果当前解析节点既不是 [constant NODE_ELEMENT] 类型又不是 "
+"[constant NODE_ELEMENT_END] 类型,则会引发错误。"
+
+msgid ""
+"Returns the byte offset of the currently parsed node since the beginning of "
+"the file or buffer. This is usually equivalent to the number of characters "
+"before the read position."
+msgstr ""
+"返回当前解析节点相对于文件或缓冲区开始处的字节偏移量。通常等价于读取位置之前的"
+"字符数。"
+
+msgid ""
+"Returns the type of the current node. Compare with [enum NodeType] constants."
+msgstr "返回当前节点的类型。请使用 [enum NodeType] 常量进行比较。"
+
+msgid ""
+"Returns [code]true[/code] if the currently parsed element has an attribute "
+"with the [param name]."
+msgstr ""
+"如果当前解析元素存在名为 [param name] 的属性,则返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the currently parsed element is empty, e.g. "
+"[code][/code]."
+msgstr ""
+"如果当前解析元素为空则返回 [code]true[/code],例如 [code][/code]。"
+
+msgid ""
+"Opens an XML [param file] for parsing. This method returns an error code."
+msgstr "打开 XML 文件 [param file] 进行解析。这个方法返回的是错误码。"
+
+msgid ""
+"Opens an XML raw [param buffer] for parsing. This method returns an error "
+"code."
+msgstr "打开 XML 原始缓冲区 [param buffer] 进行解析。这个方法返回的是错误码。"
+
+msgid "Parses the next node in the file. This method returns an error code."
+msgstr "解析文件的下一个节点。这个方法返回的是错误码。"
+
+msgid ""
+"Moves the buffer cursor to a certain offset (since the beginning) and reads "
+"the next node there. This method returns an error code."
+msgstr ""
+"将缓冲区光标移动到某一偏移量(相对于开始位置)并在那里读取下一个节点。这个方法"
+"返回的是错误码。"
+
+msgid ""
+"Skips the current section. If the currently parsed node contains more inner "
+"nodes, they will be ignored and the cursor will go to the closing of the "
+"current element."
+msgstr ""
+"跳过当前部分。如果当前解析的节点包含其他内部节点,则会忽略这些节点,光标将跳转"
+"到当前元素的结尾处。"
+
msgid "There's no node (no file or buffer opened)."
msgstr "没有节点,未打开文件或缓冲区。"
+msgid "An element node type, also known as a tag, e.g. [code][/code]."
+msgstr "元素节点类型,也称作标签,例如 [code][/code]。"
+
+msgid "An end of element node type, e.g. [code][/code]."
+msgstr "元素结束节点类型,例如 [code][/code]。"
+
+msgid ""
+"A text node type, i.e. text that is not inside an element. This includes "
+"whitespace."
+msgstr "文本节点类型,即不在元素中的文本。包含空白字符。"
+
+msgid "A comment node type, e.g. [code][/code]."
+msgstr "注释节点类型,例如 [code][/code]。"
+
+msgid ""
+"A node type for CDATA (Character Data) sections, e.g. [code][/code]."
+msgstr ""
+"CDATA(字符数据)部分对应的节点类型,例如 [code][/"
+"code]。"
+
+msgid "An unknown node type."
+msgstr "未知节点类型。"
+
msgid "An anchor point in AR space."
msgstr "AR 空间中的锚点。"
@@ -131997,6 +132210,10 @@ msgstr ""
"返回一个 [PackedStringArray],其中包含由此接口配置的追踪器名称。请注意,用户的"
"配置可以覆盖此列表。"
+msgid ""
+"Returns a [Dictionary] with system information related to this interface."
+msgstr "返回包含与这个接口相关的系统信息的 [Dictionary]。"
+
msgid ""
"Returns a [enum XRInterface.TrackingStatus] specifying the current status of "
"our tracking."
@@ -132296,14 +132513,6 @@ msgstr ""
"如果追踪器可用,并且当前正在追踪绑定的 [param name] 姿势,则返回 [code]true[/"
"code]。"
-msgid ""
-"Marks this pose as invalid, we don't clear the last reported state but it "
-"allows users to decide if trackers need to be hidden if we loose tracking or "
-"just remain at their last known position."
-msgstr ""
-"将此姿势标记为无效,我们不会清除最后报告的状态,但如果我们失去追踪,它允许用户"
-"决定是否需要隐藏追踪器,或仅保留在其最后一个已知位置。"
-
msgid ""
"Changes the value for the given input. This method is called by a "
"[XRInterface] implementation and should not be used directly."
@@ -132674,6 +132883,13 @@ msgstr ""
" return res\n"
"[/codeblock]"
+msgid ""
+"Returns [code]true[/code] if the file exists in the loaded zip archive.\n"
+"Must be called after [method open]."
+msgstr ""
+"如果加载的 zip 存档中存在对应的文件,则返回 [code]true[/code]。\n"
+"必须在 [method open] 之后调用。"
+
msgid ""
"Returns the list of names of all files in the loaded archive.\n"
"Must be called after [method open]."
diff --git a/doc/translations/zh_TW.po b/doc/translations/zh_TW.po
new file mode 100644
index 00000000000..7a5a3e99b62
--- /dev/null
+++ b/doc/translations/zh_TW.po
@@ -0,0 +1,141439 @@
+# Chinese (Traditional) translation of the Godot Engine class reference.
+# Copyright (c) 2014-present Godot Engine contributors.
+# Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
+# This file is distributed under the same license as the Godot source code.
+#
+# binotaliu , 2020.
+# BinotaLIU , 2020, 2022.
+# Eric K , 2020.
+# Pierre Stempin , 2020.
+# Lihan Zhu , 2021.
+# jixun , 2021.
+# Nick Chu , 2021.
+# Number18 , 2022.
+# 曹恩逢 , 2022.
+# Otis Kao , 2022.
+# YuChiang Chang , 2022.
+# Hugel , 2022.
+# Chih Wei Chien , 2022.
+# Edison Lee , 2023.
+# 鄭惟中 , 2023.
+# Haoyu Qiu , 2023.
+# 快乐的老鼠宝宝 , 2023.
+# Bogay Chuang , 2023.
+# EJAMI , 2023.
+# Youuin Wang , 2023.
+# Skyter Lin , 2023.
+# longhjues , 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-11-06 00:36+0000\n"
+"Last-Translator: longhjues \n"
+"Language-Team: Chinese (Traditional) \n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 5.2-dev\n"
+
+msgid "Description"
+msgstr "說明"
+
+msgid "Tutorials"
+msgstr "教學"
+
+msgid "Properties"
+msgstr "屬性"
+
+msgid "Constructors"
+msgstr "建構子"
+
+msgid "Methods"
+msgstr "方法"
+
+msgid "Operators"
+msgstr "運算子"
+
+msgid "Theme Properties"
+msgstr "主題屬性"
+
+msgid "Signals"
+msgstr "訊號"
+
+msgid "Enumerations"
+msgstr "列舉"
+
+msgid "Constants"
+msgstr "常數"
+
+msgid "Property Descriptions"
+msgstr "屬性說明"
+
+msgid "Constructor Descriptions"
+msgstr "建構子說明"
+
+msgid "Method Descriptions"
+msgstr "方法說明"
+
+msgid "Operator Descriptions"
+msgstr "運算子說明"
+
+msgid "Theme Property Descriptions"
+msgstr "主題屬性說明"
+
+msgid "Inherits:"
+msgstr "繼承:"
+
+msgid "Inherited By:"
+msgstr "繼承自:"
+
+msgid "(overrides %s)"
+msgstr "(覆寫 %s)"
+
+msgid "Default"
+msgstr "預設"
+
+msgid "Setter"
+msgstr "設值函式"
+
+msgid "value"
+msgstr "值"
+
+msgid "Getter"
+msgstr "取值函式"
+
+msgid ""
+"This method should typically be overridden by the user to have any effect."
+msgstr "本方法通常需要使用者覆蓋才能生效。"
+
+msgid ""
+"This method has no side effects. It doesn't modify any of the instance's "
+"member variables."
+msgstr "本方法沒有副作用。不會修改該實例的任何成員變數。"
+
+msgid ""
+"This method accepts any number of arguments after the ones described here."
+msgstr "本方法除了在此處描述的參數外,還能夠繼續接受任意數量的參數。"
+
+msgid "This method is used to construct a type."
+msgstr "本方法用於建構某個型別。"
+
+msgid ""
+"This method doesn't need an instance to be called, so it can be called "
+"directly using the class name."
+msgstr "呼叫本方法無需實例,所以可以直接使用類別名稱呼叫。"
+
+msgid ""
+"This method describes a valid operator to use with this type as left-hand "
+"operand."
+msgstr "本方法描述的是使用本型別作為左運算元的有效運算子。"
+
+msgid "This value is an integer composed as a bitmask of the following flags."
+msgstr "這個值是由下列旗標構成的位元遮罩整數。"
+
+msgid ""
+"There is currently no description for this class. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個類的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this signal. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個訊號的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this annotation. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個注解的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this property. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個屬性的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this constructor. Please help us by :"
+"ref:`contributing one `!"
+msgstr ""
+"目前沒有這個建構子的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this method. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個方法的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this operator. Please help us by :ref:"
+"`contributing one `!"
+msgstr ""
+"目前沒有這個運算子的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There is currently no description for this theme property. Please help us by :"
+"ref:`contributing one `!"
+msgstr ""
+"目前沒有這個主題屬性的描述。請幫我們\\ :ref:`貢獻一個 "
+"`\\ !"
+
+msgid ""
+"There are notable differences when using this API with C#. See :ref:"
+"`doc_c_sharp_differences` for more information."
+msgstr ""
+"通過 C# 使用這個 API 時有顯著的不同。詳見 :ref:`doc_c_sharp_differences`\\ 。"
+
+msgid "Built-in GDScript constants, functions, and annotations."
+msgstr "內建 GDScript 常數、函式、注解。"
+
+msgid ""
+"A list of GDScript-specific utility functions and annotations accessible from "
+"any script.\n"
+"For the list of the global functions and constants see [@GlobalScope]."
+msgstr ""
+"GDScript 專用的實用函式及注解列表,可在任何腳本中存取。\n"
+"全域函式和常數的列表見 [@GlobalScope]。"
+
+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. Using [method Color8] "
+"instead of the standard [Color] constructor is useful when you need to match "
+"exact color values in an [Image].\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]\n"
+"[b]Note:[/b] Due to the lower precision of [method Color8] compared to the "
+"standard [Color] constructor, a color created with [method Color8] will "
+"generally not be equal to the same color created with the standard [Color] "
+"constructor. Use [method Color.is_equal_approx] for comparisons to avoid "
+"issues with floating-point precision error."
+msgstr ""
+"返回一個由整數紅通道([param r8])、綠通道([param g8])、藍通道([param b8])"
+"和可選的 Alpha 通道([param a8])建構的 [Color],每個通道的最終值都會除以 "
+"[code]255.0[/code]。如果你需要精確配對 [Image] 中的顏色值,[method Color8] 比"
+"標準的 [Color] 建構子更有用。\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]\n"
+"[b]注意:[/b]因為 [method Color8] 比標準 [Color] 建構子精度更低,所以使用 "
+"[method Color8] 建立的顏色通常與使用標準 [Color] 建構子建立的相同顏色不相等。"
+"請使用 [method Color.is_equal_approx] 進行比較,避免浮點數精度誤差。"
+
+msgid ""
+"Asserts that the [param condition] is [code]true[/code]. If the [param "
+"condition] is [code]false[/code], an error is generated. When running from "
+"the editor, the running project will also be paused until you resume it. This "
+"can be used as a stronger form of [method @GlobalScope.push_error] for "
+"reporting errors to project developers or add-on users.\n"
+"An optional [param message] can be shown in addition to the generic "
+"\"Assertion failed\" message. You can use this to provide additional details "
+"about why the assertion failed.\n"
+"[b]Warning:[/b] For performance reasons, the code inside [method assert] is "
+"only executed in debug builds or when running the project from the editor. "
+"Don't include code that has side effects in an [method assert] call. "
+"Otherwise, the project will behave differently when exported in release "
+"mode.\n"
+"[codeblock]\n"
+"# Imagine we always want speed to be between 0 and 20.\n"
+"var speed = -10\n"
+"assert(speed < 20) # True, the program will continue.\n"
+"assert(speed >= 0) # False, the program will stop.\n"
+"assert(speed >= 0 and speed < 20) # You can also combine the two conditional "
+"statements in one check.\n"
+"assert(speed < 20, \"the speed limit is 20\") # Show a message.\n"
+"[/codeblock]"
+msgstr ""
+"判斷提示條件 [param condition] 為 [code]true[/code]。如果條件 [param "
+"condition] 為 [code]false[/code] ,則會生成錯誤。如果是從編輯器運作的,正在運"
+"作的專案還會被暫停,直到手動恢復。該函式可以作為 [method @GlobalScope."
+"push_error] 的加強版,用於向專案開發者和外掛程式使用者報告有錯。\n"
+"如果給出了可選的 [param message] 參數,該資訊會和通用的“Assertion failed”消息"
+"一起顯示。你可以使用它來提供關於判斷提示失敗原因的其他詳細資訊。\n"
+"[b]警告:[/b]出於對性能的考慮,[method assert] 中的程式碼只會在除錯版本或者從"
+"編輯器運作專案時執行。請勿在 [method assert] 呼叫中加入具有副作用的程式碼。否"
+"則,專案在以發行模式匯出後將有不一致的行為。\n"
+"[codeblock]\n"
+"# 比如說我們希望 speed 始終在 0 和 20 之間。\n"
+"speed = -10\n"
+"assert(speed < 20) # True,程式會繼續執行\n"
+"assert(speed >= 0) # False,程式會停止\n"
+"assert(speed >= 0 and speed < 20) # 你還可以在單次檢查中合併兩個條件陳述式\n"
+"assert(speed < 20, \"限速為 20\") # 顯示消息。\n"
+"[/codeblock]"
+
+msgid ""
+"Returns a single character (as a [String]) of the given Unicode code point "
+"(which is compatible with ASCII code).\n"
+"[codeblock]\n"
+"a = char(65) # a is \"A\"\n"
+"a = char(65 + 32) # a is \"a\"\n"
+"a = char(8364) # a is \"€\"\n"
+"[/codeblock]"
+msgstr ""
+"返回給定的 Unicode 碼位(與ASCII碼相容)的單字元字串(作為一個[String])。\n"
+"[codeblock]\n"
+"a = char(65) # a 是“A”\n"
+"a = char(65 + 32) # a 是“a”\n"
+"a = char(8364) # a 是“€”\n"
+"[/codeblock]"
+
+msgid ""
+"[i]Deprecated.[/i] Use [method @GlobalScope.type_convert] instead.\n"
+"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 ""
+"[i]已放棄使用。[/i]請改用 [method @GlobalScope.type_convert]。\n"
+"在可能的情況下將 [param what] 轉換為 [param type] 。 [param type] 使用 [enum "
+"Variant.Type] 值。\n"
+"[codeblock]\n"
+"var a = [4, 2.5, 1.2]\n"
+"print(a is Array) # 輸出 true\n"
+"\n"
+"var b = convert(a, TYPE_PACKED_BYTE_ARRAY)\n"
+"print(b) # 輸出 [4, 2, 1]\n"
+"print(b is Array) # 輸出 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 ""
+"將一個 [param dictionary] (用 [method inst_to_dict] 建立的)轉換回為一個 "
+"Object 實例。在反序列化時可能很有用。"
+
+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 ""
+"返回一個表示目前呼叫堆疊的字典陣列。另請參閱 [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"
+"從 [code]_ready()[/code] 開始,[code]bar()[/code] 將列印:\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]注意:[/b]只有在運作的實例連接到除錯伺服器(即編輯器實例)後,該函式才有"
+"效。[method get_stack] 不適用於以發行模式匯出的專案;或者在未連接到除錯伺服器"
+"的情況下,以除錯模式匯出的專案。\n"
+"[b]注意:[/b]不支援從 [Thread] 呼叫此函式。這樣做將返回一個空陣列。"
+
+msgid ""
+"Returns the passed [param instance] converted to a Dictionary. Can be useful "
+"for serializing.\n"
+"[b]Note:[/b] Cannot be used to serialize objects with built-in scripts "
+"attached or objects allocated within built-in scripts.\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst_to_dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"Prints out:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, res://test.gd, bar]\n"
+"[/codeblock]"
+msgstr ""
+"返回傳入的 [param instance] 轉換為的字典。可用於序列化。\n"
+"[b]注意:[/b]不能用於序列化附加了內建腳本的物件,或在內建腳本中分配的對象。\n"
+"[codeblock]\n"
+"var foo = \"bar\"\n"
+"func _ready():\n"
+" var d = inst_to_dict(self)\n"
+" print(d.keys())\n"
+" print(d.values())\n"
+"[/codeblock]\n"
+"輸出:\n"
+"[codeblock]\n"
+"[@subpath, @path, foo]\n"
+"[, 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 a runtime error.\n"
+"See also [method @GlobalScope.typeof], [method type_exists], [method Array."
+"is_same_typed] (and other [Array] methods)."
+msgstr ""
+"如果 [param value] 為 [param type] 型別的實例,則返回 [code]true[/code]。"
+"[param type] 的值必須為下列值之一:\n"
+"- [enum Variant.Type] 列舉常數,例如 [constant TYPE_INT]。\n"
+"- [ClassDB] 中存在的衍生自 [Object] 的類,例如 [Node]。\n"
+"- [Script](可以用任何類,包括內部類)。\n"
+"[param type] 可以不是常數,這一點與 [code]is[/code] 的右運算元不同。[code]is[/"
+"code] 運算子支援的功能更多(例如型別化陣列),性能也更高。如果你不需要動態型別"
+"檢查,請使用該運算子,不要使用此方法。\n"
+"範例:\n"
+"[codeblock]\n"
+"print(is_instance_of(a, TYPE_INT))\n"
+"print(is_instance_of(a, Node))\n"
+"print(is_instance_of(a, MyClass))\n"
+"print(is_instance_of(a, MyClass.InnerClass))\n"
+"[/codeblock]\n"
+"[b]注意:[/b]如果 [param value] 和/或 [param type] 為已釋放的對象(見 [method "
+"@GlobalScope.is_instance_valid]),或者 [param type] 不是以上選項之一,則此方"
+"法會報執行階段錯誤。\n"
+"另見 [method @GlobalScope.typeof]、[method type_exists]、[method Array."
+"is_same_typed](以及其他 [Array] 方法)。"
+
+msgid ""
+"Returns the length of the given Variant [param var]. The length can be the "
+"character count of a [String], the element count of any array type or the "
+"size of a [Dictionary]. For every other Variant type, a run-time error is "
+"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 ""
+"返回給定 Variant [param var] 的長度。長度可以是 [String] 的字元數、任意陣列類"
+"型的元素數、或 [Dictionary] 的大小等。對於所有其他 Variant 型別,都會生成運作"
+"時錯誤並停止執行。\n"
+"[codeblock]\n"
+"a = [1, 2, 3, 4]\n"
+"len(a) # 返回 4\n"
+"\n"
+"b = \"Hello!\"\n"
+"len(b) # 返回 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].\n"
+"[b]Note:[/b] If [member ProjectSettings.editor/export/"
+"convert_text_resources_to_binary] is [code]true[/code], [method @GDScript."
+"load] will not be able to read converted files in an exported project. If you "
+"rely on run-time loading of files present within the PCK, set [member "
+"ProjectSettings.editor/export/convert_text_resources_to_binary] to "
+"[code]false[/code]."
+msgstr ""
+"返回一個位於檔案系統絕對路徑 [param path] 的 [Resource]。除非該資源已在其他地"
+"方引用(例如在另一個腳本或場景中),否則資源是在函式呼叫時從磁片載入的——這可能"
+"會導致輕微的延遲,尤其是在載入大型場景時。為避免在多次載入某些內容時出現不必要"
+"的延遲,可以將資源儲存在變數中或使用預載入 [method preload]。\n"
+"[b]注意:[/b]資源路徑可以通過按右鍵檔案系統停靠面板中的資源並選擇“複製路徑”,"
+"或將檔案從檔案系統停靠面板拖到腳本中獲得。\n"
+"[codeblock]\n"
+"# 載入位於專案根目錄的一個名為“main”的場景,並將其快取在一個變數中。\n"
+"var main = load(\"res://main.tscn\") # main 將包含一個 PackedScene 資源。\n"
+"[/codeblock]\n"
+"[b]重要提示:[/b]路徑必須是絕對路徑。相對路徑將始終返回 [code]null[/code]。\n"
+"這個方法是 [method ResourceLoader.load] 的簡化版,原方法可以用於更高級的場"
+"景。\n"
+"[b]注意:[/b]必須先將檔匯入引擎才能使用此函式載入它們。如果你想在運作時加載 "
+"[Image],你可以使用 [method Image.load]。如果要匯入音訊檔,可以使用 [member "
+"AudioStreamMP3.data] 中描述的程式碼片段。\n"
+"[b]注意:[/b]如果 [member ProjectSettings.editor/export/"
+"convert_text_resources_to_binary] 為 [code]true[/code],則 [method @GDScript."
+"load] 無法在匯出後的專案中讀取已轉換的檔。如果你需要在運作時載入存在於 PCK 中"
+"的檔案,請將 [member ProjectSettings.editor/export/"
+"convert_text_resources_to_binary] 設定為 [code]false[/code]。"
+
+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 ""
+"返回一個位於檔案系統絕對路徑[param path] 的 [Resource]。在運作時,該資源將在解"
+"析腳本時載入。實際可以將這個函式視作對該資源的引用。請注意,此函式要求 [param "
+"path] 為 [String]常數。如果要從動態、可變路徑載入資源,請使用 [method "
+"load]。\n"
+"[b]注意:[/b]資源路徑可以通過按右鍵素材面板中的資源並選擇“複製路徑”,或通過將"
+"檔案從檔案系統停靠面板拖到腳本中來獲得。\n"
+"[codeblock]\n"
+"# 建立場景的實例。\n"
+"var diamond = preload(\"res://diamond.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 ""
+"與 [method @GlobalScope.print] 類似,但在打開除錯器運作時還會包含目前堆疊影"
+"格。\n"
+"控制台中的輸出應該是類似這樣的:\n"
+"[codeblock]\n"
+"Test print\n"
+"At: res://test.gd:15:_process()\n"
+"[/codeblock]\n"
+"[b]注意:[/b]不支援從 [Thread] 中呼叫此方法。呼叫時會輸出執行緒 ID。"
+
+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 ""
+"輸出目前程式碼位置的堆疊追蹤。另請參閱 [method get_stack]。\n"
+"控制台中的輸出是類似這樣的:\n"
+"[codeblock]\n"
+"Frame 0 - res://test.gd:16 in function '_process'\n"
+"[/codeblock]\n"
+"[b]注意:[/b]只有在運作的實例連接到除錯伺服器(即編輯器實例)後,該函式才有"
+"效。[method print_stack] 不適用於以發行模式匯出的專案;或者在未連接到除錯服務"
+"器的情況下,以除錯模式匯出的專案。\n"
+"[b]注意:[/b]不支援從 [Thread] 呼叫此函式。這樣做將改為列印執行緒 ID。"
+
+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() - 1, -1, -1):\n"
+" print(array[i])\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 ""
+"返回具有給定範圍的陣列。[method range] 可以通過三種方式呼叫:\n"
+"[code]range(n: int)[/code]:從 0 開始,每次加 1,在到達 [code]n[/code] [i]之前"
+"[/i]停止。[b]不包含[/b]參數 [code]n[/code]。\n"
+"[code]range(b: int, n: int)[/code]:從 [code]b[/code] 開始,每次加 1,在到達 "
+"[code]n[/code] [i]之前[/i]停止。[b]包含[/b]參數 [code]b[/code],[b]不包含[/b]"
+"參數 [code]n[/code]。\n"
+"[code]range(b: int, n: int, s: int)[/code]:從 [code]b[/code] 開始,以 "
+"[code]s[/code] 為步長遞增/遞減,在到達 [code]n[/code] [i]之前[/i]停止。[b]包含"
+"[/b]參數 [code]b[/code],[b]不包含[/b]參數 [code]n[/code]。參數 [code]s[/"
+"code] [b]可以[/b]為負數,但不能為 [code]0[/code]。如果 [code]s[/code] 為 "
+"[code]0[/code],則會輸出一條錯誤消息。\n"
+"[method range] 會先將所有參數轉換為 [int] 再進行處理。\n"
+"[b]注意:[/b]如果沒有滿足條件的值,則返回空陣列(例如 [code]range(2, 5, -1)[/"
+"code] 和 [code]range(5, 5, 1)[/code])。\n"
+"範例:\n"
+"[codeblock]\n"
+"print(range(4)) # 輸出 [0, 1, 2, 3]\n"
+"print(range(2, 5)) # 輸出 [2, 3, 4]\n"
+"print(range(0, 6, 2)) # 輸出 [0, 2, 4]\n"
+"print(range(4, 1, -1)) # 輸出 [4, 3, 2]\n"
+"[/codeblock]\n"
+"要反向走訪 [Array],請使用:\n"
+"[codeblock]\n"
+"var array = [3, 6, 9]\n"
+"for i in range(array.size() - 1, -1, -1):\n"
+" print(array[i])\n"
+"[/codeblock]\n"
+"輸出:\n"
+"[codeblock]\n"
+"9\n"
+"6\n"
+"3\n"
+"[/codeblock]\n"
+"要走訪 [float],請在迴圈中進行轉換。\n"
+"[codeblock]\n"
+"for i in range (3, 0, -1):\n"
+" print(i / 10.0)\n"
+"[/codeblock]\n"
+"輸出:\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 ""
+"如果 [ClassDB] 中存在給定的 [Object] 衍生類,則返回 [code]true[/code]。請注"
+"意,[Variant] 資料型別未在 [ClassDB] 中註冊。\n"
+"[codeblock]\n"
+"type_exists(\"Sprite2D\") # 返回 true\n"
+"type_exists(\"NonExistentClass\") # 返回 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 ""
+"常數,表示圓的周長是直徑的多少倍。相當於 [code]TAU / 2[/code],或以弧度表示的"
+"180度。"
+
+msgid ""
+"The circle constant, the circumference of the unit circle in radians. This is "
+"equivalent to [code]PI * 2[/code], or 360 degrees in rotations."
+msgstr ""
+"圓常數,單位圓的周長,單位為弧度。相當於 [code]PI * 2[/code],即 360 度的弧度"
+"值。"
+
+msgid ""
+"Positive floating-point infinity. This is the result of floating-point "
+"division when the divisor is [code]0.0[/code]. For negative infinity, use "
+"[code]-INF[/code]. Dividing by [code]-0.0[/code] will result in negative "
+"infinity if the numerator is positive, so dividing by [code]0.0[/code] is not "
+"the same as dividing by [code]-0.0[/code] (despite [code]0.0 == -0.0[/code] "
+"returning [code]true[/code]).\n"
+"[b]Warning:[/b] Numeric infinity is only a concept with floating-point "
+"numbers, and has no equivalent for integers. Dividing an integer number by "
+"[code]0[/code] will not result in [constant INF] and will result in a run-"
+"time error instead."
+msgstr ""
+"正浮點無窮大。這是除數為 [code]0.0[/code] 時浮點除法的結果。對於負無窮大,使"
+"用 [code]-INF[/code]。如果分子為正,除以 [code]-0.0[/code] 將導致負無窮大,因"
+"此除以 [code]0.0[/code] 與除以 [code]-0.0[/code] 不同(儘管 [code]0.0 == "
+"-0.0[/code] 返回 [code]true[/code])。\n"
+"[b]警告:[/b]數值無窮大只是浮點數的一個概念,對於整數來說沒有對應的概念。將整"
+"數除以 [code]0[/code] 不會產生 [constant INF],而是會產生一個執行階段錯誤。"
+
+msgid ""
+"\"Not a Number\", an invalid floating-point value. [constant NAN] has special "
+"properties, including that [code]!=[/code] always returns [code]true[/code], "
+"while other comparison operators always return [code]false[/code]. This is "
+"true even when comparing with itself ([code]NAN == NAN[/code] returns "
+"[code]false[/code] and [code]NAN != NAN[/code] returns [code]true[/code]). It "
+"is returned 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”(非數),一個無效的浮點數值。[constant NAN] 有許多特殊的性質,"
+"比如 [code]!=[/code] 始終返回 [code]true[/code],而其他比較運算子都始終返回 "
+"[code]false[/code]。即便是和自己比較也是如此([code]NAN == NAN[/code] 返回 "
+"[code]false[/code],而 [code]NAN != NAN[/code] 返回 [code]true[/code])。部分"
+"無效運算會返回這個值,例如將浮點數 [code]0.0[/code] 除以 [code]0.0[/code]。\n"
+"[b]警告:[/b]“非數”只是浮點數的概念,整數中沒有對應的概念。將整數 [code]0[/"
+"code] 除以 [code]0[/code] 不會得到 [constant NAN],而是會產生執行階段錯誤。"
+
+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 ""
+"為後續匯出屬性定義一個新類別。方便在屬性面板面板中組織屬性。\n"
+"另見 [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]注意:[/b]屬性面板面板中的列表通常會按類別將來自不同類(如 Node、Node2D、"
+"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 @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 ""
+"將 [String] 屬性作為目錄路徑匯出。該路徑僅限於專案檔案夾及其子資料夾。要允許在"
+"整個檔案系統中進行選擇,見 [annotation @export_global_dir]。\n"
+"另見 [constant PROPERTY_HINT_DIR]。\n"
+"[codeblock]\n"
+"@export_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an [int] or [String] property as an enumerated list of options. If the "
+"property is an [int], then the index of the value is stored, in the same "
+"order the values are provided. You can add explicit values using a colon. If "
+"the property is a [String], then the value is stored.\n"
+"See also [constant PROPERTY_HINT_ENUM].\n"
+"[codeblock]\n"
+"@export_enum(\"Warrior\", \"Magician\", \"Thief\") var character_class: int\n"
+"@export_enum(\"Slow:30\", \"Average:60\", \"Very Fast:200\") var "
+"character_speed: int\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String\n"
+"[/codeblock]\n"
+"If you want to set an initial value, you must specify it explicitly:\n"
+"[codeblock]\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String = "
+"\"Rebecca\"\n"
+"[/codeblock]\n"
+"If you want to use named GDScript enums, then use [annotation @export] "
+"instead:\n"
+"[codeblock]\n"
+"enum CharacterName {REBECCA, MARY, LEAH}\n"
+"@export var character_name: CharacterName\n"
+"[/codeblock]"
+msgstr ""
+"將 [int] 或 [String] 匯出為列舉選項列表。如果屬性為 [int],則保存的是值的索"
+"引,與值的順序一致。你可以通過冒號新增明確的值。如果屬性為 [String],則保存的"
+"是值。\n"
+"另見 [constant PROPERTY_HINT_ENUM]。\n"
+"[codeblock]\n"
+"@export_enum(\"Warrior\", \"Magician\", \"Thief\") var character_class: int\n"
+"@export_enum(\"Slow:30\", \"Average:60\", \"Very Fast:200\") var "
+"character_speed: int\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String\n"
+"[/codeblock]\n"
+"如果想要設定初始值,你必須進行明確的指定:\n"
+"[codeblock]\n"
+"@export_enum(\"Rebecca\", \"Mary\", \"Leah\") var character_name: String = "
+"\"Rebecca\"\n"
+"[/codeblock]\n"
+"如果想要使用 GDScript 列舉,請改用 [annotation @export]:\n"
+"[codeblock]\n"
+"enum CharacterName {REBECCA, MARY, LEAH}\n"
+"@export var character_name: CharacterName\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 ""
+"使用緩動編輯器小元件匯出浮點屬性。可以提供額外的提示來調整小元件的行為。"
+"[code]\"attenuation\"[/code] 翻轉曲線,使編輯衰減屬性更加直觀。"
+"[code]\"positive_only\"[/code] 將值限制為僅大於或等於零。\n"
+"另請參見 [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 a [String] property as a path to a file. The path will be limited to "
+"the project folder and its subfolders. See [annotation @export_global_file] "
+"to allow picking from the entire filesystem.\n"
+"If [param filter] is provided, only matching files will be available for "
+"picking.\n"
+"See also [constant PROPERTY_HINT_FILE].\n"
+"[codeblock]\n"
+"@export_file var sound_effect_path: String\n"
+"@export_file(\"*.txt\") var notes_path: String\n"
+"[/codeblock]"
+msgstr ""
+"將 [String] 屬性匯出為檔路徑。該路徑僅限於專案檔案夾及其子資料夾。若要允許從整"
+"個檔案系統中進行選擇,請參閱 [annotation @export_global_file]。\n"
+"如果提供了 [param filter],則只有配對的檔可供選擇。\n"
+"另請參見 [constant PROPERTY_HINT_FILE]。\n"
+"[codeblock]\n"
+"@export_file var sound_effect_file: String\n"
+"@export_file(\"*.txt\") var notes_file: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field. This allows to store several "
+"\"checked\" or [code]true[/code] values with one property, and comfortably "
+"select them from the Inspector dock.\n"
+"See also [constant PROPERTY_HINT_FLAGS].\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"You can add explicit values using a colon:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"You can also combine several flags:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [annotation @export_enum], the previous explicit value is "
+"not taken into account. In the following example, A is 16, B is 2, C is 4.\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為位元旗標欄位。能夠在單個屬性中保存若干“勾選”或者說 "
+"[code]true[/code] 值,可以很方便地在屬性面板面板中進行選擇。\n"
+"另見 [constant PROPERTY_HINT_FLAGS]。\n"
+"[codeblock]\n"
+"@export_flags(\"Fire\", \"Water\", \"Earth\", \"Wind\") var spell_elements = "
+"0\n"
+"[/codeblock]\n"
+"你可以通過冒號來新增明確的值:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Foes:16\") var spell_targets = 0\n"
+"[/codeblock]\n"
+"你還可以對旗標進行組合:\n"
+"[codeblock]\n"
+"@export_flags(\"Self:4\", \"Allies:8\", \"Self and Allies:12\", \"Foes:16\")\n"
+"var spell_targets = 0\n"
+"[/codeblock]\n"
+"[b]注意:[/b]旗標值最多為 [code]1[/code],最多為 [code]2 ** 32 - 1[/code]。\n"
+"[b]注意:[/b]與 [annotation @export_enum] 不同,不會考慮前一個明確的值。下面的"
+"例子中,A 為 16、B 為 2、C 為 4。\n"
+"[codeblock]\n"
+"@export_flags(\"A:16\", \"B\", \"C\") var x\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 2D navigation layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_navigation/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_2d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為 2D 導覽層的位元旗標欄位。屬性面板停靠面板中的小元件,將使用"
+"在 [member ProjectSettings.layer_names/2d_navigation/layer_1] 中定義的層名"
+"稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_2D_NAVIGATION]。\n"
+"[codeblock]\n"
+"@export_flags_2d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 2D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/2d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_2D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為 2D 實體層的位元旗標欄位。屬性面板停靠面板中的小工具,將使用"
+"在 [member ProjectSettings.layer_names/2d_physics/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_2D_PHYSICS]。\n"
+"[codeblock]\n"
+"@export_flags_2d_physics var physics_layers: int\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 ""
+"將整數屬性匯出為 2D 渲染層的位元旗標欄位。屬性面板停靠面板中的小工具將使用在 "
+"[member ProjectSettings.layer_names/2d_render/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_2D_RENDER]。\n"
+"[codeblock]\n"
+"@export_flags_2d_render var render_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D navigation layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_navigation/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_NAVIGATION].\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為 3D 導覽層的位元旗標欄位。屬性面板停靠面板中的小工具將使用在 "
+"[member ProjectSettings.layer_names/3d_navigation/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_3D_NAVIGATION]。\n"
+"[codeblock]\n"
+"@export_flags_3d_navigation var navigation_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D physics layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_physics/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_PHYSICS].\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為 3D 實體層的位元旗標欄位。屬性面板停靠面板中的小工具將使用在 "
+"[member ProjectSettings.layer_names/3d_physics/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_3D_PHYSICS]。\n"
+"[codeblock]\n"
+"@export_flags_3d_physics var physics_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for 3D render layers. The "
+"widget in the Inspector dock will use the layer names defined in [member "
+"ProjectSettings.layer_names/3d_render/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_3D_RENDER].\n"
+"[codeblock]\n"
+"@export_flags_3d_render var render_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為 3D 渲染層的位元旗標欄位。屬性面板停靠面板中的小工具將使用在 "
+"[member ProjectSettings.layer_names/3d_render/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_3D_RENDER]。\n"
+"[codeblock]\n"
+"@export_flags_3d_render var render_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export an integer property as a bit flag field for navigation avoidance "
+"layers. The widget in the Inspector dock will use the layer names defined in "
+"[member ProjectSettings.layer_names/avoidance/layer_1].\n"
+"See also [constant PROPERTY_HINT_LAYERS_AVOIDANCE].\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+msgstr ""
+"將整數屬性匯出為導覽避障層的位元旗標欄位。屬性面板停靠面板中的小工具,將使用"
+"在 [member ProjectSettings.layer_names/avoidance/layer_1] 中定義的層名稱。\n"
+"另請參見 [constant PROPERTY_HINT_LAYERS_AVOIDANCE]。\n"
+"[codeblock]\n"
+"@export_flags_avoidance var avoidance_layers: int\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a directory. The path can "
+"be picked from the entire filesystem. See [annotation @export_dir] to limit "
+"it to the project folder and its subfolders.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_DIR].\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+msgstr ""
+"將 [String] 屬性匯出為目錄路徑。該路徑可以從整個檔案系統中選擇。請參閱 "
+"[annotation @export_dir] 以將其限制為專案檔案夾及其子資料夾。\n"
+"另請參見 [constant PROPERTY_HINT_GLOBAL_DIR]。\n"
+"[codeblock]\n"
+"@export_global_dir var sprite_folder_path: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export a [String] property as an absolute path to a file. The path can be "
+"picked from the entire filesystem. See [annotation @export_file] to limit it "
+"to the project folder and its subfolders.\n"
+"If [param filter] is provided, only matching files will be available for "
+"picking.\n"
+"See also [constant PROPERTY_HINT_GLOBAL_FILE].\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@export_global_file(\"*.txt\") var notes_path: String\n"
+"[/codeblock]"
+msgstr ""
+"將 [String] 屬性作為檔路徑匯出。該路徑可以在整個檔案系統中進行選擇。要將其限制"
+"為專案檔案夾及其子資料夾,見 [annotation @export_file]。\n"
+"如果提供了 [param filter],則只有配對的檔可供選擇。\n"
+"另見 [constant PROPERTY_HINT_GLOBAL_FILE]。\n"
+"[codeblock]\n"
+"@export_global_file var sound_effect_path: String\n"
+"@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, then every following property will be 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(\"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]"
+
+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 ""
+"用一個大的 [TextEdit] 元件而不是 [LineEdit] 匯出一個 [String] 屬性。這增加了對"
+"多行內容的支援,使其更容易編輯儲存在屬性中的大量文字。\n"
+"參見 [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]\n"
+"[b]Note:[/b] The type must be a native class or a globally registered script "
+"(using the [code]class_name[/code] keyword) that inherits [Node]."
+msgstr ""
+"匯出具有篩檢程式,並允許節點型別為 [NodePath] 的屬性。\n"
+"參見 [constant PROPERTY_HINT_NODE_PATH_VALID_TYPES]。\n"
+"[codeblock]\n"
+"@export_node_path(\"Button\", \"TouchScreenButton\") var some_button\n"
+"[/codeblock]\n"
+"[b]注意:[/b] 型別必須是本地類或全域註冊的腳本(使用[code][class_name][/code]關"
+"鍵字)且繼承自 [Node] 。"
+
+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 ""
+"匯出一個帶有一個預留位置文字的 [String] 屬性,當沒有值時,編輯器小元件中會顯示"
+"該預留位置文字。\n"
+"另請參見 [constant PROPERTY_HINT_PLACEHOLDER_TEXT]。\n"
+"[codeblock]\n"
+"@export_placeholder(\"Name in lowercase\") var character_id: String\n"
+"[/codeblock]"
+
+msgid ""
+"Export an [int] or [float] property as a range value. The range must be "
+"defined by [param min] and [param max], as well as an optional [param step] "
+"and a variety of extra hints. The [param step] defaults to [code]1[/code] for "
+"integer properties. For floating-point numbers this value depends on your "
+"[code]EditorSettings.interface/inspector/default_float_step[/code] setting.\n"
+"If hints [code]\"or_greater\"[/code] and [code]\"or_less\"[/code] are "
+"provided, the editor widget will not cap the value at range boundaries. The "
+"[code]\"exp\"[/code] hint will make the edited values on range to change "
+"exponentially. The [code]\"hide_slider\"[/code] hint will hide the slider "
+"element of the editor widget.\n"
+"Hints also allow to indicate the units for the edited value. Using "
+"[code]\"radians_as_degrees\"[/code] you can specify that the actual value is "
+"in radians, but should be displayed in degrees in the Inspector dock (the "
+"range values are also in degrees). [code]\"degrees\"[/code] allows to add a "
+"degree sign as a unit suffix (the value is unchanged). Finally, a custom "
+"suffix can be provided using [code]\"suffix:unit\"[/code], where \"unit\" can "
+"be any string.\n"
+"See also [constant PROPERTY_HINT_RANGE].\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-180, 180, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+msgstr ""
+"將 [int] 或 [float] 屬性匯出為範圍值。範圍必須由 [param min] 和 [param max] 定"
+"義,還有一個可選的 [param step] 和各種額外的提示。對於整數屬性,[param step] "
+"的預設值是 [code]1[/code] 。對於浮點數,這個值取決於你的 [code]EditorSettings."
+"interface/inspector/default_float_step[/code] 設定。\n"
+"如果提供了提示 [code]\"or_greater\"[/code] 和 [code]\"or_less\"[/code] ,那麼"
+"編輯器元件將不會在範圍邊界處對數值進行限制。[code]\"exp\"[/code] 提示將使範圍"
+"內的編輯值以指數形式變化。[code]\"hide_slider\"[/code] 提示將隱藏編輯器元件中"
+"的滑桿。\n"
+"提示還允許指示編輯的值的單位。使用 [code]\"radians_as_degrees\"[/code] ,你可"
+"以指定實際值以弧度為單位,但在屬性面板中會以角度為單位顯示(範圍值也使用度"
+"數)。[code]\"degrees\"[/code] 允許新增一個角度符號作為單位後綴。最後,可以使"
+"用 [code]\"suffix:單位\"[/code] 提供一個自訂後綴,其中“單位”可以是任何字串。\n"
+"另見 [constant PROPERTY_HINT_RANGE]。\n"
+"[codeblock]\n"
+"@export_range(0, 20) var number\n"
+"@export_range(-10, 20) var number\n"
+"@export_range(-10, 20, 0.2) var number: float\n"
+"\n"
+"@export_range(0, 100, 1, \"or_greater\") var power_percent\n"
+"@export_range(0, 100, 1, \"or_greater\", \"or_less\") var health_delta\n"
+"\n"
+"@export_range(-3.14, 3.14, 0.001, \"radians_as_degrees\") var angle_radians\n"
+"@export_range(0, 360, 1, \"degrees\") var angle_degrees\n"
+"@export_range(-8, 8, 2, \"suffix:px\") var target_offset\n"
+"[/codeblock]"
+
+msgid ""
+"Define a new subgroup for the following exported properties. This helps to "
+"organize properties in the Inspector dock. Subgroups work exactly like "
+"groups, except they need a parent group to exist. See [annotation "
+"@export_group].\n"
+"See also [constant PROPERTY_USAGE_SUBGROUP].\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Subgroups cannot be nested, they only provide one extra level of "
+"depth. Just like the next group ends the previous group, so do the subsequent "
+"subgroups."
+msgstr ""
+"為接下來的匯出屬性定義一個新的子群組。有助於組織屬性面板面板中的屬性。子群組的"
+"工作方式與群組類似,只是它們依賴於一個父級群組。見 [annotation "
+"@export_group]。\n"
+"另見 [constant PROPERTY_USAGE_SUBGROUP]。\n"
+"[codeblock]\n"
+"@export_group(\"Racer Properties\")\n"
+"@export var nickname = \"Nick\"\n"
+"@export var age = 26\n"
+"\n"
+"@export_subgroup(\"Car Properties\", \"car_\")\n"
+"@export var car_label = \"Speedy\"\n"
+"@export var car_number = 3\n"
+"[/codeblock]\n"
+"[b]注意:[/b]子群組不能巢狀,它們只提供一層額外的深度。新的群組會結束前一個分"
+"組,類似地,後續的子群組也會打斷之前的子群組。"
+
+msgid ""
+"Mark the following property as assigned when the [Node] is ready. Values for "
+"these properties are not assigned immediately when the node is initialized "
+"([method Object._init]), and instead are computed and stored right before "
+"[method Node._ready].\n"
+"[codeblock]\n"
+"@onready var character_name: Label = $Label\n"
+"[/codeblock]"
+msgstr ""
+"標記後續屬性會在 [Node] 的就緒狀態時賦值。節點初始化([method Object._init])"
+"時不會立即對這些屬性賦值,而是會在即將呼叫 [method Node._ready] 之前進行計算和"
+"保存。\n"
+"[codeblock]\n"
+"@onready var character_name: Label = $Label\n"
+"[/codeblock]"
+
+msgid ""
+"Mark the following method for remote procedure calls. See [url=$DOCS_URL/"
+"tutorials/networking/high_level_multiplayer.html]High-level multiplayer[/"
+"url].\n"
+"If [param mode] is set as [code]\"any_peer\"[/code], allows any peer to call "
+"this RPC function. Otherwise, only the authority peer is allowed to call it "
+"and [param mode] should be kept as [code]\"authority\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], each of these "
+"modes respectively corresponds to the [constant MultiplayerAPI."
+"RPC_MODE_AUTHORITY] and [constant MultiplayerAPI.RPC_MODE_ANY_PEER] RPC "
+"modes. See [enum MultiplayerAPI.RPCMode]. If a peer that is not the authority "
+"tries to call a function that is only allowed for the authority, the function "
+"will not be executed. If the error can be detected locally (when the RPC "
+"configuration is consistent between the local and the remote peer), an error "
+"message will be displayed on the sender peer. Otherwise, the remote peer will "
+"detect the error and print an error there.\n"
+"If [param sync] is set as [code]\"call_remote\"[/code], the function will "
+"only be executed on the remote peer, but not locally. To run this function "
+"locally too, set [param sync] to [code]\"call_local\"[/code]. When "
+"configuring functions as RPCs with [method Node.rpc_config], this is "
+"equivalent to setting [code]call_local[/code] to [code]true[/code].\n"
+"The [param transfer_mode] accepted values are [code]\"unreliable\"[/code], "
+"[code]\"unreliable_ordered\"[/code], or [code]\"reliable\"[/code]. It sets "
+"the transfer mode of the underlying [MultiplayerPeer]. See [member "
+"MultiplayerPeer.transfer_mode].\n"
+"The [param transfer_channel] defines the channel of the underlying "
+"[MultiplayerPeer]. See [member MultiplayerPeer.transfer_channel].\n"
+"The order of [param mode], [param sync] and [param transfer_mode] does not "
+"matter, but values related to the same argument must not be used more than "
+"once. [param transfer_channel] always has to be the 4th argument (you must "
+"specify 3 preceding arguments).\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # Equivalent to @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+msgstr ""
+"將後續方法標記為遠端程式呼叫。見[url=$DOCS_URL/tutorials/networking/"
+"high_level_multiplayer.html]《高階多人遊戲》[/url]。\n"
+"如果將 [param mode] 設為 [code]\"any_peer\"[/code],則會允許所有對等體呼叫該 "
+"RPC 函式。否則就只允許該對等體的控制方呼叫,此時應該讓 [param mode] 保持為 "
+"[code]\"authority\"[/code]。使用 [method Node.rpc_config] 將函式配置為 RPC "
+"時,這些模式對應的是 RPC 模式 [constant MultiplayerAPI.RPC_MODE_AUTHORITY] 和 "
+"[constant MultiplayerAPI.RPC_MODE_ANY_PEER]。如果非控制方的對等體嘗試呼叫僅限"
+"控制方呼叫的函式,則不會執行該函式。如果本地能夠偵測到錯誤(本地與遠端對等體"
+"的 RPC 配置一致),則發送方對等體會顯示錯誤消息。否則遠程對等體會偵測到該錯誤"
+"並輸出錯誤。\n"
+"如果將 [param sync] 設為 [code]\"call_remote\"[/code],則該函式只會在遠端對等"
+"體上執行,不會在本地執行。要讓這個函式在本地也執行,請將 [param sync] 設定為 "
+"[code]\"call_local\"[/code]。使用 [method Node.rpc_config] 將函式配置為 RPC "
+"時,等價於將 [code]call_local[/code] 設定為 [code]true[/code]。\n"
+"[param transfer_mode] 能夠接受的值為 [code]\"unreliable\"[/code]、"
+"[code]\"unreliable_ordered\"[/code]、[code]\"reliable\"[/code],會設定底層 "
+"[MultiplayerPeer] 的傳輸模式。見 [member MultiplayerPeer.transfer_mode]。\n"
+"[param transfer_channel] 定義的是底層 [MultiplayerPeer] 的通道。見 [member "
+"MultiplayerPeer.transfer_channel]。\n"
+"[param mode]、[param sync] 和 [param transfer_mode] 的順序是無關的,但是相同參"
+"數的取值不能出現多次。[param transfer_channel] 必須始終為第四個參數(前三個參"
+"數必須指定)。\n"
+"[codeblock]\n"
+"@rpc\n"
+"func fn(): pass\n"
+"\n"
+"@rpc(\"any_peer\", \"unreliable_ordered\")\n"
+"func fn_update_pos(): pass\n"
+"\n"
+"@rpc(\"authority\", \"call_remote\", \"unreliable\", 0) # 等價於 @rpc\n"
+"func fn_default(): pass\n"
+"[/codeblock]"
+
+msgid ""
+"Make a script with static variables to not persist after all references are "
+"lost. If the script is loaded again the static variables will revert to their "
+"default values."
+msgstr ""
+"使具有靜態變數的腳本在所有引用丟失之後不會持久化。當該腳本再次載入時,這些靜態"
+"變數將恢復為預設值。"
+
+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 ""
+"將後續敘述標記為忽略指定的 [param warning] 警告。見[url=$DOCS_URL/tutorials/"
+"scripting/gdscript/warning_system.html]《GDScript 警告系統》[/url]。\n"
+"[codeblock]\n"
+"func test():\n"
+" print(\"你好\")\n"
+" return\n"
+" @warning_ignore(\"unreachable_code\")\n"
+" print(\"無法到達\")\n"
+"[/codeblock]"
+
+msgid "Global scope constants and functions."
+msgstr "全域範圍的常數和函式。"
+
+msgid ""
+"A list of global scope enumerated constants and built-in functions. This is "
+"all that resides in the globals, constants regarding error codes, keycodes, "
+"property hints, etc.\n"
+"Singletons are also documented here, since they can be accessed from "
+"anywhere.\n"
+"For the entries related to GDScript which can be accessed in any script see "
+"[@GDScript]."
+msgstr ""
+"全域範圍的列舉常數和內建函式的列表。這是所有駐留在全域的,關於錯誤程式碼、鍵"
+"碼、屬性提示等的常數。\n"
+"單例也被記錄在這裡,因為它們可以從任何地方被存取。\n"
+"對於可以在任何腳本中存取的與 GDScript 相關的條目,請參閱 [@GDScript]。"
+
+msgid "Random number generation"
+msgstr "亂數產生"
+
+msgid ""
+"Returns the absolute value of a [Variant] parameter [param x] (i.e. non-"
+"negative value). Supported types: [int], [float], [Vector2], [Vector2i], "
+"[Vector3], [Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"var a = abs(-1)\n"
+"# a is 1\n"
+"\n"
+"var b = abs(-1.2)\n"
+"# b is 1.2\n"
+"\n"
+"var c = abs(Vector2(-3.5, -4))\n"
+"# c is (3.5, 4)\n"
+"\n"
+"var d = abs(Vector2i(-5, -6))\n"
+"# d is (5, 6)\n"
+"\n"
+"var e = abs(Vector3(-7, 8.5, -3.8))\n"
+"# e is (7, 8.5, 3.8)\n"
+"\n"
+"var f = abs(Vector3i(-7, -8, -9))\n"
+"# f is (7, 8, 9)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method absf], [method absi], "
+"[method Vector2.abs], [method Vector2i.abs], [method Vector3.abs], [method "
+"Vector3i.abs], [method Vector4.abs], or [method Vector4i.abs]."
+msgstr ""
+"返回一個 [Variant] 型別參數 [param x] 的絕對值(即非負值)。支援的型別:"
+"[int]、[float]、[Vector2]、[Vector2i]、[Vector3]、[Vector3i]、[Vector4]、"
+"[Vector4i] 。\n"
+"[codeblock]\n"
+"var a = abs(-1)\n"
+"# a=1\n"
+"\n"
+"var b = abs(-1.2)\n"
+"# b=1.2\n"
+"\n"
+"var c = abs(Vector2(-3.5, -4))\n"
+"# c=(3.5, 4)\n"
+"\n"
+"var d = abs(Vector2i(-5, -6))\n"
+"# d=(5, 6)\n"
+"\n"
+"var e = abs(Vector3(-7, 8.5, -3.8))\n"
+"# e=(7, 8.5, 3.8)\n"
+"\n"
+"var f = abs(Vector3i(-7, -8, -9))\n"
+"# f=(7, 8, 9)\n"
+"[/codeblock]\n"
+"[b]注意:[/b]為了更好的型別安全,請使用 [method absf]、[method absi]、[method "
+"Vector2.abs]、[method Vector2i.abs]、[method Vector3.abs]、[method Vector3i."
+"abs]、[method Vector4.abs] 或 [method Vector4i.abs]。"
+
+msgid ""
+"Returns the absolute value of float parameter [param x] (i.e. positive "
+"value).\n"
+"[codeblock]\n"
+"# a is 1.2\n"
+"var a = absf(-1.2)\n"
+"[/codeblock]"
+msgstr ""
+"返回浮點參數 [param x] 的絕對值(即正值)。\n"
+"[codeblock]\n"
+"# a=1.2\n"
+"var a = absf(-1.2)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the absolute value of int parameter [param x] (i.e. positive value).\n"
+"[codeblock]\n"
+"# a is 1\n"
+"var a = absi(-1)\n"
+"[/codeblock]"
+msgstr ""
+"返回整數參數 [param x] 的絕對值(即正值)。\n"
+"[codeblock]\n"
+"# a=1\n"
+"var a = absi(-1)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the arc cosine of [param x] in radians. Use to get the angle of "
+"cosine [param x]. [param x] will be clamped between [code]-1.0[/code] and "
+"[code]1.0[/code] (inclusive), in order to prevent [method acos] from "
+"returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"# c is 0.523599 or 30 degrees if converted with rad_to_deg(c)\n"
+"var c = acos(0.866025)\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的反餘弦,單位為弧度。用來獲取餘弦 [param x] 的角度。[param x] "
+"會被鉗制在 [code]-1.0[/code] 和 [code]1.0[/code](包括)之間,因此 [method "
+"acos] 不會返回 [constant @GDScript.NAN]。\n"
+"[codeblock]\n"
+"# 如果用 rad_to_deg(c) 轉換,c為0.523599或30度\n"
+"var c = acos(0.866025)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) cosine of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's cosine "
+"in hyperbolic space if [param x] is larger or equal to 1. For values of "
+"[param x] lower than 1, it will return 0, in order to prevent [method acosh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = acosh(2) # Returns 1.31695789692482\n"
+"cosh(a) # Returns 2\n"
+"\n"
+"var b = acosh(-1) # Returns 0\n"
+"[/codeblock]"
+msgstr ""
+"返回參數 x 的雙曲弧(也稱為反餘弦),返回弧度值。使用它來獲取在雙曲空間中,如"
+"果參數 x 大於或等於 1 ,角的餘弦的角度。對於參數 x 小於 1 的值,將返回 0 ,以"
+"防止 [method acosh] 返回 [constant @GDScript.NAN] 。\n"
+"[codeblock]\n"
+"var a = acosh(2) # 返回 1.31695789692482\n"
+"cosh(a) # 返回 2\n"
+"\n"
+"var b = acosh(-1) # 返回 0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the difference between the two angles, in the range of [code][-PI, "
+"+PI][/code]. When [param from] and [param to] are opposite, returns [code]-"
+"PI[/code] if [param from] is smaller than [param to], or [code]PI[/code] "
+"otherwise."
+msgstr ""
+"返回兩個角度之間的差,範圍為 [code][-PI, +PI][/code] 。當 [param from] 和 "
+"[param to] 相反時,如果 [param from] 小於 [param to],則返回 [code]-PI[/"
+"code] ,否則返回 [code]PI[/code] 。"
+
+msgid ""
+"Returns the arc sine of [param x] in radians. Use to get the angle of sine "
+"[param x]. [param x] will be clamped between [code]-1.0[/code] and [code]1.0[/"
+"code] (inclusive), in order to prevent [method asin] from returning [constant "
+"@GDScript.NAN].\n"
+"[codeblock]\n"
+"# s is 0.523599 or 30 degrees if converted with rad_to_deg(s)\n"
+"var s = asin(0.5)\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的反正弦值,單位為弧度。用來獲取正弦 [param x] 的角度。[param "
+"x] 會被鉗制在 [code]-1.0[/code] 和 [code]1.0[/code](包括)之間,因此 [method "
+"asin] 不會返回 [constant @GDScript.NAN]。\n"
+"[codeblock]\n"
+"# 如果用 rad_to_deg(s) 轉換,s為0.523599或30度\n"
+"var s = asin(0.5)\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) sine of [param x], returning "
+"a value in radians. Use it to get the angle from an angle's sine in "
+"hyperbolic space.\n"
+"[codeblock]\n"
+"var a = asinh(0.9) # Returns 0.8088669356527824\n"
+"sinh(a) # Returns 0.9\n"
+"[/codeblock]"
+msgstr ""
+"返回參數 x 的雙曲弧(也稱為反正弦),返回弧度值。使用它來獲取在雙曲空間中,角"
+"的正弦角度。\n"
+"[codeblock]\n"
+"var a = asinh(0.9) # 返回 0.8088669356527824\n"
+"sinh(a) # 返回 0.9\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle "
+"of tangent [code]y/x[/code]. To compute the value, the method takes into "
+"account the sign of both arguments in order to determine the quadrant.\n"
+"Important note: The Y coordinate comes first, by convention.\n"
+"[codeblock]\n"
+"var a = atan2(0, -1) # a is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+"返回 [code]y/x[/code] 的反正切值,單位為弧度。用來獲得正切值為 [code]y/x[/"
+"code] 的角度。為了計算該值,該方法考慮了兩個參數的符號,以確定象限。\n"
+"重要提示:按照慣例,Y 座標在前。\n"
+"[codeblock]\n"
+"var a = atan2(0, -1) # a = 3.141593\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic arc (also called inverse) tangent of [param x], "
+"returning a value in radians. Use it to get the angle from an angle's tangent "
+"in hyperbolic space if [param x] is between -1 and 1 (non-inclusive).\n"
+"In mathematics, the inverse hyperbolic tangent is only defined for -1 < "
+"[param x] < 1 in the real set, so values equal or lower to -1 for [param x] "
+"return negative [constant @GDScript.INF] and values equal or higher than 1 "
+"return positive [constant @GDScript.INF] in order to prevent [method atanh] "
+"from returning [constant @GDScript.NAN].\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # Returns 1.47221948958322\n"
+"tanh(a) # Returns 0.9\n"
+"\n"
+"var b = atanh(-2) # Returns -inf\n"
+"tanh(b) # Returns -1\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的雙曲弧(也稱為反正切),以弧度為單位。如果 [param x] 在 -1 "
+"和 1 之間(不包括 -1 和 1 ),則使用它從雙曲空間中的角度的正切值獲取角度。\n"
+"在數學中,只有在實數集中,-1 < [param x] < 1 的情況下,雙曲反正切才有意義。因"
+"此,為了預防 [method atanh] 返回 [constant @GDScript.NAN] ,對於 [param x] 等"
+"於或小於 -1 的值,返回負的 [constant @GDScript.NAN] ;對於[param x]等於或大於 "
+"1 的值,返回正的 [constant @GDScript.INF] 。\n"
+"[codeblock]\n"
+"var a = atanh(0.9) # 返回 1.47221948958322\n"
+"tanh(a) # 返回 0.9\n"
+"\n"
+"var b = atanh(-2) # 返回 -inf\n"
+"tanh(b) # 返回 -1\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the derivative at the given [param t] on a one-dimensional "
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]Bézier curve[/url] "
+"defined by the given [param control_1], [param control_2], and [param end] "
+"points."
+msgstr ""
+"返回由給定的 [param control_1]、[param control_2] 和 [param end] 點定義的一維"
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]貝茲曲線[/url]上 [param "
+"t] 處的導數。"
+
+msgid ""
+"Returns the point at the given [param t] on a one-dimensional [url=https://en."
+"wikipedia.org/wiki/B%C3%A9zier_curve]Bézier curve[/url] defined by the given "
+"[param control_1], [param control_2], and [param end] points."
+msgstr ""
+"返回由給定的 [param control_1]、[param control_2] 和 [param end] 點定義的一維"
+"[url=https://en.wikipedia.org/wiki/B%C3%A9zier_curve]貝茲曲線[/url]上位於給定 "
+"[param t] 的點。"
+
+msgid ""
+"Decodes a byte array back to a [Variant] value, without decoding objects.\n"
+"[b]Note:[/b] If you need object deserialization, see [method "
+"bytes_to_var_with_objects]."
+msgstr ""
+"將位元組陣列解碼回 [Variant] 值,無法解碼物件。\n"
+"[b]注意:[/b]如果需要物件反序列化,請參見 [method bytes_to_var_with_objects]。"
+
+msgid ""
+"Decodes a byte array back to a [Variant] value. Decoding objects is allowed.\n"
+"[b]Warning:[/b] Deserialized object can contain code which gets executed. Do "
+"not use this option if the serialized object comes from untrusted sources to "
+"avoid potential security threats (remote code execution)."
+msgstr ""
+"將位元組陣列解碼回 [Variant] 值。允許解碼物件。\n"
+"[b]警告:[/b]反序列化的物件可能包含執行的程式碼。如果序列化物件的來源不受信"
+"任,則不要使用此選項,以避免潛在的安全威脅(遠端執行程式碼)。"
+
+msgid ""
+"Rounds [param x] upward (towards positive infinity), returning the smallest "
+"whole number that is not less than [param x].\n"
+"A type-safe version of [method ceil], returning a [float]."
+msgstr ""
+"向上四捨五入 [param x](朝正無窮大),返回不小於 [param x] 的最小整數。\n"
+"[method ceil] 的型別安全版本,返回一個 [float]。"
+
+msgid ""
+"Rounds [param x] upward (towards positive infinity), returning the smallest "
+"whole number that is not less than [param x].\n"
+"A type-safe version of [method ceil], returning an [int]."
+msgstr ""
+"向上四捨五入 [param x](朝正無窮大),返回不小於 [param x] 的最小整數。\n"
+"[method ceil] 的型別安全版本,返回一個 [int]。"
+
+msgid ""
+"Clamps the [param value], returning a [Variant] not less than [param min] and "
+"not more than [param max]. Any values that can be compared with the less than "
+"and greater than operators will work.\n"
+"[codeblock]\n"
+"var a = clamp(-10, -1, 5)\n"
+"# a is -1\n"
+"\n"
+"var b = clamp(8.1, 0.9, 5.5)\n"
+"# b is 5.5\n"
+"\n"
+"var c = clamp(Vector2(-3.5, -4), Vector2(-3.2, -2), Vector2(2, 6.5))\n"
+"# c is (-3.2, -2)\n"
+"\n"
+"var d = clamp(Vector2i(7, 8), Vector2i(-3, -2), Vector2i(2, 6))\n"
+"# d is (2, 6)\n"
+"\n"
+"var e = clamp(Vector3(-7, 8.5, -3.8), Vector3(-3, -2, 5.4), Vector3(-2, 6, "
+"-4.1))\n"
+"# e is (-3, -2, 5.4)\n"
+"\n"
+"var f = clamp(Vector3i(-7, -8, -9), Vector3i(-1, 2, 3), Vector3i(-4, -5, "
+"-6))\n"
+"# f is (-4, -5, -6)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method clampf], [method clampi], "
+"[method Vector2.clamp], [method Vector2i.clamp], [method Vector3.clamp], "
+"[method Vector3i.clamp], [method Vector4.clamp], [method Vector4i.clamp], or "
+"[method Color.clamp]."
+msgstr ""
+"鉗制 [param value],返回不小於 [param min] 且不大於 [param max] 的 [Variant]。"
+"可以使用任何能夠用小於和大於運算子進行比較的值。\n"
+"[codeblock]\n"
+"var a = clamp(-10, -1, 5)\n"
+"# a 是 -1\n"
+"\n"
+"var b = clamp(8.1, 0.9, 5.5)\n"
+"# b 是 5.5\n"
+"\n"
+"var c = clamp(Vector2(-3.5, -4), Vector2(-3.2, -2), Vector2(2, 6.5))\n"
+"# c 是 (-3.2, -2)\n"
+"\n"
+"var d = clamp(Vector2i(7, 8), Vector2i(-3, -2), Vector2i(2, 6))\n"
+"# d 是 (2, 6)\n"
+"\n"
+"var e = clamp(Vector3(-7, 8.5, -3.8), Vector3(-3, -2, 5.4), Vector3(-2, 6, "
+"-4.1))\n"
+"# e 是 (-3, -2, 5.4)\n"
+"\n"
+"var f = clamp(Vector3i(-7, -8, -9), Vector3i(-1, 2, 3), Vector3i(-4, -5, "
+"-6))\n"
+"# f 是 (-4, -5, -6)\n"
+"[/codeblock]\n"
+"[b]注意:[/b]為了更好的型別安全,請使用 [method clampf]、[method clampi]、"
+"[method Vector2.clamp]、[method Vector2i.clamp]、[method Vector3.clamp]、"
+"[method Vector3i.clamp ]、[method Vector4.clamp] 或 [method Vector4i.clamp]。"
+
+msgid ""
+"Clamps the [param value], returning a [float] not less than [param min] and "
+"not more than [param max].\n"
+"[codeblock]\n"
+"var speed = 42.1\n"
+"var a = clampf(speed, 1.0, 20.5) # a is 20.5\n"
+"\n"
+"speed = -10.0\n"
+"var b = clampf(speed, -1.0, 1.0) # b is -1.0\n"
+"[/codeblock]"
+msgstr ""
+"鉗制 [param value],返回不小於 [param min] 且不大於 [param max] 的 [float]。\n"
+"[codeblock]\n"
+"var speed = 42.1\n"
+"var a = clampf(speed, 1.0, 20.5) # a 是 20.5\n"
+"\n"
+"speed = -10.0\n"
+"var b = clampf(speed, -1.0, 1.0) # b 是 -1.0\n"
+"[/codeblock]"
+
+msgid ""
+"Clamps the [param value], returning an [int] not less than [param min] and "
+"not more than [param max].\n"
+"[codeblock]\n"
+"var speed = 42\n"
+"var a = clampi(speed, 1, 20) # a is 20\n"
+"\n"
+"speed = -10\n"
+"var b = clampi(speed, -1, 1) # b is -1\n"
+"[/codeblock]"
+msgstr ""
+"鉗制 [param value],返回不小於 [param min] 且不大於 [param max] 的 [int]。\n"
+"[codeblock]\n"
+"var speed = 42\n"
+"var a = clampi(speed, 1, 20) # a 是 20\n"
+"\n"
+"speed = -10\n"
+"var b = clampi(speed, -1, 1) # b 是 -1\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the cosine of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"cos(PI * 2) # Returns 1.0\n"
+"cos(PI) # Returns -1.0\n"
+"cos(deg_to_rad(90)) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"返回弧度角為 [param angle_rad] 的餘弦值。\n"
+"[codeblock]\n"
+"cos(PI * 2) # 返回 1.0\n"
+"cos(PI) # 返回 -1.0\n"
+"cos(deg_to_rad(90)) # 返回 0.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic cosine of [param x] in radians.\n"
+"[codeblock]\n"
+"print(cosh(1)) # Prints 1.543081\n"
+"[/codeblock]"
+msgstr ""
+"返回弧度角 [param x] 的雙曲餘弦值。\n"
+"[codeblock]\n"
+"print(cosh(1)) # 列印 1.543081\n"
+"[/codeblock]"
+
+msgid ""
+"Cubic interpolates between two values by the factor defined in [param weight] "
+"with [param pre] and [param post] values."
+msgstr ""
+"根據 [param weight] 中定義的因數以及 [param pre] 和 [param post] 值,在兩個值"
+"之間進行三次插值。"
+
+msgid ""
+"Cubic interpolates between two rotation values with shortest path by the "
+"factor defined in [param weight] with [param pre] and [param post] values. "
+"See also [method lerp_angle]."
+msgstr ""
+"根據 [param weight] 中定義的因數以及 [param pre] 和 [param post] 值,在具有最"
+"短路徑的兩個旋轉值之間三次插值 。另見 [method lerp_angle]。"
+
+msgid ""
+"Cubic interpolates between two values by the factor defined in [param weight] "
+"with [param pre] and [param post] values.\n"
+"It can perform smoother interpolation than [method cubic_interpolate] by the "
+"time values."
+msgstr ""
+"根據 [param weight] 中定義的因數以及 [param pre] 和 [param post] 值,在兩個值"
+"之間進行三次插值。\n"
+"它可以根據時間值執行比 [method cubic_interpolate] 更平滑的插值。"
+
+msgid "Converts from decibels to linear energy (audio)."
+msgstr "從分貝轉換為線性能量(音訊)。"
+
+msgid ""
+"Converts an angle expressed in degrees to radians.\n"
+"[codeblock]\n"
+"var r = deg_to_rad(180) # r is 3.141593\n"
+"[/codeblock]"
+msgstr ""
+"將角度值轉換為弧度值。\n"
+"[codeblock]\n"
+"var r = deg_to_rad(180) # r 是 3.141593\n"
+"[/codeblock]"
+
+msgid ""
+"Returns an \"eased\" value of [param x] based on an easing function defined "
+"with [param curve]. This easing function is based on an exponent. The [param "
+"curve] can be any floating-point number, with specific values leading to the "
+"following behaviors:\n"
+"[codeblock]\n"
+"- Lower than -1.0 (exclusive): Ease in-out\n"
+"- 1.0: Linear\n"
+"- Between -1.0 and 0.0 (exclusive): Ease out-in\n"
+"- 0.0: Constant\n"
+"- Between 0.0 to 1.0 (exclusive): Ease out\n"
+"- 1.0: Linear\n"
+"- Greater than 1.0 (exclusive): Ease in\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"ease_cheatsheet.png]ease() curve values cheatsheet[/url]\n"
+"See also [method smoothstep]. If you need to perform more advanced "
+"transitions, use [method Tween.interpolate_value]."
+msgstr ""
+"基於用 [param curve] 定義的緩動函式返回 [param x] 的“緩動後”的值。該緩動函式是"
+"基於指數的。[param curve] 可以是任意浮點數,具體數值會導致以下行為:\n"
+"[codeblock]\n"
+"- 低於 -1.0(開區間):緩入緩出\n"
+"- -1.0:線性\n"
+"- 在 -1.0 和 0.0 之間(開區間):緩出緩入\n"
+"- 0.0:恒定\n"
+"- 在 0.0 到 1.0 之間(開區間):緩出\n"
+"- 1.0:線性\n"
+"- 大於 1.0(開區間):緩入\n"
+"[/codeblock]\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.1/img/"
+"ease_cheatsheet.png]ease() 曲線值速查表[/url]\n"
+"另見 [method smoothstep]。如果你需要執行更高級的過渡,請使用 [method Tween."
+"interpolate_value]。"
+
+msgid ""
+"Returns a human-readable name for the given [enum Error] code.\n"
+"[codeblock]\n"
+"print(OK) # Prints 0\n"
+"print(error_string(OK)) # Prints OK\n"
+"print(error_string(ERR_BUSY)) # Prints Busy\n"
+"print(error_string(ERR_OUT_OF_MEMORY)) # Prints Out of memory\n"
+"[/codeblock]"
+msgstr ""
+"為給定的 [enum Error] 程式碼返回一個人類可讀的名稱。\n"
+"[codeblock]\n"
+"print(OK) # 輸出 0\n"
+"print(error_string(OK)) # 輸出 OK\n"
+"print(error_string(ERR_BUSY)) # 輸出 Busy\n"
+"print(error_string(ERR_OUT_OF_MEMORY)) # 輸出 Out of memory\n"
+"[/codeblock]"
+
+msgid ""
+"The natural exponential function. It raises the mathematical constant [i]e[/"
+"i] to the power of [param x] and returns it.\n"
+"[i]e[/i] has an approximate value of 2.71828, and can be obtained with "
+"[code]exp(1)[/code].\n"
+"For exponents to other bases use the method [method pow].\n"
+"[codeblock]\n"
+"var a = exp(2) # Approximately 7.39\n"
+"[/codeblock]"
+msgstr ""
+"自然指數函式。計算數學常數 [i]e[/i] 的 [param x] 次方並返回它。\n"
+"[i]e[/i] 的近似值為 2.71828,可以使用 [code]exp(1)[/code] 獲得。\n"
+"求其他底數的指數應使用 [method pow] 方法。\n"
+"[codeblock]\n"
+"var a = exp(2) # 大約是 7.39\n"
+"[/codeblock]"
+
+msgid ""
+"Rounds [param x] downward (towards negative infinity), returning the largest "
+"whole number that is not more than [param x].\n"
+"A type-safe version of [method floor], returning a [float]."
+msgstr ""
+"將 [param x] 向下四捨五入(向負無窮大),返回不超過 [param x] 的最大整數。\n"
+"一個型別安全的 [method floor] 版本,返回一個 [float]。"
+
+msgid ""
+"Rounds [param x] downward (towards negative infinity), returning the largest "
+"whole number that is not more than [param x].\n"
+"A type-safe version of [method floor], returning an [int].\n"
+"[b]Note:[/b] This function is [i]not[/i] the same as [code]int(x)[/code], "
+"which rounds towards 0."
+msgstr ""
+"將 [param x] 向下四捨五入(向負無窮大),返回不超過 [param x] 的最大整數。\n"
+"是 [method floor] 的型別安全版本,返回一個 [int]。\n"
+"[b]注意:[/b]這個函式與 [code]int(x)[/code] [i]不[/i] 一樣,後者是向 0 取整。"
+
+msgid ""
+"Returns the floating-point remainder of [param x] divided by [param y], "
+"keeping the sign of [param x].\n"
+"[codeblock]\n"
+"var remainder = fmod(7, 5.5) # remainder is 1.5\n"
+"[/codeblock]\n"
+"For the integer remainder operation, use the [code]%[/code] operator."
+msgstr ""
+"返回 [param x] 除以 [param y] 的浮點型餘數,符號與 [param x]一致。\n"
+"[codeblock]\n"
+"var remainder = fmod(7, 5.5) # remainder 是 1.5\n"
+"[/codeblock]\n"
+"對於整數取餘運算,請使用 [code]%[/code] 運算子。"
+
+msgid ""
+"Returns the floating-point modulus of [param x] divided by [param y], "
+"wrapping equally in positive and negative.\n"
+"[codeblock]\n"
+"print(\" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\")\n"
+"for i in 7:\n"
+" var x = i * 0.5 - 1.5\n"
+" print(\"%4.1f %4.1f | %4.1f\" % [x, fmod(x, 1.5), fposmod(x, "
+"1.5)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\n"
+"-1.5 -0.0 | 0.0\n"
+"-1.0 -1.0 | 0.5\n"
+"-0.5 -0.5 | 1.0\n"
+" 0.0 0.0 | 0.0\n"
+" 0.5 0.5 | 0.5\n"
+" 1.0 1.0 | 1.0\n"
+" 1.5 0.0 | 0.0\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 除以 [param y] 的浮點模數,正負軸均等包裹。\n"
+"[codeblock]\n"
+"print(\" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\")\n"
+"for i in 7:\n"
+" var x = i * 0.5 - 1.5\n"
+" print(\"%4.1f %4.1f | %4.1f\" % [x, fmod(x, 1.5), fposmod(x, "
+"1.5)])\n"
+"[/codeblock]\n"
+"輸出:\n"
+"[codeblock]\n"
+" (x) (fmod(x, 1.5)) (fposmod(x, 1.5))\n"
+"-1.5 -0.0 | 0.0\n"
+"-1.0 -1.0 | 0.5\n"
+"-0.5 -0.5 | 1.0\n"
+" 0.0 0.0 | 0.0\n"
+" 0.5 0.5 | 0.5\n"
+" 1.0 1.0 | 1.0\n"
+" 1.5 0.0 | 0.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the integer hash of the passed [param variable].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print(hash(\"a\")) # Prints 177670\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Print(GD.Hash(\"a\")); // Prints 177670\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回傳入的 [param variable] 的整數雜湊值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print(hash(\"a\")) # 輸出 177670\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Print(GD.Hash(\"a\")); // 輸出 177670\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the [Object] that corresponds to [param instance_id]. All Objects "
+"have a unique instance ID. See also [method Object.get_instance_id].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var foo = \"bar\"\n"
+"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # Prints bar\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" public string Foo { get; set; } = \"bar\";\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" ulong id = GetInstanceId();\n"
+" var inst = (MyNode)InstanceFromId(Id);\n"
+" GD.Print(inst.Foo); // Prints bar\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回 [param instance_id] 所對應的 [Object]。所有物件都有唯一的實例 ID。參見 "
+"[method Object.get_instance_id]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var foo = \"bar\"\n"
+"\n"
+"func _ready():\n"
+" var id = get_instance_id()\n"
+" var inst = instance_from_id(id)\n"
+" print(inst.foo) # 輸出 bar\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" public string Foo { get; set; } = \"bar\";\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" ulong id = GetInstanceId();\n"
+" var inst = (MyNode)InstanceFromId(Id);\n"
+" GD.Print(inst.Foo); // 輸出 bar\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns an interpolation or extrapolation factor considering the range "
+"specified in [param from] and [param to], and the interpolated value "
+"specified in [param weight]. The returned value will be between [code]0.0[/"
+"code] and [code]1.0[/code] if [param weight] is between [param from] and "
+"[param to] (inclusive). If [param weight] is located outside this range, then "
+"an extrapolation factor will be returned (return value lower than [code]0.0[/"
+"code] or greater than [code]1.0[/code]). Use [method clamp] on the result of "
+"[method inverse_lerp] if this is not desired.\n"
+"[codeblock]\n"
+"# The interpolation ratio in the `lerp()` call below is 0.75.\n"
+"var middle = lerp(20, 30, 0.75)\n"
+"# middle is now 27.5.\n"
+"\n"
+"# Now, we pretend to have forgotten the original ratio and want to get it "
+"back.\n"
+"var ratio = inverse_lerp(20, 30, 27.5)\n"
+"# ratio is now 0.75.\n"
+"[/codeblock]\n"
+"See also [method lerp], which performs the reverse of this operation, and "
+"[method remap] to map a continuous series of values to another."
+msgstr ""
+"返回插值或外推的因數。範圍用 [param from] 和 [param to]指定,插值後的值由 "
+"[param weight] 指定。如果 [param weight] 在 [param from] 和 [param to] 之間"
+"(包含),那麼返回的值在 [code]0.0[/code] 和 [code]1.0[/code] 之間。如果 "
+"[param weight] 在該範圍之外,則返回的是外推因數(返回值小於 [code]0.0[/code] "
+"或大於 [code]1.0[/code])。如果不希望這樣,請對 [method inverse_lerp] 的結果使"
+"用 [method clamp]。\n"
+"[codeblock]\n"
+"# 下面的 `lerp()` 呼叫時的插值比例是 0.75。\n"
+"var middle = lerp(20, 30, 0.75)\n"
+"# middle 現在是 27.5。\n"
+"\n"
+"# 現在,我們假裝忘記了原來的比例,想要找到是多少。\n"
+"var ratio = inverse_lerp(20, 30, 27.5)\n"
+"# ratio 現在是 0.75。\n"
+"[/codeblock]\n"
+"另見 [method lerp],它執行本操作的逆操作;以及 [method remap],將一系列連續的"
+"值對應到另一個值。"
+
+msgid ""
+"Returns [code]true[/code] if [param a] and [param b] are approximately equal "
+"to each other.\n"
+"Here, \"approximately equal\" means that [param a] and [param b] are within a "
+"small internal epsilon of each other, which scales with the magnitude of the "
+"numbers.\n"
+"Infinity values of the same sign are considered equal."
+msgstr ""
+"如果 [param a] 和 [param b] 彼此近似相等,則返回 [code]true[/code]。\n"
+"這裡,“近似相等”意味著 [param a] 和 [param b] 在彼此的一個小的內部 epsilon "
+"內,該 epsilon 與數位的大小成比例。\n"
+"相同符號的無窮大值被認為是相等的。"
+
+msgid ""
+"Returns whether [param x] is a finite value, i.e. it is not [constant "
+"@GDScript.NAN], positive infinity, or negative infinity."
+msgstr ""
+"返回 [param x] 是否為有限值,即不是 [constant @GDScript.NAN]、正無窮大或負無窮"
+"大。"
+
+msgid ""
+"Returns [code]true[/code] if [param x] is either positive infinity or "
+"negative infinity."
+msgstr "如果 [param x] 是正無窮大或負無窮大,則返回 [code]true[/code] 。"
+
+msgid ""
+"Returns [code]true[/code] if the Object that corresponds to [param id] is a "
+"valid object (e.g. has not been deleted from memory). All Objects have a "
+"unique instance ID."
+msgstr ""
+"如果與 [param id] 對應的 Object 是有效的物件(例如沒有從記憶體中刪除),則返"
+"回 [code]true[/code] 。所有物件都有唯一的實例 ID。"
+
+msgid ""
+"Returns [code]true[/code] if [param instance] is a valid Object (e.g. has not "
+"been deleted from memory)."
+msgstr ""
+"如果 [param instance] 是有效的 Object(例如,沒有從記憶體中刪除),則返回 "
+"[code]true[/code] 。"
+
+msgid ""
+"Returns [code]true[/code] if [param x] is a NaN (\"Not a Number\" or invalid) "
+"value."
+msgstr "如果 [param x] 是 NaN(“非數字”或無效)值,則返回 [code]true[/code] 。"
+
+msgid ""
+"Returns [code]true[/code], for value types, if [param a] and [param b] share "
+"the same value. Returns [code]true[/code], for reference types, if the "
+"references of [param a] and [param b] are the same.\n"
+"[codeblock]\n"
+"# Vector2 is a value type\n"
+"var vec2_a = Vector2(0, 0)\n"
+"var vec2_b = Vector2(0, 0)\n"
+"var vec2_c = Vector2(1, 1)\n"
+"is_same(vec2_a, vec2_a) # true\n"
+"is_same(vec2_a, vec2_b) # true\n"
+"is_same(vec2_a, vec2_c) # false\n"
+"\n"
+"# Array is a reference type\n"
+"var arr_a = []\n"
+"var arr_b = []\n"
+"is_same(arr_a, arr_a) # true\n"
+"is_same(arr_a, arr_b) # false\n"
+"[/codeblock]\n"
+"These are [Variant] value types: [code]null[/code], [bool], [int], [float], "
+"[String], [StringName], [Vector2], [Vector2i], [Vector3], [Vector3i], "
+"[Vector4], [Vector4i], [Rect2], [Rect2i], [Transform2D], [Transform3D], "
+"[Plane], [Quaternion], [AABB], [Basis], [Projection], [Color], [NodePath], "
+"[RID], [Callable] and [Signal].\n"
+"These are [Variant] reference types: [Object], [Dictionary], [Array], "
+"[PackedByteArray], [PackedInt32Array], [PackedInt64Array], "
+"[PackedFloat32Array], [PackedFloat64Array], [PackedStringArray], "
+"[PackedVector2Array], [PackedVector3Array] and [PackedColorArray]."
+msgstr ""
+"當 [param a] 和 [param b] 為數值型別時,如果他們相同,那麼返回 [code]true[/"
+"code]。當 [param a] 和 [param b] 為參考型別時,如果它們的引用物件相同,那麼返"
+"回 [code]true[/code]。\n"
+"[codeblock]\n"
+"# Vector2 是數值型別\n"
+"var vec2_a = Vector2(0, 0)\n"
+"var vec2_b = Vector2(0, 0)\n"
+"var vec2_c = Vector2(1, 1)\n"
+"is_same(vec2_a, vec2_a) # true\n"
+"is_same(vec2_a, vec2_b) # true\n"
+"is_same(vec2_a, vec2_c) # false\n"
+"\n"
+"# Array 是參考型別\n"
+"var arr_a = []\n"
+"var arr_b = []\n"
+"is_same(arr_a, arr_a) # true\n"
+"is_same(arr_a, arr_b) # false\n"
+"[/codeblock]\n"
+"[Variant] 數值型別有:[code]null[/code],[bool],[int],[float],[String],"
+"[StringName],[Vector2],[Vector2i],[Vector3],[Vector3i],[Vector4],"
+"[Vector4i],[Rect2],[Rect2i],[Transform2D],[Transform3D],[Plane],"
+"[Quaternion],[AABB],[Basis],[Projection],[Color],[NodePath],[RID],"
+"[Callable] 和 [Signal]。\n"
+"[Variant] 參考型別有:[Object],[Dictionary],[Array],[PackedByteArray],"
+"[PackedInt32Array],[PackedInt64Array],[PackedFloat32Array],"
+"[PackedFloat64Array],[PackedStringArray],[PackedVector2Array],"
+"[PackedVector3Array] 和 [PackedColorArray]。"
+
+msgid ""
+"Returns [code]true[/code] if [param x] is zero or almost zero. The comparison "
+"is done using a tolerance calculation with a small internal epsilon.\n"
+"This function is faster than using [method is_equal_approx] with one value as "
+"zero."
+msgstr ""
+"如果 [param x] 為零或幾乎為零,則返回 [code]true[/code]。比較是使用具有小內部 "
+"epsilon 的公差計算的。\n"
+"該函式比使用一個值為零的 [method is_equal_approx] 更快。"
+
+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 clamp] on the result of this function.\n"
+"Both [param from] and [param to] must be the same type. Supported types: "
+"[int], [float], [Vector2], [Vector3], [Vector4], [Color], [Quaternion], "
+"[Basis].\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]. See also [method remap] to map a continuous "
+"series of values to another.\n"
+"[b]Note:[/b] For better type safety, use [method lerpf], [method Vector2."
+"lerp], [method Vector3.lerp], [method Vector4.lerp], [method Color.lerp], "
+"[method Quaternion.slerp] or [method Basis.slerp]."
+msgstr ""
+"通過 [param weight] 中定義的因數在兩個值之間進行線性插值。要執行插值,[param "
+"weight] 應介於 [code]0.0[/code] 和 [code]1.0[/code] 之間(包含)。但是,超出此"
+"範圍的值也是允許的,並可用於執行[i]外推[/i]。如果不需要,請在該函式的結果上使"
+"用 [method clamp]。\n"
+"[param from] 和 [param to] 必須是同一型別。支援的型別:[int]、[float]、"
+"[Vector2]、[Vector3]、[Vector4]、[Color]、[Quaternion]、[Basis]。\n"
+"[codeblock]\n"
+"lerp(0, 4, 0.75) # 返回 3.0\n"
+"[/codeblock]\n"
+"另請參閱執行本操作的逆操作的 [method inverse_lerp]。要使用 [method lerp] 執行"
+"緩動插值,請將其與 [method ease] 或 [method smoothstep] 結合使用。另見 "
+"[method remap],可將一系列連續的值對應到另一個值。\n"
+"[b]注意:[/b]為了更好的型別安全,請使用 [method lerpf]、[method Vector2."
+"lerp]、[method Vector3.lerp]、[method Vector4.lerp]、[method Color.lerp]、"
+"[method Quaternion.slerp] 或 [method Basis.slerp]。"
+
+msgid ""
+"Linearly interpolates between two angles (in radians) by a [param weight] "
+"value between 0.0 and 1.0.\n"
+"Similar to [method lerp], but interpolates correctly when the angles wrap "
+"around [constant @GDScript.TAU]. To perform eased interpolation with [method "
+"lerp_angle], combine it with [method ease] or [method smoothstep].\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg_to_rad(0.0)\n"
+" var max_angle = deg_to_rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]\n"
+"[b]Note:[/b] This function lerps through the shortest path between [param "
+"from] and [param to]. However, when these two angles are approximately "
+"[code]PI + k * TAU[/code] apart for any integer [code]k[/code], it's not "
+"obvious which way they lerp due to floating-point precision errors. For "
+"example, [code]lerp_angle(0, PI, weight)[/code] lerps counter-clockwise, "
+"while [code]lerp_angle(0, PI + 5 * TAU, weight)[/code] lerps clockwise."
+msgstr ""
+"通過 0.0 和 1.0 之間的 [param weight] 值,在兩個角度(以弧度為單位)之間進行線"
+"性插值。\n"
+"類似於 [method lerp],但當角度環繞 [constant @GDScript.TAU] 時會正確插值。要使"
+"用 [method lerp_angle] 執行緩動插值,請將其與 [method ease] 或 [method "
+"smoothstep] 結合使用。\n"
+"[codeblock]\n"
+"extends Sprite\n"
+"var elapsed = 0.0\n"
+"func _process(delta):\n"
+" var min_angle = deg_to_rad(0.0)\n"
+" var max_angle = deg_to_rad(90.0)\n"
+" rotation = lerp_angle(min_angle, max_angle, elapsed)\n"
+" elapsed += delta\n"
+"[/codeblock]\n"
+"[b]注意:[/b]該函式通過 [param from] 和 [param to] 之間的最短路徑進行插值。然"
+"而,當這兩個角度相距大致 [code]PI + k * TAU[/code] 其中 [code]k[/code] 為任意"
+"整數時,由於浮點數精度誤差的緣故,要對插值的方向進行判斷是很難的。例如,"
+"[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"
+"lerpf(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"
+"lerpf(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 "
+"linear).\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"# \"Slider\" refers to a node that inherits Range such as HSlider or "
+"VSlider.\n"
+"# Its range must be configured to go from 0 to 1.\n"
+"# Change the bus name if you'd like to change the volume of a specific bus "
+"only.\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear_to_db($Slider.value))\n"
+"[/codeblock]"
+msgstr ""
+"從線性能量轉換為分貝(音訊)。這可用於實作按預期運作的音量滑桿(因為音量不是線"
+"性的)。\n"
+"[b]範例:[/b]\n"
+"[codeblock]\n"
+"# “Slider”引用的是 HSlider、VSlider 等繼承自 Range 的節點。\n"
+"# 必須將其範圍配置為 0 到 1。\n"
+"# 如果只想修改特定匯流排的音量,請修改匯流排名稱。\n"
+"AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), "
+"linear_to_db($Slider.value))\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the [url=https://en.wikipedia.org/wiki/Natural_logarithm]natural "
+"logarithm[/url] of [param x] (base [url=https://en.wikipedia.org/wiki/"
+"E_(mathematical_constant)][i]e[/i][/url], with [i]e[/i] being approximately "
+"2.71828). 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. To use base 10 logarithm, use "
+"[code]log(x) / log(10)[/code].\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] 的[url=https://zh.wikipedia.org/zh-cn/"
+"%E8%87%AA%E7%84%B6%E5%B0%8D%E6%95%B8]自然對數[/url](底數為 [url=https://zh."
+"wikipedia.org/zh-cn/E_(%E6%95%B0%E5%AD%A6%E5%B8%B8%E6%95%B0)][i]e[/i][/url],"
+"[i]e[/i] 約為 2.71828)。這是持續增長到一定程度所需的時間。\n"
+"[b]注意:[/b]這個函式與大多數計算器上的對數“log”函式不同,他們適用的底數是 "
+"10。要使用底數為 10 的對數,請使用 [code]log(x) / log(10)[/code]。\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"
+"[codeblock]\n"
+"max(1, 7, 3, -6, 5) # Returns 7\n"
+"[/codeblock]"
+msgstr ""
+"返回給定值的最大值。這個函式可以接受任意數量的參數。\n"
+"[codeblock]\n"
+"max(1, 7, 3, -6, 5) # 返回 7\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the maximum of two [float] values.\n"
+"[codeblock]\n"
+"maxf(3.6, 24) # Returns 24.0\n"
+"maxf(-3.99, -4) # Returns -3.99\n"
+"[/codeblock]"
+msgstr ""
+"返回兩個 [float] 值中的最大值。\n"
+"[codeblock]\n"
+"maxf(3.6, 24) # 返回 24.0\n"
+"maxf(-3.99, -4) # 返回 -3.99\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the maximum of two [int] values.\n"
+"[codeblock]\n"
+"maxi(1, 2) # Returns 2\n"
+"maxi(-3, -4) # Returns -3\n"
+"[/codeblock]"
+msgstr ""
+"返回兩個 [int] 值中的最大值。\n"
+"[codeblock]\n"
+"maxi(1, 2) # 返回 2\n"
+"maxi(-3, -4) # 返回 -3\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of the given numeric values. This function can take any "
+"number of arguments.\n"
+"[codeblock]\n"
+"min(1, 7, 3, -6, 5) # Returns -6\n"
+"[/codeblock]"
+msgstr ""
+"返回給定數值中的最小值。這個函式可以接受任意數量的參數。\n"
+"[codeblock]\n"
+"min(1, 7, 3, -6, 5) # 返回 -6\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of two [float] values.\n"
+"[codeblock]\n"
+"minf(3.6, 24) # Returns 3.6\n"
+"minf(-3.99, -4) # Returns -4.0\n"
+"[/codeblock]"
+msgstr ""
+"返回兩個 [float] 值中的最小值。\n"
+"[codeblock]\n"
+"minf(3.6, 24) # 返回 3.6\n"
+"minf(-3.99, -4) # 返回 -4.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum of two [int] values.\n"
+"[codeblock]\n"
+"mini(1, 2) # Returns 1\n"
+"mini(-3, -4) # Returns -4\n"
+"[/codeblock]"
+msgstr ""
+"返回兩個 [int] 值中的最小值。\n"
+"[codeblock]\n"
+"mini(1, 2) # 返回 1\n"
+"mini(-3, -4) # 返回 -4\n"
+"[/codeblock]"
+
+msgid ""
+"Moves [param from] toward [param to] by the [param delta] amount. Will not go "
+"past [param to].\n"
+"Use a negative [param delta] value to move away.\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Returns 9\n"
+"move_toward(10, 5, 4) # Returns 6\n"
+"move_toward(5, 10, 9) # Returns 10\n"
+"move_toward(10, 5, -1.5) # Returns 11.5\n"
+"[/codeblock]"
+msgstr ""
+"將 [param from] 向 [param to] 移動,移動的長度是 [param delta]。不會超過 "
+"[param to]。\n"
+"使用負的 [param delta] 值則向遠離的方向移動。\n"
+"[codeblock]\n"
+"move_toward(5, 10, 4) # Returns 9\n"
+"move_toward(10, 5, 4) # Returns 6\n"
+"move_toward(5, 10, 9) # Returns 10\n"
+"move_toward(10, 5, -1.5) # Returns 11.5\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the smallest integer power of 2 that is greater than or equal to "
+"[param value].\n"
+"[codeblock]\n"
+"nearest_po2(3) # Returns 4\n"
+"nearest_po2(4) # Returns 4\n"
+"nearest_po2(5) # Returns 8\n"
+"\n"
+"nearest_po2(0) # Returns 0 (this may not be expected)\n"
+"nearest_po2(-1) # Returns 0 (this may not be expected)\n"
+"[/codeblock]\n"
+"[b]Warning:[/b] Due to its implementation, this method returns [code]0[/code] "
+"rather than [code]1[/code] for values less than or equal to [code]0[/code], "
+"with an exception for [param value] being the smallest negative 64-bit "
+"integer ([code]-9223372036854775808[/code]) in which case the [param value] "
+"is returned unchanged."
+msgstr ""
+"返回大於等於整數 [param value] 的最小整數冪 2。\n"
+"[codeblock]\n"
+"nearest_po2(3) # 返回 4\n"
+"nearest_po2(4) # 返回 4\n"
+"nearest_po2(5) # 返回 8\n"
+"\n"
+"nearest_po2(0) # 返回 0(可能出乎意料)\n"
+"nearest_po2(-1) # 返回 0(可能出乎意料)\n"
+"[/codeblock]\n"
+"[b]警告:[/b]由於其實現,此方法返回[code]0[/code]而不是[code]1[/code]對於小於"
+"或等於的值[code]0[/code],但 [param value] 是最小的負 64 位整數除外 "
+"([code]-9223372036854775808[/code]),在這種情況下,返回 [param value] 不變。"
+
+msgid ""
+"Wraps [param value] between [code]0[/code] and the [param length]. If the "
+"limit is reached, the next value the function returns is decreased to the "
+"[code]0[/code] side or increased to the [param length] side (like a triangle "
+"wave). If [param length] is less than zero, it becomes positive.\n"
+"[codeblock]\n"
+"pingpong(-3.0, 3.0) # Returns 3.0\n"
+"pingpong(-2.0, 3.0) # Returns 2.0\n"
+"pingpong(-1.0, 3.0) # Returns 1.0\n"
+"pingpong(0.0, 3.0) # Returns 0.0\n"
+"pingpong(1.0, 3.0) # Returns 1.0\n"
+"pingpong(2.0, 3.0) # Returns 2.0\n"
+"pingpong(3.0, 3.0) # Returns 3.0\n"
+"pingpong(4.0, 3.0) # Returns 2.0\n"
+"pingpong(5.0, 3.0) # Returns 1.0\n"
+"pingpong(6.0, 3.0) # Returns 0.0\n"
+"[/codeblock]"
+msgstr ""
+"將 [param value] 包裹在 [code]0[/code] 和 [param length] 之間。如果達到限制,"
+"函式返回的下一個值將減少到 [code]0[/code] 側或增加到 [param length] 側(像三角"
+"波)。如果 [param length] 小於零,則變為正數。\n"
+"[codeblock]\n"
+"pingpong(-3.0, 3.0) # 返回 3.0\n"
+"pingpong(-2.0, 3.0) # 返回 2.0\n"
+"pingpong(-1.0, 3.0) # 返回 1.0\n"
+"pingpong(0.0, 3.0) # 返回 0.0\n"
+"pingpong(1.0, 3.0) # 返回 1.0\n"
+"pingpong(2.0, 3.0) # 返回 2.0\n"
+"pingpong(3.0, 3.0) # 返回 3.0\n"
+"pingpong(4.0, 3.0) # 返回 2.0\n"
+"pingpong(5.0, 3.0) # 返回 1.0\n"
+"pingpong(6.0, 3.0) # 返回 0.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the integer modulus of [param x] divided by [param y] that wraps "
+"equally in positive and negative.\n"
+"[codeblock]\n"
+"print(\"#(i) (i % 3) (posmod(i, 3))\")\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d | %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"Produces:\n"
+"[codeblock]\n"
+"(i) (i % 3) (posmod(i, 3))\n"
+"-3 0 | 0\n"
+"-2 -2 | 1\n"
+"-1 -1 | 2\n"
+" 0 0 | 0\n"
+" 1 1 | 1\n"
+" 2 2 | 2\n"
+" 3 0 | 0\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 除以 [param y] 的整數模數,對正負數進行一致的迴圈。\n"
+"[codeblock]\n"
+"print(\"#(i) (i % 3) (posmod(i, 3))\")\n"
+"for i in range(-3, 4):\n"
+" print(\"%2d %2d | %2d\" % [i, i % 3, posmod(i, 3)])\n"
+"[/codeblock]\n"
+"結果:\n"
+"[codeblock]\n"
+"(i) (i % 3) (posmod(i, 3))\n"
+"-3 0 | 0\n"
+"-2 -2 | 1\n"
+"-1 -1 | 2\n"
+" 0 0 | 0\n"
+" 1 1 | 1\n"
+" 2 2 | 2\n"
+" 3 0 | 0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the result of [param base] raised to the power of [param exp].\n"
+"In GDScript, this is the equivalent of the [code]**[/code] operator.\n"
+"[codeblock]\n"
+"pow(2, 5) # Returns 32.0\n"
+"pow(4, 1.5) # Returns 8.0\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param base] 的 [param exp] 次冪的結果。\n"
+"在 GDScript 中,這相當於 [code]**[/code] 運算子。\n"
+"[codeblock]\n"
+"pow(2, 5) # 返回 32.0\n"
+"pow(4, 1.5) # 返回 8.0\n"
+"[/codeblock]"
+
+msgid ""
+"Converts one or more arguments of any type to string in the best way possible "
+"and prints them to the console.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = [1, 2, 3]\n"
+"print(\"a\", \"b\", a) # Prints ab[1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Array { 1, 2, 3 };\n"
+"GD.Print(\"a\", \"b\", a); // Prints ab[1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] Consider using [method push_error] and [method push_warning] to "
+"print error and warning messages instead of [method print] or [method "
+"print_rich]. This distinguishes them from print messages used for debugging "
+"purposes, while also displaying a stack trace when an error or warning is "
+"printed."
+msgstr ""
+"以盡可能最佳的方式將一個或多個任意型別的參數轉換為字串,並將其列印到控制台。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = [1, 2, 3]\n"
+"print(\"a\", \"b\", a) # 輸出 ab[1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Array { 1, 2, 3 };\n"
+"GD.Print(\"a\", \"b\", a); // 輸出 ab[1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]請考慮使用 [method push_error] 和 [method push_warning] 來列印錯"
+"誤和警告消息,而不是 [method print] 或 [method print_rich]。這將它們與用於調試"
+"目的的列印消息區分開來,同時還會在列印錯誤或警告時顯示堆疊追蹤。"
+
+msgid ""
+"If verbose mode is enabled ([method OS.is_stdout_verbose] returning "
+"[code]true[/code]), converts one or more arguments of any type to string in "
+"the best way possible and prints them to the console."
+msgstr ""
+"如果啟用了詳細模式([method OS.is_stdout_verbose] 返回 [code]true[/code]),則"
+"盡可能以最佳方式將一個或多個任意型別的參數轉換為字串,並將它們列印到控制台。"
+
+msgid ""
+"Prints one or more arguments to strings in the best way possible to standard "
+"error line.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printerr(\"prints to stderr\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintErr(\"prints to stderr\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"以盡可能最佳的方式將一個或多個參數作為字串輸出到標準錯誤行。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printerr(\"prints to stderr\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintErr(\"prints to stderr\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to strings in the best way possible to the OS "
+"terminal. Unlike [method print], no newline is automatically added at the "
+"end.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"printraw(\"C\")\n"
+"# Prints ABC to terminal\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintRaw(\"A\");\n"
+"GD.PrintRaw(\"B\");\n"
+"GD.PrintRaw(\"C\");\n"
+"// Prints ABC to terminal\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"以盡可能最佳的方式將一個或多個參數作為字串輸出到 OS 終端。與 [method print] 不"
+"同的是,最後不會自動新增分行符號。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printraw(\"A\")\n"
+"printraw(\"B\")\n"
+"printraw(\"C\")\n"
+"# 輸出 ABC 到終端\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintRaw(\"A\");\n"
+"GD.PrintRaw(\"B\");\n"
+"GD.PrintRaw(\"C\");\n"
+"// 輸出 ABC 到終端\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to the console with a space between each "
+"argument.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"prints(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintS(\"A\", \"B\", \"C\"); // Prints A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"將一個或多個參數列印到控制台,每個參數之間有一個空格。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"prints(\"A\", \"B\", \"C\") # 輸出 A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintS(\"A\", \"B\", \"C\"); // 輸出 A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Prints one or more arguments to the console with a tab between each "
+"argument.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printt(\"A\", \"B\", \"C\") # Prints A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintT(\"A\", \"B\", \"C\"); // Prints A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"將一個或多個參數列印到控制台,每個參數之間有一個定位字元。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"printt(\"A\", \"B\", \"C\") # 輸出 A B C\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PrintT(\"A\", \"B\", \"C\"); // 輸出 A B C\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Pushes an error message to Godot's built-in debugger and to the OS terminal.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_error(\"test error\") # Prints \"test error\" to debugger and terminal "
+"as error call\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushError(\"test error\"); // Prints \"test error\" to debugger and "
+"terminal as error call\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] This function does not pause project execution. To print an "
+"error message and pause project execution in debug builds, use "
+"[code]assert(false, \"test error\")[/code] instead."
+msgstr ""
+"將錯誤消息推送到 Godot 的內建除錯器和 OS 終端。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_error(\"test error\") # 向除錯器和終端列印 “test error” 作為錯誤呼叫\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushError(\"test error\"); // 向除錯器和終端列印 “test error” 作為錯誤調"
+"用\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]該函式不會暫停專案執行。要在除錯版本中列印錯誤消息並暫停專案執"
+"行,請改用 [code]assert(false, \"test error\")[/code]。"
+
+msgid ""
+"Pushes a warning message to Godot's built-in debugger and to the OS "
+"terminal.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_warning(\"test warning\") # Prints \"test warning\" to debugger and "
+"terminal as warning call\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushWarning(\"test warning\"); // Prints \"test warning\" to debugger and "
+"terminal as warning call\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"將警告消息推送到 Godot 的內建除錯器和 OS 終端。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"push_warning(\"test warning\") # 以警告的形式向除錯器和終端輸出 “test "
+"warning”\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.PushWarning(\"test warning\"); // 以警告的形式向除錯器和終端輸出 “test "
+"warning”\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Converts an angle expressed in radians to degrees.\n"
+"[codeblock]\n"
+"rad_to_deg(0.523599) # Returns 30\n"
+"rad_to_deg(PI) # Returns 180\n"
+"rad_to_deg(PI * 2) # Returns 360\n"
+"[/codeblock]"
+msgstr ""
+"將以弧度表示的角度轉換為度。\n"
+"[codeblock]\n"
+"rad_to_deg(0.523599) # 返回 30\n"
+"rad_to_deg(PI) # 返回 180\n"
+"rad_to_deg(PI * 2) # 返回 360\n"
+"[/codeblock]"
+
+msgid ""
+"Given a [param seed], returns a [PackedInt64Array] of size [code]2[/code], "
+"where its first element is the randomized [int] value, and the second element "
+"is the same as [param seed]. Passing the same [param seed] consistently "
+"returns the same array.\n"
+"[b]Note:[/b] \"Seed\" here refers to the internal state of the pseudo random "
+"number generator, currently implemented as a 64 bit integer.\n"
+"[codeblock]\n"
+"var a = rand_from_seed(4)\n"
+"\n"
+"print(a[0])\t# Prints 2879024997\n"
+"print(a[1])\t# Prints 4\n"
+"[/codeblock]"
+msgstr ""
+"給定一個 [param seed],返回一個大小為 [code]2[/code] 的 [PackedInt64Array],其"
+"中第一個元素是隨機化的 [int] 值,第二個元素與 [param seed] 相同。傳入相同的 "
+"[param seed] 會一致地返回相同的陣列。\n"
+"[b]注意:[/b]這裡的“種子”是指偽亂數產生器的內部狀態,目前實作為一個 64 位整"
+"數。\n"
+"[codeblock]\n"
+"var a = rand_from_seed(4)\n"
+"\n"
+"print(a[0])\t# 輸出 2879024997\n"
+"print(a[1])\t# 輸出 4\n"
+"[/codeblock]"
+
+msgid ""
+"Returns a random floating point value between [code]0.0[/code] and [code]1.0[/"
+"code] (inclusive).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf() # Returns e.g. 0.375671\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randf(); // Returns e.g. 0.375671\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回 [code]0.0[/code] 和 [code]1.0[/code](包含)之間的隨機浮點值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf() # 返回範例 0.375671\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randf(); // 返回範例 0.375671\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a random floating point value between [param from] and [param to] "
+"(inclusive).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf_range(0, 20.5) # Returns e.g. 7.45315\n"
+"randf_range(-10, 10) # Returns e.g. -3.844535\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0.0, 20.5); // Returns e.g. 7.45315\n"
+"GD.RandRange(-10.0, 10.0); // Returns e.g. -3.844535\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回 [param from] 和 [param to](包含)之間的隨機浮點值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randf_range(0, 20.5) # 返回範例 7.45315\n"
+"randf_range(-10, 10) # 返回範例 -3.844535\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0.0, 20.5); // 返回範例 7.45315\n"
+"GD.RandRange(-10.0, 10.0); // 返回範例 -3.844535\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a normally-distributed pseudo-random floating point value using Box-"
+"Muller transform with the specified [param mean] and a standard [param "
+"deviation]. This is also called Gaussian distribution."
+msgstr ""
+"返回一個正態分佈的偽隨機浮點值,該分佈使用具有指定 [param mean] 和標準 [param "
+"deviation] 的 Box-Muller 變換。這也被稱為高斯分佈。"
+
+msgid ""
+"Returns a random unsigned 32-bit integer. Use remainder to obtain a random "
+"value in the interval [code][0, N - 1][/code] (where N is smaller than "
+"2^32).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi() # Returns random integer between 0 and 2^32 - 1\n"
+"randi() % 20 # Returns random integer between 0 and 19\n"
+"randi() % 100 # Returns random integer between 0 and 99\n"
+"randi() % 100 + 1 # Returns random integer between 1 and 100\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randi(); // Returns random integer between 0 and 2^32 - 1\n"
+"GD.Randi() % 20; // Returns random integer between 0 and 19\n"
+"GD.Randi() % 100; // Returns random integer between 0 and 99\n"
+"GD.Randi() % 100 + 1; // Returns random integer between 1 and 100\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回一個隨機的無符號 32 位元整數。使用餘數獲得區間 [code][0, N - 1][/code] "
+"(其中 N 小於 2^32)的隨機值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi() # 返回介於 0 到 2^32 - 1 之間的隨機整數\n"
+"randi() % 20 # 返回介於 0 到 19之間的隨機整數\n"
+"randi() % 100 # 返回介於 0 到 99 之間的隨機整數\n"
+"randi() % 100 + 1 # 返回介於 1 到 100 之間的隨機整數\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.Randi(); // 返回介於 0 到 2^32 - 1 之間的隨機整數\n"
+"GD.Randi() % 20; // 返回介於 0 到 19之間的隨機整數\n"
+"GD.Randi() % 100; // 返回介於 0 到 99 之間的隨機整數\n"
+"GD.Randi() % 100 + 1; // 返回介於 1 到 100 之間的隨機整數\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a random signed 32-bit integer between [param from] and [param to] "
+"(inclusive). If [param to] is lesser than [param from], they are swapped.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi_range(0, 1) # Returns either 0 or 1\n"
+"randi_range(-10, 1000) # Returns random integer between -10 and 1000\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0, 1); // Returns either 0 or 1\n"
+"GD.RandRange(-10, 1000); // Returns random integer between -10 and 1000\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回介於 [param from] 和 [param to](包含)之間的一個隨機有符號 32 位元整數。"
+"如果 [param to] 小於 [param from],則它們將被交換。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"randi_range(0, 1) # 返回 0 或 1\n"
+"randi_range(-10, 1000) # 返回介於 -10 和 1000 之間的隨機整數\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GD.RandRange(0, 1); // 返回 0 或 1\n"
+"GD.RandRange(-10, 1000); // 返回介於 -10 和 1000 之間的隨機整數\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Randomizes the seed (or the internal state) of the random number generator. "
+"The current implementation uses a number based on the device's time.\n"
+"[b]Note:[/b] This function is called automatically when the project is run. "
+"If you need to fix the seed to have consistent, reproducible results, use "
+"[method seed] to initialize the random number generator."
+msgstr ""
+"隨機化亂數產生器的種子(或內部狀態)。目前的實作使用一個基於裝置時間的數字。\n"
+"[b]注意:[/b]該函式在專案運作時自動被呼叫。如果需要修復種子以獲得一致、可重現"
+"的結果,請使用 [method seed] 來初始化亂數產生器。"
+
+msgid ""
+"Maps a [param value] from range [code][istart, istop][/code] to [code]"
+"[ostart, ostop][/code]. See also [method lerp] and [method inverse_lerp]. If "
+"[param value] is outside [code][istart, istop][/code], then the resulting "
+"value will also be outside [code][ostart, ostop][/code]. If this is not "
+"desired, use [method clamp] on the result of this function.\n"
+"[codeblock]\n"
+"remap(75, 0, 100, -1, 1) # Returns 0.5\n"
+"[/codeblock]\n"
+"For complex use cases where multiple ranges are needed, consider using "
+"[Curve] or [Gradient] instead."
+msgstr ""
+"將 [param value] 從範圍 [code][istart, istop][/code] 對應到 [code][ostart, "
+"ostop][/code]。另見 [method lerp] 和 [method inverse_lerp]。如果 [param "
+"value] 在 [code][istart, istop][/code] 之外,那麼結果值也將在 [code][ostart, "
+"ostop][/code] 之外。如果不希望這樣,請對該函式的結果使用 [method clamp]。\n"
+"[codeblock]\n"
+"remap(75, 0, 100, -1, 1) # 返回 0.5\n"
+"[/codeblock]\n"
+"對於需要多個範圍的複雜用例,請考慮改用 [Curve] 或 [Gradient]。"
+
+msgid ""
+"Allocates a unique ID which can be used by the implementation to construct a "
+"RID. This is used mainly from native extensions to implement servers."
+msgstr ""
+"分配一個唯一的 ID,可被實作用來建構一個 RID。這主要被本地擴充使用以實作服務"
+"器。"
+
+msgid ""
+"Creates a RID from a [param base]. This is used mainly from native extensions "
+"to build servers."
+msgstr "從 [param base] 建立一個 RID。這主要被本地擴充使用以建構伺服器。"
+
+msgid ""
+"Rotates [param from] toward [param to] by the [param delta] amount. Will not "
+"go past [param to].\n"
+"Similar to [method move_toward], but interpolates correctly when the angles "
+"wrap around [constant @GDScript.TAU].\n"
+"If [param delta] is negative, this function will rotate away from [param to], "
+"toward the opposite angle, and will not go past the opposite angle."
+msgstr ""
+"將 [param from] 向 [param to] 旋轉 [param delta] 量。不會超過 [param to]。\n"
+"與 [method move_toward] 類似,但當角環繞 [constant @GDScript.TAU] 時正確內"
+"插。\n"
+"如果 [param delta] 為負數,則此函式將從 [param to] 旋轉到相反的角度,並且不會"
+"超過相反的角度。"
+
+msgid ""
+"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
+"from 0.\n"
+"A type-safe version of [method round], returning a [float]."
+msgstr ""
+"將 [param x] 四捨五入到最接近的整數,中間情況遠離 0 四捨五入。\n"
+"[method round] 的型別安全版本,返回一個 [float]。"
+
+msgid ""
+"Rounds [param x] to the nearest whole number, with halfway cases rounded away "
+"from 0.\n"
+"A type-safe version of [method round], returning an [int]."
+msgstr ""
+"將 [param x] 四捨五入到最接近的整數,中間情況遠離 0 四捨五入。\n"
+"[method round] 的型別安全版本,返回一個 [int]。"
+
+msgid ""
+"Sets the seed for the random number generator to [param base]. Setting the "
+"seed manually can ensure consistent, repeatable results for most random "
+"functions.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var my_seed = \"Godot Rocks\".hash()\n"
+"seed(my_seed)\n"
+"var a = randf() + randi()\n"
+"seed(my_seed)\n"
+"var b = randf() + randi()\n"
+"# a and b are now identical\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ulong mySeed = (ulong)GD.Hash(\"Godot Rocks\");\n"
+"GD.Seed(mySeed);\n"
+"var a = GD.Randf() + GD.Randi();\n"
+"GD.Seed(mySeed);\n"
+"var b = GD.Randf() + GD.Randi();\n"
+"// a and b are now identical\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"將亂數產生器的種子設定為 [param base]。手動設定種子可以確保大多數隨機函式的結"
+"果一致、可重複。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var my_seed = \"Godot Rocks\".hash()\n"
+"seed(my_seed)\n"
+"var a = randf() + randi()\n"
+"seed(my_seed)\n"
+"var b = randf() + randi()\n"
+"# a 和 b 現在是一樣的\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"ulong mySeed = (ulong)GD.Hash(\"Godot Rocks\");\n"
+"GD.Seed(mySeed);\n"
+"var a = GD.Randf() + GD.Randi();\n"
+"GD.Seed(mySeed);\n"
+"var b = GD.Randf() + GD.Randi();\n"
+"// a 和 b 現在是一樣的\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the same type of [Variant] as [param x], with [code]-1[/code] for "
+"negative values, [code]1[/code] for positive values, and [code]0[/code] for "
+"zeros. For [code]nan[/code] values it returns 0.\n"
+"Supported types: [int], [float], [Vector2], [Vector2i], [Vector3], "
+"[Vector3i], [Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"sign(-6.0) # Returns -1\n"
+"sign(0.0) # Returns 0\n"
+"sign(6.0) # Returns 1\n"
+"sign(NAN) # Returns 0\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # Returns (-1, 0, 1)\n"
+"[/codeblock]\n"
+"[b]Note:[/b] For better type safety, use [method signf], [method signi], "
+"[method Vector2.sign], [method Vector2i.sign], [method Vector3.sign], [method "
+"Vector3i.sign], [method Vector4.sign], or [method Vector4i.sign]."
+msgstr ""
+"返回與 [param x] 相同型別的 [Variant],[code]-1[/code] 為負值,[code]1[/code] "
+"為正值,[code]0[/code] 為零值。支援的型別:[int]、[float]、[Vector2]、"
+"[Vector2i]、[Vector3]、[Vector3i]、[Vector4]、[Vector4i]。\n"
+"[codeblock]\n"
+"sign(-6.0) # 返回 -1\n"
+"sign(0.0) # 返回 0\n"
+"sign(6.0) # 返回 1\n"
+"\n"
+"sign(Vector3(-6.0, 0.0, 6.0)) # 返回 (-1, 0, 1)\n"
+"[/codeblock]\n"
+"[b]注意:[/b]為了更好的型別安全,請使用 [method signf]、[method signi]、"
+"[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. For "
+"[code]nan[/code] values of [param x] it returns 0.0.\n"
+"[codeblock]\n"
+"signf(-6.5) # Returns -1.0\n"
+"signf(0.0) # Returns 0.0\n"
+"signf(6.5) # Returns 1.0\n"
+"signf(NAN) # Returns 0.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"
+"signf(-6.5) # 返回 -1.0\n"
+"signf(0.0) # 返回 0.0\n"
+"signf(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"
+"signi(-6) # Returns -1\n"
+"signi(0) # Returns 0\n"
+"signi(6) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+"如果 [param x] 為負,則返回 [code]-1[/code];如果 [param x] 為正,則返回 "
+"[code]1[/code];如果 [param x] 為零,則返回 [code]0[/code]。\n"
+"[codeblock]\n"
+"signi(-6) # 返回 -1\n"
+"signi(0) # 返回 0\n"
+"signi(6) # 返回 1\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the sine of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"sin(0.523599) # Returns 0.5\n"
+"sin(deg_to_rad(90)) # Returns 1.0\n"
+"[/codeblock]"
+msgstr ""
+"返回弧度角 [param angle_rad] 的正弦值。\n"
+"[codeblock]\n"
+"sin(0.523599) # 返回 0.5\n"
+"sin(deg_to_rad(90)) # 返回 1.0\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic sine of [param x].\n"
+"[codeblock]\n"
+"var a = log(2.0) # Returns 0.693147\n"
+"sinh(a) # Returns 0.75\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的雙曲正弦值。\n"
+"[codeblock]\n"
+"var a = log(2.0) # 返回 0.693147\n"
+"sinh(a) # 返回 0.75\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the result of smoothly interpolating the value of [param x] between "
+"[code]0[/code] and [code]1[/code], based on the where [param x] lies with "
+"respect to the edges [param from] and [param to].\n"
+"The return value is [code]0[/code] if [code]x <= from[/code], and [code]1[/"
+"code] if [code]x >= to[/code]. If [param x] lies between [param from] and "
+"[param to], the returned value follows an S-shaped curve that maps [param x] "
+"between [code]0[/code] and [code]1[/code].\n"
+"This S-shaped curve is the cubic Hermite interpolator, given by [code]f(y) = "
+"3*y^2 - 2*y^3[/code] where [code]y = (x-from) / (to-from)[/code].\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # Returns 0.0\n"
+"smoothstep(0, 2, 0.5) # Returns 0.15625\n"
+"smoothstep(0, 2, 1.0) # Returns 0.5\n"
+"smoothstep(0, 2, 2.0) # Returns 1.0\n"
+"[/codeblock]\n"
+"Compared to [method ease] with a curve value of [code]-1.6521[/code], [method "
+"smoothstep] returns the smoothest possible curve with no sudden changes in "
+"the derivative. If you need to perform more advanced transitions, use [Tween] "
+"or [AnimationPlayer].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"smoothstep_ease_comparison.png]Comparison between smoothstep() and ease(x, "
+"-1.6521) return values[/url]"
+msgstr ""
+"返回 [param x] 在 [code]0[/code] 和 [code]1[/code] 之間平滑插值的結果,基於 "
+"[param x] 相對於邊 [param from] 和 [param to] 的位置。\n"
+"如果 [code]x <= from[/code],則返回值為 [code]0[/code];如果 [code]x >= to[/"
+"code],則返回值為 [code]1[/code]。如果 [param x] 位於 [param from] 和 [param "
+"to] 之間,則返回值遵循一條將 [param x] 對應到 [code]0[/code] 和 [code]1[/"
+"code] 之間的 S 形曲線。\n"
+"這條 S 形曲線是三次 Hermite 插值器,由 [code]f(y) = 3*y^2 - 2*y^3[/code] 給"
+"出,其中 [code]y = (x-from) / (to-from)[/code]。\n"
+"[codeblock]\n"
+"smoothstep(0, 2, -5.0) # 返回 0.0\n"
+"smoothstep(0, 2, 0.5) # 返回 0.15625\n"
+"smoothstep(0, 2, 1.0) # 返回 0.5\n"
+"smoothstep(0, 2, 2.0) # 返回 1.0\n"
+"[/codeblock]\n"
+"與曲線值為 [code]-1.6521[/code] 的 [method ease] 相比,[method smoothstep] 返"
+"回最平滑的曲線,導數沒有突然變化。如果需要執行更高級的過渡,請使用 [Tween] 或 "
+"[AnimationPlayer]。\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.1/img/"
+"smoothstep_ease_comparison.png]smoothstep() 與 ease(x, -1.6521) 返回值的比較[/"
+"url]"
+
+msgid ""
+"Returns the multiple of [param step] that is the closest to [param x]. This "
+"can also be used to round a floating point number to an arbitrary number of "
+"decimals.\n"
+"The returned value is the same type of [Variant] as [param step]. Supported "
+"types: [int], [float], [Vector2], [Vector2i], [Vector3], [Vector3i], "
+"[Vector4], [Vector4i].\n"
+"[codeblock]\n"
+"snapped(100, 32) # Returns 96\n"
+"snapped(3.14159, 0.01) # Returns 3.14\n"
+"\n"
+"snapped(Vector2(34, 70), Vector2(8, 8)) # Returns (32, 72)\n"
+"[/codeblock]\n"
+"See also [method ceil], [method floor], and [method round].\n"
+"[b]Note:[/b] For better type safety, use [method snappedf], [method "
+"snappedi], [method Vector2.snapped], [method Vector2i.snapped], [method "
+"Vector3.snapped], [method Vector3i.snapped], [method Vector4.snapped], or "
+"[method Vector4i.snapped]."
+msgstr ""
+"返回最接近 [param x] 的 [param step] 的倍數。這也可用於將一個浮點數四捨五入為"
+"任意小數位數。\n"
+"返回值是與 [param step] 相同型別的 [Variant]。支援的型別:[int]、[float]、"
+"[Vector2]、[Vector2i]、[Vector3]、[Vector3i]、[Vector4]、[Vector4i]。\n"
+"[codeblock]\n"
+"snapped(100, 32) # 返回 96\n"
+"snapped(3.14159, 0.01) # 返回 3.14\n"
+"\n"
+"snapped(Vector2(34, 70), Vector2(8, 8)) # 返回 (32, 72)\n"
+"[/codeblock]\n"
+"另見 [method ceil]、[method floor] 和 [method round]。\n"
+"[b]注意:[/b]為了更好的型別安全,請使用 [method snappedf]、[method snappedi]、"
+"[method Vector2.snapped]、[method Vector2i.snapped]、[method 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"
+"snappedf(32.0, 2.5) # Returns 32.5\n"
+"snappedf(3.14159, 0.01) # Returns 3.14\n"
+"[/codeblock]"
+msgstr ""
+"返回最接近 [param x] 的 [param step] 的倍數。也可用於將浮點數四捨五入為任意的"
+"小數位數。\n"
+"[method snapped] 的型別安全版本,返回一個 [float]。\n"
+"[codeblock]\n"
+"snappedf(32.0, 2.5) # 返回 32.5\n"
+"snappedf(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"
+"snappedi(53, 16) # Returns 48\n"
+"snappedi(4096, 100) # Returns 4100\n"
+"[/codeblock]"
+msgstr ""
+"返回最接近 [param x] 的 [param step] 的倍數。\n"
+"[method snapped] 的型別安全版本,返回一個 [int]。\n"
+"[codeblock]\n"
+"snappedi(53, 16) # 返回 48\n"
+"snappedi(4096, 100) # 返回 4100\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the square root of [param x], where [param x] is a non-negative "
+"number.\n"
+"[codeblock]\n"
+"sqrt(9) # Returns 3\n"
+"sqrt(10.24) # Returns 3.2\n"
+"sqrt(-1) # Returns NaN\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Negative values of [param x] return NaN (\"Not a Number\"). in "
+"C#, if you need negative inputs, use [code]System.Numerics.Complex[/code]."
+msgstr ""
+"返回 [param x] 的平方根,其中 [param x] 是一個非負數。\n"
+"[codeblock]\n"
+"sqrt(9) # 返回 3\n"
+"sqrt(10.24) # 返回 3.2\n"
+"sqrt(-1) # 返回 NaN\n"
+"[/codeblock]\n"
+"[b]注意:[/b]負數的 [param x] 會返回 NaN(“不是數字”)。在 C# 中,如果需要負輸"
+"入,請使用 [code]System.Numerics.Complex[/code]。"
+
+msgid ""
+"Returns the position of the first non-zero digit, after the decimal point. "
+"Note that the maximum return value is 10, which is a design decision in the "
+"implementation.\n"
+"[codeblock]\n"
+"var n = step_decimals(5) # n is 0\n"
+"n = step_decimals(1.0005) # n is 4\n"
+"n = step_decimals(0.000000005) # n is 9\n"
+"[/codeblock]"
+msgstr ""
+"返回小數點後第一個非零數字的位置。注意最大返回值是 10,這是實作中的設計決"
+"定。\n"
+"[codeblock]\n"
+"var n = step_decimals(5) # n 為 0\n"
+"n = step_decimals(1.0005) # n 為 4\n"
+"n = step_decimals(0.000000005) # n 為 9\n"
+"[/codeblock]"
+
+msgid ""
+"Converts one or more arguments of any [Variant] type to a [String] in the "
+"best way possible.\n"
+"[codeblock]\n"
+"var a = [10, 20, 30]\n"
+"var b = str(a)\n"
+"print(len(a)) # Prints 3 (the number of elements in the array).\n"
+"print(len(b)) # Prints 12 (the length of the string \"[10, 20, 30]\").\n"
+"[/codeblock]"
+msgstr ""
+"盡可能以最佳方式將一個或多個任何 [Variant] 型別的參數轉換為一個 [String]。\n"
+"[codeblock]\n"
+"var a = [10, 20, 30]\n"
+"var b = str(a)\n"
+"print(len(a)) # 輸出 3(陣列中元素的數量)。\n"
+"print(len(b)) # 輸出 12(字串“[10, 20, 30]”的長度)。\n"
+"[/codeblock]"
+
+msgid ""
+"Converts a formatted [param string] that was returned by [method var_to_str] "
+"to the original [Variant].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var data = '{ \"a\": 1, \"b\": 2 }' # data is a String\n"
+"var dict = str_to_var(data) # dict is a Dictionary\n"
+"print(dict[\"a\"]) # Prints 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"string data = \"{ \\\"a\\\": 1, \\\"b\\\": 2 }\"; // data is a "
+"string\n"
+"var dict = GD.StrToVar(data).AsGodotDictionary(); // dict is a Dictionary\n"
+"GD.Print(dict[\"a\"]); // Prints 1\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"將 [method var_to_str] 返回的已格式化的 [param string] 轉換為原始 "
+"[Variant]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var data = '{ \"a\": 1, \"b\": 2 }' # data 是一個 String\n"
+"var dict = str_to_var(data) # dict 是一個 Dictionary\n"
+"print(dict[\"a\"]) # 輸出 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"string data = \"{ \\\"a\\\": 1, \\\"b\\\": 2 }\"; // data 是一個 "
+"string\n"
+"var dict = GD.StrToVar(data).AsGodotDictionary(); // dict 是一個 Dictionary\n"
+"GD.Print(dict[\"a\"]); // 輸出 1\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the tangent of angle [param angle_rad] in radians.\n"
+"[codeblock]\n"
+"tan(deg_to_rad(45)) # Returns 1\n"
+"[/codeblock]"
+msgstr ""
+"返回弧度角 [param angle_rad] 的正切值。\n"
+"[codeblock]\n"
+"tan(deg_to_rad(45)) # 返回 1\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the hyperbolic tangent of [param x].\n"
+"[codeblock]\n"
+"var a = log(2.0) # Returns 0.693147\n"
+"tanh(a) # Returns 0.6\n"
+"[/codeblock]"
+msgstr ""
+"返回 [param x] 的雙曲正切值。\n"
+"[codeblock]\n"
+"var a = log(2.0) # 返回 0.693147\n"
+"tanh(a) # 返回 0.6\n"
+"[/codeblock]"
+
+msgid ""
+"Encodes a [Variant] value to a byte array, without encoding objects. "
+"Deserialization can be done with [method bytes_to_var].\n"
+"[b]Note:[/b] If you need object serialization, see [method "
+"var_to_bytes_with_objects]."
+msgstr ""
+"將 [Variant] 值編碼為位元組陣列,不編碼物件。反序列化可以使用 [method "
+"bytes_to_var] 來完成。\n"
+"[b]注意:[/b]如果需要物件序列化,參見 [method var_to_bytes_with_objects]。"
+
+msgid ""
+"Encodes a [Variant] value to a byte array. Encoding objects is allowed (and "
+"can potentially include executable code). Deserialization can be done with "
+"[method bytes_to_var_with_objects]."
+msgstr ""
+"將 [Variant] 值編碼為位元組陣列。允許對物件進行編碼(並且可能包括可執行程式"
+"碼)。反序列化可以使用 [method bytes_to_var_with_objects] 來完成。"
+
+msgid ""
+"Converts a [Variant] [param variable] to a formatted [String] that can then "
+"be parsed using [method str_to_var].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = { \"a\": 1, \"b\": 2 }\n"
+"print(var_to_str(a))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Dictionary { [\"a\"] = 1, [\"b\"] = 2 };\n"
+"GD.Print(GD.VarToStr(a));\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Prints:\n"
+"[codeblock]\n"
+"{\n"
+" \"a\": 1,\n"
+" \"b\": 2\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Converting [Signal] or [Callable] is not supported and will "
+"result in an empty value for these types, regardless of their data."
+msgstr ""
+"將 [Variant] [param variable] 轉換為格式化的 [String],後續可以使用 [method "
+"str_to_var] 對其進行解析。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var a = { \"a\": 1, \"b\": 2 }\n"
+"print(var_to_str(a))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var a = new Godot.Collections.Dictionary { [\"a\"] = 1, [\"b\"] = 2 };\n"
+"GD.Print(GD.VarToStr(a));\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"輸出:\n"
+"[codeblock]\n"
+"{\n"
+" \"a\": 1,\n"
+" \"b\": 2\n"
+"}\n"
+"[/codeblock]\n"
+"[b]注意:[/b]不支援轉換 [Signal] 和 [Callable],這些型別無論有什麼資料,轉換後"
+"都是空值。"
+
+msgid ""
+"Returns a weak reference to an object, or [code]null[/code] if [param obj] is "
+"invalid.\n"
+"A weak reference to an object is not enough to keep the object alive: when "
+"the only remaining references to a referent are weak references, garbage "
+"collection is free to destroy the referent and reuse its memory for something "
+"else. However, until the object is actually destroyed the weak reference may "
+"return the object even if there are no strong references to it."
+msgstr ""
+"返回對某個對象的弱引用,如果 [param obj] 無效,則返回 [code]null[/code]。\n"
+"對物件的弱引用不足以使對象保持存活:當對引用對象的剩餘引用都是弱引用時,垃圾回"
+"收可以自由銷毀該引用物件並將其記憶體重新用於其他用途。但是,在物件實際被銷毀之"
+"前,弱引用可能會返回該物件,即使不存在對它的強引用也是如此。"
+
+msgid ""
+"Wraps the [Variant] [param value] between [param min] and [param max]. Can be "
+"used for creating loop-alike behavior or infinite surfaces.\n"
+"Variant types [int] and [float] are supported. If any of the arguments is "
+"[float] this function returns a [float], otherwise it returns an [int].\n"
+"[codeblock]\n"
+"var a = wrap(4, 5, 10)\n"
+"# a is 9 (int)\n"
+"\n"
+"var a = wrap(7, 5, 10)\n"
+"# a is 7 (int)\n"
+"\n"
+"var a = wrap(10.5, 5, 10)\n"
+"# a is 5.5 (float)\n"
+"[/codeblock]"
+msgstr ""
+"在 [param min] 和 [param max] 之間包裹 [Variant] [param value]。可用於建立類似"
+"迴圈的行為或無限曲面。\n"
+"支援變體型別 [int] 和 [float]。如果任一參數是 [float],則該函式返回 [float],"
+"否則返回 [int]。\n"
+"[codeblock]\n"
+"var a = wrap(4, 5, 10)\n"
+"# a 為 9 (整數型別)\n"
+"\n"
+"var a = wrap(7, 5, 10)\n"
+"# a 為 7 (整數型別)\n"
+"\n"
+"var a = wrap(10.5, 5, 10)\n"
+"# a 為 5.5 (浮點型別)\n"
+"[/codeblock]"
+
+msgid ""
+"Wraps the integer [param value] between [param min] and [param max]. Can be "
+"used for creating loop-alike behavior or infinite surfaces.\n"
+"[codeblock]\n"
+"# Infinite loop between 5 and 9\n"
+"frame = wrapi(frame + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# result is -2\n"
+"var result = wrapi(-6, -5, -1)\n"
+"[/codeblock]"
+msgstr ""
+"在 [param min] 和 [param max] 之間環繞整數 [param value]。 可用於建立類似迴圈"
+"的行為或無限曲面。\n"
+"[codeblock]\n"
+"# 在 5 和 9 之間無限迴圈\n"
+"frame = wrapi(frame + 1, 5, 10)\n"
+"[/codeblock]\n"
+"[codeblock]\n"
+"# result 是 -2\n"
+"var result = wrapi(-6, -5, -1)\n"
+"[/codeblock]"
+
+msgid "The [AudioServer] singleton."
+msgstr "[AudioServer] 單例。"
+
+msgid "The [CameraServer] singleton."
+msgstr "[CameraServer] 單例。"
+
+msgid "The [ClassDB] singleton."
+msgstr "[ClassDB] 單例。"
+
+msgid "The [DisplayServer] singleton."
+msgstr "[DisplayServer] 單例。"
+
+msgid ""
+"The [EditorInterface] singleton.\n"
+"[b]Note:[/b] Only available in editor builds."
+msgstr ""
+"[JavaClassWrapper] 單例。\n"
+"[b]注意:[/b]僅在 Android 上實作。"
+
+msgid "The [Engine] singleton."
+msgstr "[Engine] 單例。"
+
+msgid "The [EngineDebugger] singleton."
+msgstr "[EngineDebugger] 單例。"
+
+msgid "The [GDExtensionManager] singleton."
+msgstr "[GDExtensionManager] 單例。"
+
+msgid "The [Geometry2D] singleton."
+msgstr "[Geometry2D] 單例。"
+
+msgid "The [Geometry3D] singleton."
+msgstr "[Geometry3D] 單例。"
+
+msgid "The [GodotSharp] singleton."
+msgstr "[GodotSharp] 單例。"
+
+msgid "The [IP] singleton."
+msgstr "[IP] 單例。"
+
+msgid "The [Input] singleton."
+msgstr "[Input] 單例。"
+
+msgid "The [InputMap] singleton."
+msgstr "[InputMap] 單例。"
+
+msgid ""
+"The [JavaClassWrapper] singleton.\n"
+"[b]Note:[/b] Only implemented on Android."
+msgstr ""
+"[JavaClassWrapper] 單例。\n"
+"[b]注意:[/b]僅在 Android 上實作。"
+
+msgid ""
+"The [JavaScriptBridge] singleton.\n"
+"[b]Note:[/b] Only implemented on the Web platform."
+msgstr ""
+"[JavaScriptBridge] 單例。\n"
+"[b]注意:[/b]僅在 Web 平臺上實作。"
+
+msgid "The [Marshalls] singleton."
+msgstr "[Marshalls] 單例。"
+
+msgid "The [NavigationMeshGenerator] singleton."
+msgstr "[NavigationMeshGenerator] 單例。"
+
+msgid "The [NavigationServer2D] singleton."
+msgstr "[NavigationServer2D] 單例。"
+
+msgid "The [NavigationServer3D] singleton."
+msgstr "[NavigationServer3D] 單例。"
+
+msgid "The [OS] singleton."
+msgstr "[OS] 單例。"
+
+msgid "The [Performance] singleton."
+msgstr "[Performance] 單例。"
+
+msgid "The [PhysicsServer2D] singleton."
+msgstr "[PhysicsServer2D] 單例。"
+
+msgid "The [PhysicsServer2DManager] singleton."
+msgstr "[PhysicsServer2DManager] 單例。"
+
+msgid "The [PhysicsServer3D] singleton."
+msgstr "[PhysicsServer3D] 單例。"
+
+msgid "The [PhysicsServer3DManager] singleton."
+msgstr "[PhysicsServer3DManager] 單例。"
+
+msgid "The [ProjectSettings] singleton."
+msgstr "[ProjectSettings] 單例。"
+
+msgid "The [RenderingServer] singleton."
+msgstr "[RenderingServer] 單例。"
+
+msgid "The [ResourceLoader] singleton."
+msgstr "[ResourceLoader] 單例。"
+
+msgid "The [ResourceSaver] singleton."
+msgstr "[ResourceSaver] 單例。"
+
+msgid "The [ResourceUID] singleton."
+msgstr "[ResourceUID] 單例。"
+
+msgid "The [TextServerManager] singleton."
+msgstr "[TextServerManager] 單例。"
+
+msgid "The [ThemeDB] singleton."
+msgstr "[ThemeDB] 單例。"
+
+msgid "The [Time] singleton."
+msgstr "[Time] 單例。"
+
+msgid "The [TranslationServer] singleton."
+msgstr "[TranslationServer] 單例。"
+
+msgid "The [WorkerThreadPool] singleton."
+msgstr "[WorkerThreadPool] 單例。"
+
+msgid "The [XRServer] singleton."
+msgstr "[XRServer] 單例。"
+
+msgid "Left side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr "左邊,常用於 [Control] 或 [StyleBox] 的衍生類。"
+
+msgid "Top side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr "頂邊,常用於 [Control] 或 [StyleBox] 的衍生類。"
+
+msgid "Right side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr "右邊,常用於 [Control] 或 [StyleBox] 的衍生類。"
+
+msgid "Bottom side, usually used for [Control] or [StyleBox]-derived classes."
+msgstr "底邊,常用於 [Control] 或 [StyleBox] 的衍生類。"
+
+msgid "Top-left corner."
+msgstr "左上角。"
+
+msgid "Top-right corner."
+msgstr "右上角。"
+
+msgid "Bottom-right corner."
+msgstr "右下角。"
+
+msgid "Bottom-left corner."
+msgstr "左下角。"
+
+msgid ""
+"General vertical alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr "通用垂直對齊,常用於 [Separator]、[ScrollBar]、[Slider] 等。"
+
+msgid ""
+"General horizontal alignment, usually used for [Separator], [ScrollBar], "
+"[Slider], etc."
+msgstr "通用水平對齊,常用於 [Separator]、[ScrollBar]、[Slider] 等。"
+
+msgid ""
+"Clockwise rotation. Used by some methods (e.g. [method Image.rotate_90])."
+msgstr "順時針旋轉。被一些方法使用(例如 [method Image.rotate_90])。"
+
+msgid ""
+"Counter-clockwise rotation. Used by some methods (e.g. [method Image."
+"rotate_90])."
+msgstr "逆時針旋轉。被一些方法使用(例如 [method Image.rotate_90])。"
+
+msgid "Horizontal left alignment, usually for text-derived classes."
+msgstr "水平左對齊,常用於文字衍生類。"
+
+msgid "Horizontal center alignment, usually for text-derived classes."
+msgstr "水平居中對齊,常用於文字衍生類。"
+
+msgid "Horizontal right alignment, usually for text-derived classes."
+msgstr "水平右對齊,常用於文字衍生類。"
+
+msgid "Expand row to fit width, usually for text-derived classes."
+msgstr "擴充行以適應寬度,常用於文字衍生類。"
+
+msgid "Vertical top alignment, usually for text-derived classes."
+msgstr "垂直上對齊,常用於文字衍生類。"
+
+msgid "Vertical center alignment, usually for text-derived classes."
+msgstr "垂直居中對齊,常用於文字衍生類。"
+
+msgid "Vertical bottom alignment, usually for text-derived classes."
+msgstr "垂直下對齊,常用於文字衍生類。"
+
+msgid "Expand rows to fit height, usually for text-derived classes."
+msgstr "擴充行以適應高度,通常用於文字衍生類。"
+
+msgid ""
+"Aligns the top of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"將行內物件(例如圖像、表格)的頂部與 [code]INLINE_ALIGNMENT_TO_*[/code] 常數指"
+"定的文字位置對齊。"
+
+msgid ""
+"Aligns the center of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"將行內物件(例如圖像、表格)的中心與 [code]INLINE_ALIGNMENT_TO_*[/code] 常數指"
+"定的文字位置對齊。"
+
+msgid ""
+"Aligns the baseline (user defined) of the inline object (e.g. image, table) "
+"to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] "
+"constant."
+msgstr ""
+"將行內物件(如圖像、表格)的基線(使用者定義)與[code]INLINE_ALIGNMENT_TO_*[/"
+"code] 常數指定的文字位置對齊。"
+
+msgid ""
+"Aligns the bottom of the inline object (e.g. image, table) to the position of "
+"the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant."
+msgstr ""
+"將行內物件(例如圖像、表格)的底部與 [code]INLINE_ALIGNMENT_TO_*[/code] 常數指"
+"定的文字位置對齊。"
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the top of the text."
+msgstr ""
+"將由 [code]INLINE_ALIGNMENT_*_TO[/code] 常數指定的行內物件(例如圖像、表格)的"
+"位置與文字頂部對齊。"
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the center of the text."
+msgstr ""
+"將由 [code]INLINE_ALIGNMENT_*_TO[/code] 常數指定的行內物件(例如圖像、表格)的"
+"位置與文字中心對齊。"
+
+msgid ""
+"Aligns the position of the inline object (e.g. image, table) specified by "
+"[code]INLINE_ALIGNMENT_*_TO[/code] constant to the baseline of the text."
+msgstr ""
+"將由 [code]INLINE_ALIGNMENT_*_TO[/code] 常數指定的行內物件(例如圖像、表格)的"
+"位置與文字基線對齊。"
+
+msgid "Aligns inline object (e.g. image, table) to the bottom of the text."
+msgstr "將行內物件(例如圖像、表格)與文字底部對齊。"
+
+msgid ""
+"Aligns top of the inline object (e.g. image, table) to the top of the text. "
+"Equivalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code]."
+msgstr ""
+"將行內物件(例如圖像、表格)的頂部與文字的頂部對齊。等效於 "
+"[code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code]。"
+
+msgid ""
+"Aligns center of the inline object (e.g. image, table) to the center of the "
+"text. Equivalent to [code]INLINE_ALIGNMENT_CENTER_TO | "
+"INLINE_ALIGNMENT_TO_CENTER[/code]."
+msgstr ""
+"將行內物件(例如圖像、表格)的中心與文字的中心對齊。相當於 "
+"[code]INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER[/code]。"
+
+msgid ""
+"Aligns bottom of the inline object (e.g. image, table) to the bottom of the "
+"text. Equivalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | "
+"INLINE_ALIGNMENT_TO_BOTTOM[/code]."
+msgstr ""
+"將行內物件(例如圖像、表格)的底部與文字底部對齊。等效於 "
+"[code]INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM[/code]。"
+
+msgid "A bit mask for [code]INLINE_ALIGNMENT_*_TO[/code] alignment constants."
+msgstr "用於 [code]INLINE_ALIGNMENT_*_TO[/code] 對齊常數的位元遮罩。"
+
+msgid "A bit mask for [code]INLINE_ALIGNMENT_TO_*[/code] alignment constants."
+msgstr "用於 [code]INLINE_ALIGNMENT_TO_*[/code] 對齊常數的位元遮罩。"
+
+msgid ""
+"Specifies that Euler angles should be in XYZ order. When composing, the order "
+"is X, Y, Z. When decomposing, the order is reversed, first Z, then Y, and X "
+"last."
+msgstr ""
+"指定歐拉角應按 XYZ 順序排列。組合時,順序為 X、Y、Z。分解時,順序相反,先 Z,"
+"再 Y,最後 X。"
+
+msgid ""
+"Specifies that Euler angles should be in XZY order. When composing, the order "
+"is X, Z, Y. When decomposing, the order is reversed, first Y, then Z, and X "
+"last."
+msgstr ""
+"指定歐拉角應按 XZY 順序排列。組合時,順序為 X、Z、Y。分解時,順序相反,先 Y,"
+"再 Z,最後 X。"
+
+msgid ""
+"Specifies that Euler angles should be in YXZ order. When composing, the order "
+"is Y, X, Z. When decomposing, the order is reversed, first Z, then X, and Y "
+"last."
+msgstr ""
+"指定歐拉角應按 YXZ 順序排列。組合時,順序為 Y、X、Z。分解時,順序相反,先 Z,"
+"再 X,最後 Y。"
+
+msgid ""
+"Specifies that Euler angles should be in YZX order. When composing, the order "
+"is Y, Z, X. When decomposing, the order is reversed, first X, then Z, and Y "
+"last."
+msgstr ""
+"指定歐拉角應按 YZX 順序排列。組合時,順序為 Y、Z、X。分解時,順序相反,先 X,"
+"再 Z,最後 Y。"
+
+msgid ""
+"Specifies that Euler angles should be in ZXY order. When composing, the order "
+"is Z, X, Y. When decomposing, the order is reversed, first Y, then X, and Z "
+"last."
+msgstr ""
+"指定歐拉角應按 ZXY 順序排列。組合時,順序為 Z、X、Y。分解時,順序相反,先 Y,"
+"再 X,最後 Z。"
+
+msgid ""
+"Specifies that Euler angles should be in ZYX order. When composing, the order "
+"is Z, Y, X. When decomposing, the order is reversed, first X, then Y, and Z "
+"last."
+msgstr ""
+"指定歐拉角應按 ZYX 順序排列。組合時,順序為 Z、Y、X。分解時,順序相反,先 X,"
+"再 Y,最後 Z。"
+
+msgid ""
+"Enum value which doesn't correspond to any key. This is used to initialize "
+"[enum Key] properties with a generic state."
+msgstr "與任何鍵都不對應的列舉值。這用於初始化具有通用狀態的 [enum Key] 屬性。"
+
+msgid "Keycodes with this bit applied are non-printable."
+msgstr "套用此位的鍵碼不可列印。"
+
+msgid "Escape key."
+msgstr "ESC 鍵。"
+
+msgid "Tab key."
+msgstr "Tab 鍵。"
+
+msgid "Shift + Tab key."
+msgstr "Shift + Tab 鍵。"
+
+msgid "Backspace key."
+msgstr "倒退鍵。"
+
+msgid "Return key (on the main keyboard)."
+msgstr "確認鍵(位於主鍵盤)。"
+
+msgid "Enter key on the numeric keypad."
+msgstr "小鍵盤區的確認鍵。"
+
+msgid "Insert key."
+msgstr "Insert 鍵。"
+
+msgid "Delete key."
+msgstr "Delete 鍵。"
+
+msgid "Pause key."
+msgstr "Pause 鍵。"
+
+msgid "Print Screen key."
+msgstr "Print Screen 鍵。"
+
+msgid "System Request key."
+msgstr "System Request 鍵。"
+
+msgid "Clear key."
+msgstr "Clear 鍵。"
+
+msgid "Home key."
+msgstr "Home 鍵。"
+
+msgid "End key."
+msgstr "End 鍵。"
+
+msgid "Left arrow key."
+msgstr "左方向鍵。"
+
+msgid "Up arrow key."
+msgstr "上方向鍵。"
+
+msgid "Right arrow key."
+msgstr "右方向鍵。"
+
+msgid "Down arrow key."
+msgstr "下方向鍵。"
+
+msgid "Page Up key."
+msgstr "Page Up 鍵。"
+
+msgid "Page Down key."
+msgstr "Page Down 鍵。"
+
+msgid "Shift key."
+msgstr "Shift 鍵。"
+
+msgid "Control key."
+msgstr "Control 鍵。"
+
+msgid "Meta key."
+msgstr "Meta 鍵。"
+
+msgid "Alt key."
+msgstr "Alt 鍵。"
+
+msgid "Caps Lock key."
+msgstr "Caps Lock 鍵。"
+
+msgid "Num Lock key."
+msgstr "Num Lock 鍵。"
+
+msgid "Scroll Lock key."
+msgstr "Scroll Lock 鍵。"
+
+msgid "F1 key."
+msgstr "F1 鍵。"
+
+msgid "F2 key."
+msgstr "F2 鍵。"
+
+msgid "F3 key."
+msgstr "F3 鍵。"
+
+msgid "F4 key."
+msgstr "F4 鍵。"
+
+msgid "F5 key."
+msgstr "F5 鍵。"
+
+msgid "F6 key."
+msgstr "F6 鍵。"
+
+msgid "F7 key."
+msgstr "F7 鍵。"
+
+msgid "F8 key."
+msgstr "F8 鍵。"
+
+msgid "F9 key."
+msgstr "F9 鍵。"
+
+msgid "F10 key."
+msgstr "F10 鍵。"
+
+msgid "F11 key."
+msgstr "F11 鍵。"
+
+msgid "F12 key."
+msgstr "F12 鍵。"
+
+msgid "F13 key."
+msgstr "F13 鍵。"
+
+msgid "F14 key."
+msgstr "F14 鍵。"
+
+msgid "F15 key."
+msgstr "F15 鍵。"
+
+msgid "F16 key."
+msgstr "F16 鍵。"
+
+msgid "F17 key."
+msgstr "F17 鍵。"
+
+msgid "F18 key."
+msgstr "F18 鍵。"
+
+msgid "F19 key."
+msgstr "F19 鍵。"
+
+msgid "F20 key."
+msgstr "F20 鍵。"
+
+msgid "F21 key."
+msgstr "F21 鍵。"
+
+msgid "F22 key."
+msgstr "F22 鍵。"
+
+msgid "F23 key."
+msgstr "F23 鍵。"
+
+msgid "F24 key."
+msgstr "F24 鍵。"
+
+msgid "F25 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F25 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F26 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F26 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F27 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F27 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F28 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F28 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F29 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F29 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F30 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F30 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F31 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F31 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F32 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F32 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F33 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F33 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F34 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F34 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "F35 key. Only supported on macOS and Linux due to a Windows limitation."
+msgstr "F35 鍵。由於 Windows 限制,僅支援 macOS 和 Linux。"
+
+msgid "Multiply (*) key on the numeric keypad."
+msgstr "小鍵盤的星鍵/乘以鍵(*)。"
+
+msgid "Divide (/) key on the numeric keypad."
+msgstr "小鍵盤的除以鍵(/)。"
+
+msgid "Subtract (-) key on the numeric keypad."
+msgstr "小鍵盤的減號鍵(-)。"
+
+msgid "Period (.) key on the numeric keypad."
+msgstr "小鍵盤的點鍵(.)。"
+
+msgid "Add (+) key on the numeric keypad."
+msgstr "小鍵盤的加號鍵(+)。"
+
+msgid "Number 0 on the numeric keypad."
+msgstr "小鍵盤的數位 0。"
+
+msgid "Number 1 on the numeric keypad."
+msgstr "小鍵盤的數位 1。"
+
+msgid "Number 2 on the numeric keypad."
+msgstr "小鍵盤的數位 2。"
+
+msgid "Number 3 on the numeric keypad."
+msgstr "小鍵盤的數位 3。"
+
+msgid "Number 4 on the numeric keypad."
+msgstr "小鍵盤的數位 4。"
+
+msgid "Number 5 on the numeric keypad."
+msgstr "小鍵盤的數位 5。"
+
+msgid "Number 6 on the numeric keypad."
+msgstr "小鍵盤的數位 6。"
+
+msgid "Number 7 on the numeric keypad."
+msgstr "小鍵盤的數位 7。"
+
+msgid "Number 8 on the numeric keypad."
+msgstr "小鍵盤的數位 8。"
+
+msgid "Number 9 on the numeric keypad."
+msgstr "小鍵盤的數位 9。"
+
+msgid "Context menu key."
+msgstr "本文選單鍵。"
+
+msgid "Hyper key. (On Linux/X11 only)."
+msgstr "超級鍵。(僅在 Linux/X11 上)。"
+
+msgid "Help key."
+msgstr "Help 鍵。"
+
+msgid ""
+"Media back key. Not to be confused with the Back button on an Android device."
+msgstr "媒體返回鍵。不要與 Android 裝置上的返回鍵相混淆。"
+
+msgid "Media forward key."
+msgstr "媒體前進鍵。"
+
+msgid "Media stop key."
+msgstr "媒體停止播放鍵。"
+
+msgid "Media refresh key."
+msgstr "媒體更新鍵。"
+
+msgid "Volume down key."
+msgstr "音量降低鍵。"
+
+msgid "Mute volume key."
+msgstr "靜音鍵。"
+
+msgid "Volume up key."
+msgstr "音量升高鍵。"
+
+msgid "Media play key."
+msgstr "媒體播放鍵。"
+
+msgid "Previous song key."
+msgstr "上一首歌鍵。"
+
+msgid "Next song key."
+msgstr "下一首歌鍵。"
+
+msgid "Media record key."
+msgstr "媒體錄製鍵。"
+
+msgid "Home page key."
+msgstr "主頁鍵。"
+
+msgid "Favorites key."
+msgstr "收藏鍵。"
+
+msgid "Search key."
+msgstr "搜索鍵。"
+
+msgid "Standby key."
+msgstr "Standby 鍵。"
+
+msgid "Open URL / Launch Browser key."
+msgstr "打開 URL / 啟動流覽器鍵。"
+
+msgid "Launch Mail key."
+msgstr "啟動郵箱鍵。"
+
+msgid "Launch Media key."
+msgstr "啟動多媒體鍵。"
+
+msgid "Launch Shortcut 0 key."
+msgstr "快捷啟動鍵 0。"
+
+msgid "Launch Shortcut 1 key."
+msgstr "快捷啟動鍵 1。"
+
+msgid "Launch Shortcut 2 key."
+msgstr "快捷啟動鍵 2。"
+
+msgid "Launch Shortcut 3 key."
+msgstr "快捷啟動鍵 3。"
+
+msgid "Launch Shortcut 4 key."
+msgstr "快捷啟動鍵 4。"
+
+msgid "Launch Shortcut 5 key."
+msgstr "快捷啟動鍵 5。"
+
+msgid "Launch Shortcut 6 key."
+msgstr "快捷啟動鍵 6。"
+
+msgid "Launch Shortcut 7 key."
+msgstr "快捷啟動鍵 7。"
+
+msgid "Launch Shortcut 8 key."
+msgstr "快捷啟動鍵 8。"
+
+msgid "Launch Shortcut 9 key."
+msgstr "快捷啟動鍵 9。"
+
+msgid "Launch Shortcut A key."
+msgstr "快捷啟動鍵 A。"
+
+msgid "Launch Shortcut B key."
+msgstr "快捷啟動鍵 B。"
+
+msgid "Launch Shortcut C key."
+msgstr "快捷啟動鍵 C。"
+
+msgid "Launch Shortcut D key."
+msgstr "快捷啟動鍵 D。"
+
+msgid "Launch Shortcut E key."
+msgstr "快捷啟動鍵 E。"
+
+msgid "Launch Shortcut F key."
+msgstr "快捷啟動鍵 F。"
+
+msgid "\"Globe\" key on Mac / iPad keyboard."
+msgstr "Mac / iPad 鍵盤上的“地球”鍵。"
+
+msgid "\"On-screen keyboard\" key on iPad keyboard."
+msgstr "iPad 鍵盤上的“螢幕鍵盤”鍵。"
+
+msgid "英数 key on Mac keyboard."
+msgstr "Mac 鍵盤上的英數鍵。"
+
+msgid "かな key on Mac keyboard."
+msgstr "Mac 鍵盤上的“かな”鍵。"
+
+msgid "Unknown key."
+msgstr "未知鍵。"
+
+msgid "Space key."
+msgstr "空白鍵。"
+
+msgid "! key."
+msgstr "! 鍵。"
+
+msgid "\" key."
+msgstr "\" 鍵。"
+
+msgid "# key."
+msgstr "# 鍵。"
+
+msgid "$ key."
+msgstr "$ 鍵。"
+
+msgid "% key."
+msgstr "% 鍵。"
+
+msgid "& key."
+msgstr "& 鍵。"
+
+msgid "' key."
+msgstr "' 鍵。"
+
+msgid "( key."
+msgstr "( 鍵。"
+
+msgid ") key."
+msgstr ") 鍵。"
+
+msgid "* key."
+msgstr "* 鍵。"
+
+msgid "+ key."
+msgstr "+ 鍵。"
+
+msgid ", key."
+msgstr ", 鍵。"
+
+msgid "- key."
+msgstr "- 鍵。"
+
+msgid ". key."
+msgstr ". 鍵。"
+
+msgid "/ key."
+msgstr "/ 鍵。"
+
+msgid "Number 0 key."
+msgstr "數字 0 鍵。"
+
+msgid "Number 1 key."
+msgstr "數字 1 鍵。"
+
+msgid "Number 2 key."
+msgstr "數字 2 鍵。"
+
+msgid "Number 3 key."
+msgstr "數字 3 鍵。"
+
+msgid "Number 4 key."
+msgstr "數字 4 鍵。"
+
+msgid "Number 5 key."
+msgstr "數字 5 鍵。"
+
+msgid "Number 6 key."
+msgstr "數字 6 鍵。"
+
+msgid "Number 7 key."
+msgstr "數字 7 鍵。"
+
+msgid "Number 8 key."
+msgstr "數字 8 鍵。"
+
+msgid "Number 9 key."
+msgstr "數字 9 鍵。"
+
+msgid ": key."
+msgstr ": 鍵。"
+
+msgid "; key."
+msgstr "; 鍵。"
+
+msgid "< key."
+msgstr "< 鍵。"
+
+msgid "= key."
+msgstr "= 鍵。"
+
+msgid "> key."
+msgstr "> 鍵。"
+
+msgid "? key."
+msgstr "? 鍵。"
+
+msgid "@ key."
+msgstr "@ 鍵。"
+
+msgid "A key."
+msgstr "A 鍵。"
+
+msgid "B key."
+msgstr "B 鍵。"
+
+msgid "C key."
+msgstr "C 鍵。"
+
+msgid "D key."
+msgstr "D 鍵。"
+
+msgid "E key."
+msgstr "E 鍵。"
+
+msgid "F key."
+msgstr "F 鍵。"
+
+msgid "G key."
+msgstr "G 鍵。"
+
+msgid "H key."
+msgstr "H 鍵。"
+
+msgid "I key."
+msgstr "I 鍵。"
+
+msgid "J key."
+msgstr "J 鍵。"
+
+msgid "K key."
+msgstr "K 鍵。"
+
+msgid "L key."
+msgstr "L 鍵。"
+
+msgid "M key."
+msgstr "M 鍵。"
+
+msgid "N key."
+msgstr "N 鍵。"
+
+msgid "O key."
+msgstr "O 鍵。"
+
+msgid "P key."
+msgstr "P 鍵。"
+
+msgid "Q key."
+msgstr "Q 鍵。"
+
+msgid "R key."
+msgstr "R 鍵。"
+
+msgid "S key."
+msgstr "S 鍵。"
+
+msgid "T key."
+msgstr "T 鍵。"
+
+msgid "U key."
+msgstr "U 鍵。"
+
+msgid "V key."
+msgstr "V 鍵。"
+
+msgid "W key."
+msgstr "W 鍵。"
+
+msgid "X key."
+msgstr "X 鍵。"
+
+msgid "Y key."
+msgstr "Y 鍵。"
+
+msgid "Z key."
+msgstr "Z 鍵。"
+
+msgid "[ key."
+msgstr "[ 鍵。"
+
+msgid "\\ key."
+msgstr "\\ 鍵。"
+
+msgid "] key."
+msgstr "] 鍵。"
+
+msgid "^ key."
+msgstr "^ 鍵。"
+
+msgid "_ key."
+msgstr "_ 鍵。"
+
+msgid "` key."
+msgstr "` 鍵。"
+
+msgid "{ key."
+msgstr "{ 鍵。"
+
+msgid "| key."
+msgstr "| 鍵。"
+
+msgid "} key."
+msgstr "} 鍵。"
+
+msgid "~ key."
+msgstr "~ 鍵。"
+
+msgid "¥ key."
+msgstr "¥ 鍵。"
+
+msgid "§ key."
+msgstr "§ 鍵。"
+
+msgid "Key Code mask."
+msgstr "鍵碼遮罩。"
+
+msgid "Modifier key mask."
+msgstr "修飾鍵遮罩。"
+
+msgid ""
+"Automatically remapped to [constant KEY_META] on macOS and [constant "
+"KEY_CTRL] on other platforms, this mask is never set in the actual events, "
+"and should be used for key mapping only."
+msgstr ""
+"自動重對應為 macOS 上的 [constant KEY_META] 和其他平臺上的 [constant "
+"KEY_CTRL],此遮罩在實際事件中從不設定,應僅用於鍵對應。"
+
+msgid "Shift key mask."
+msgstr "Shift 鍵遮罩。"
+
+msgid "Alt or Option (on macOS) key mask."
+msgstr "Alt 或 Option(在 macOS 上)鍵遮罩。"
+
+msgid "Command (on macOS) or Meta/Windows key mask."
+msgstr "命令(在 macOS 上)或 Meta/Windows 鍵遮罩。"
+
+msgid "Control key mask."
+msgstr "Ctrl 鍵遮罩。"
+
+msgid "Keypad key mask."
+msgstr "Keypad 鍵遮罩。"
+
+msgid "Group Switch key mask."
+msgstr "Group Switch 鍵遮罩。"
+
+msgid ""
+"Enum value which doesn't correspond to any mouse button. This is used to "
+"initialize [enum MouseButton] properties with a generic state."
+msgstr ""
+"與任何滑鼠按鈕都不對應的列舉值。這用於初始化具有通用狀態的 [enum MouseButton] "
+"屬性。"
+
+msgid "Primary mouse button, usually assigned to the left button."
+msgstr "滑鼠主鍵,通常分配給左鍵。"
+
+msgid "Secondary mouse button, usually assigned to the right button."
+msgstr "滑鼠次鍵,通常分配給右鍵。"
+
+msgid "Middle mouse button."
+msgstr "滑鼠中鍵。"
+
+msgid "Mouse wheel scrolling up."
+msgstr "滑鼠滾輪向上滾動。"
+
+msgid "Mouse wheel scrolling down."
+msgstr "滑鼠滾輪向下滾動。"
+
+msgid "Mouse wheel left button (only present on some mice)."
+msgstr "滑鼠滾輪左鍵(僅在某些滑鼠上有實作)。"
+
+msgid "Mouse wheel right button (only present on some mice)."
+msgstr "滑鼠滾輪右鍵(僅在某些滑鼠上有實作)。"
+
+msgid ""
+"Extra mouse button 1. This is sometimes present, usually to the sides of the "
+"mouse."
+msgstr "滑鼠額外鍵 1。有時會出現,通常位於滑鼠的兩側。"
+
+msgid ""
+"Extra mouse button 2. This is sometimes present, usually to the sides of the "
+"mouse."
+msgstr "滑鼠額外鍵 2。有時會出現,通常位於滑鼠的兩側。"
+
+msgid "Primary mouse button mask, usually for the left button."
+msgstr "滑鼠主鍵遮罩,通常用於左鍵。"
+
+msgid "Secondary mouse button mask, usually for the right button."
+msgstr "滑鼠次鍵遮罩,通常用於右鍵。"
+
+msgid "Middle mouse button mask."
+msgstr "滑鼠中鍵遮罩。"
+
+msgid "Extra mouse button 1 mask."
+msgstr "滑鼠額外鍵 1 遮罩。"
+
+msgid "Extra mouse button 2 mask."
+msgstr "滑鼠額外鍵 2 遮罩。"
+
+msgid "An invalid game controller button."
+msgstr "無效的遊戲控制器按鈕。"
+
+msgid ""
+"Game controller SDL button A. Corresponds to the bottom action button: Sony "
+"Cross, Xbox A, Nintendo B."
+msgstr ""
+"遊戲控制器 SDL 按鍵 A。對應底部動作按鈕:Sony Cross、Xbox A、Nintendo B。"
+
+msgid ""
+"Game controller SDL button B. Corresponds to the right action button: Sony "
+"Circle, Xbox B, Nintendo A."
+msgstr ""
+"遊戲控制器 SDL 按鈕 B。對應右側動作按鈕:Sony Circle、Xbox B、Nintendo A。"
+
+msgid ""
+"Game controller SDL button X. Corresponds to the left action button: Sony "
+"Square, Xbox X, Nintendo Y."
+msgstr ""
+"遊戲控制器 SDL 按鈕 X。對應左側動作按鈕:Sony Square、Xbox X、Nintendo Y。"
+
+msgid ""
+"Game controller SDL button Y. Corresponds to the top action button: Sony "
+"Triangle, Xbox Y, Nintendo X."
+msgstr ""
+"遊戲控制器 SDL 按鈕 Y。對應頂部動作按鈕:Sony Triangle、Xbox Y、Nintendo X。"
+
+msgid ""
+"Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, "
+"Nintendo - button."
+msgstr ""
+"遊戲控制器 SDL back按鈕。對應於 Sony Select、Xbox Back、Nintendo - 按鈕。"
+
+msgid ""
+"Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home "
+"button."
+msgstr "遊戲控制器 SDL guide 按鈕。對應於索尼 PS、Xbox 的 Home 鍵。"
+
+msgid ""
+"Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS "
+"button."
+msgstr "遊戲控制器 SDL 左搖桿按鈕。對應於 Sony L3、Xbox L/LS 按鈕。"
+
+msgid ""
+"Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS "
+"button."
+msgstr "遊戲控制器 SDL 右搖桿按鈕。對應於 Sony R3、Xbox R/RS 按鈕。"
+
+msgid ""
+"Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB "
+"button."
+msgstr "遊戲控制器 SDL 左肩按鈕。對應於 Sony L1、Xbox LB 按鈕。"
+
+msgid ""
+"Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox "
+"RB button."
+msgstr "遊戲控制器 SDL 右肩按鈕。對應於 Sony R1、Xbox RB 按鈕。"
+
+msgid "Game controller D-pad up button."
+msgstr "遊戲控制器方向鍵向上按鈕。"
+
+msgid "Game controller D-pad down button."
+msgstr "遊戲控制器方向鍵向下按鈕。"
+
+msgid "Game controller D-pad left button."
+msgstr "遊戲控制器方向鍵向左鍵。"
+
+msgid "Game controller D-pad right button."
+msgstr "遊戲控制器方向鍵向右鍵。"
+
+msgid ""
+"Game controller SDL miscellaneous button. Corresponds to Xbox share button, "
+"PS5 microphone button, Nintendo Switch capture button."
+msgstr ""
+"遊戲控制器 SDL 雜項按鈕。對應 Xbox 分享鍵、PS5 麥克風鍵、Nintendo Switch 捕捉"
+"鍵。"
+
+msgid "Game controller SDL paddle 1 button."
+msgstr "遊戲控制器 SDL 撥片 1 按鈕。"
+
+msgid "Game controller SDL paddle 2 button."
+msgstr "遊戲控制器 SDL 撥片 2 按鈕。"
+
+msgid "Game controller SDL paddle 3 button."
+msgstr "遊戲控制器 SDL 撥片 3 按鈕。"
+
+msgid "Game controller SDL paddle 4 button."
+msgstr "遊戲控制器 SDL 撥片 4 按鈕。"
+
+msgid "Game controller SDL touchpad button."
+msgstr "遊戲控制器 SDL 觸控板按鈕。"
+
+msgid "The number of SDL game controller buttons."
+msgstr "SDL 遊戲控制器按鈕的數量。"
+
+msgid ""
+"The maximum number of game controller buttons supported by the engine. The "
+"actual limit may be lower on specific platforms:\n"
+"- [b]Android:[/b] Up to 36 buttons.\n"
+"- [b]Linux:[/b] Up to 80 buttons.\n"
+"- [b]Windows[/b] and [b]macOS:[/b] Up to 128 buttons."
+msgstr ""
+"引擎所支援的最大遊戲控制器按鈕數。特定平臺上的實際界限可能更低:\n"
+"- [b]Android:[/b]最多 36 個按鈕。\n"
+"- [b]Linux:[/b]最多 80 個按鈕。\n"
+"- [b]Windows[/b] 和 [b]macOS:[/b]最多 128 個按鈕。"
+
+msgid "An invalid game controller axis."
+msgstr "無效的遊戲控制器軸。"
+
+msgid "Game controller left joystick x-axis."
+msgstr "遊戲控制器左操縱桿 x 軸。"
+
+msgid "Game controller left joystick y-axis."
+msgstr "遊戲控制器左操縱桿 y 軸。"
+
+msgid "Game controller right joystick x-axis."
+msgstr "遊戲控制器右操縱桿 x 軸。"
+
+msgid "Game controller right joystick y-axis."
+msgstr "遊戲控制器右操縱桿 y 軸。"
+
+msgid "Game controller left trigger axis."
+msgstr "遊戲控制器左扳機軸。"
+
+msgid "Game controller right trigger axis."
+msgstr "遊戲控制器左扳機軸。"
+
+msgid "The number of SDL game controller axes."
+msgstr "SDL 遊戲控制器軸的數量。"
+
+msgid ""
+"The maximum number of game controller axes: OpenVR supports up to 5 Joysticks "
+"making a total of 10 axes."
+msgstr "最大遊戲控制器軸數:OpenVR 最多支援 5 個操縱桿,總共 10 個軸。"
+
+msgid ""
+"Enum value which doesn't correspond to any MIDI message. This is used to "
+"initialize [enum MIDIMessage] properties with a generic state."
+msgstr ""
+"與任何 MIDI 消息都不對應的列舉值。這用於初始化具有通用狀態的 [enum "
+"MIDIMessage] 屬性。"
+
+msgid ""
+"MIDI note OFF message. Not all MIDI devices send this event; some send "
+"[constant MIDI_MESSAGE_NOTE_ON] with zero velocity instead. See the "
+"documentation of [InputEventMIDI] for information of how to use MIDI inputs."
+msgstr ""
+"MIDI 音符 OFF 消息。並不是所有 MIDI 裝置都會發送這個事件;有些會改為發送速度為"
+"零的 [constant MIDI_MESSAGE_NOTE_ON]。如何使用 MIDI 輸入的資訊請參閱 "
+"[InputEventMIDI] 的文件。"
+
+msgid ""
+"MIDI note ON message. Some MIDI devices send this event with velocity zero "
+"instead of [constant MIDI_MESSAGE_NOTE_OFF], but implementations vary. See "
+"the documentation of [InputEventMIDI] for information of how to use MIDI "
+"inputs."
+msgstr ""
+"MIDI 音符 ON 消息。有些 MIDI 裝置用速度為零的這個事件來代替 [constant "
+"MIDI_MESSAGE_NOTE_OFF],但可能有不同的實作。如何使用 MIDI 輸入的資訊請參閱 "
+"[InputEventMIDI] 的文件。"
+
+msgid ""
+"MIDI aftertouch message. This message is most often sent by pressing down on "
+"the key after it \"bottoms out\"."
+msgstr "MIDI 觸後消息。這個消息經常都是在按鍵“結束”後繼續施壓時發送。"
+
+msgid ""
+"MIDI control change message. This message is sent when a controller value "
+"changes. Controllers include devices such as pedals and levers."
+msgstr ""
+"MIDI 控制變化消息。這個消息會在控制器值發生變化時發送。控制器包括踏板、推杆等"
+"裝置。"
+
+msgid ""
+"MIDI program change message. This message sent when the program patch number "
+"changes."
+msgstr "MIDI 音色變化消息。這個消息會在音色 Patch 號變化時發送。"
+
+msgid ""
+"MIDI channel pressure message. This message is most often sent by pressing "
+"down on the key after it \"bottoms out\". This message is different from "
+"polyphonic after-touch as it indicates the highest pressure across all keys."
+msgstr ""
+"MIDI 通道壓力消息。這個消息經常都是在按鍵“結束”後繼續施壓時發送。這個消息與複"
+"音觸後不同,因為它表示的是所有鍵中的最大壓力。"
+
+msgid ""
+"MIDI pitch bend message. This message is sent to indicate a change in the "
+"pitch bender (wheel or lever, typically)."
+msgstr "MIDI 彎音消息。發送這個消息表示彎音器(一般是彎音輪或推杆)產生了變化。"
+
+msgid ""
+"MIDI system exclusive message. This has behavior exclusive to the device "
+"you're receiving input from. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI 系統專有消息。行為由你所用來獲取輸入的裝置專有。Godot 未實作該資料的獲"
+"取。"
+
+msgid ""
+"MIDI quarter frame message. Contains timing information that is used to "
+"synchronize MIDI devices. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI 四分影格消息。包含用於同步 MIDI 裝置的時間資訊。Godot 未實作該資料的獲"
+"取。"
+
+msgid ""
+"MIDI song position pointer message. Gives the number of 16th notes since the "
+"start of the song. Getting this data is not implemented in Godot."
+msgstr ""
+"MIDI 歌曲位置指標消息。提供自歌曲開始以來所經過的十六分音符數。Godot 未實作該"
+"資料的獲取。"
+
+msgid ""
+"MIDI song select message. Specifies which sequence or song is to be played. "
+"Getting this data is not implemented in Godot."
+msgstr "MIDI 歌曲選擇消息。指定要播放的序列或歌曲。Godot 未實作該資料的獲取。"
+
+msgid ""
+"MIDI tune request message. Upon receiving a tune request, all analog "
+"synthesizers should tune their oscillators."
+msgstr "MIDI 調諧請求消息。收到調諧請求後,所有模擬合成器都應調整其振盪器。"
+
+msgid ""
+"MIDI timing clock message. Sent 24 times per quarter note when "
+"synchronization is required."
+msgstr "MIDI 時鐘消息。需要同步時,每四分音符會發送 24 次。"
+
+msgid ""
+"MIDI start message. Start the current sequence playing. This message will be "
+"followed with Timing Clocks."
+msgstr "MIDI 開始消息。開始目前序列的播放。這個消息後會跟隨時鐘消息。"
+
+msgid "MIDI continue message. Continue at the point the sequence was stopped."
+msgstr "MIDI 繼續消息。從序列停止的位置繼續。"
+
+msgid "MIDI stop message. Stop the current sequence."
+msgstr "MIDI 停止消息。停止目前序列。"
+
+msgid ""
+"MIDI active sensing message. This message is intended to be sent repeatedly "
+"to tell the receiver that a connection is alive."
+msgstr "MIDI 活躍感知消息。這個消息的目的是要重複發送,告知接收方連接仍存在。"
+
+msgid ""
+"MIDI system reset message. Reset all receivers in the system to power-up "
+"status. It should not be sent on power-up itself."
+msgstr ""
+"MIDI 系統重設消息。將系統中的所有接收方重設為上電狀態。本身不應在上電時發送。"
+
+msgid ""
+"Methods that return [enum Error] return [constant OK] when no error "
+"occurred.\n"
+"Since [constant OK] has value 0, and all other error constants are positive "
+"integers, it can also be used in boolean checks.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var error = method_that_returns_error()\n"
+"if error != OK:\n"
+" printerr(\"Failure!\")\n"
+"\n"
+"# Or, alternatively:\n"
+"if error:\n"
+" printerr(\"Still failing!\")\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Many functions do not return an error code, but will print error "
+"messages to standard output."
+msgstr ""
+"返回 [enum Error] 的方法會在沒有錯誤發生時返回 [constant OK]。\n"
+"由於 [constant OK] 的值為 0,並且所有其他錯誤常數都是正整數,因此返回值也可以"
+"用於布林檢查。\n"
+"[b]範例:[/b]\n"
+"[codeblock]\n"
+"var error = method_that_returns_error()\n"
+"if error != OK:\n"
+" printerr(\"Failure!\")\n"
+"\n"
+"# 或者,等價於:\n"
+"if error:\n"
+" printerr(\"Still failing!\")\n"
+"[/codeblock]\n"
+"[b]注意:[/b]許多函式不返回錯誤程式碼,但會將錯誤資訊列印到標準輸出。"
+
+msgid "Generic error."
+msgstr "一般性錯誤。"
+
+msgid "Unavailable error."
+msgstr "不可用的錯誤。"
+
+msgid "Unconfigured error."
+msgstr "未配置的錯誤。"
+
+msgid "Unauthorized error."
+msgstr "未經授權的錯誤。"
+
+msgid "Parameter range error."
+msgstr "參數範圍錯誤。"
+
+msgid "Out of memory (OOM) error."
+msgstr "記憶體不足(OOM)錯誤。"
+
+msgid "File: Not found error."
+msgstr "檔案:未找到錯誤。"
+
+msgid "File: Bad drive error."
+msgstr "檔案:壞驅動器錯誤。"
+
+msgid "File: Bad path error."
+msgstr "檔案:錯誤的路徑錯誤。"
+
+msgid "File: No permission error."
+msgstr "檔案:無許可權錯誤。"
+
+msgid "File: Already in use error."
+msgstr "檔案:已在使用錯誤。"
+
+msgid "File: Can't open error."
+msgstr "檔案:無法打開錯誤。"
+
+msgid "File: Can't write error."
+msgstr "檔案:無法寫入錯誤。"
+
+msgid "File: Can't read error."
+msgstr "檔案:無法讀取錯誤。"
+
+msgid "File: Unrecognized error."
+msgstr "檔案:未識別的錯誤。"
+
+msgid "File: Corrupt error."
+msgstr "檔案:損壞錯誤。"
+
+msgid "File: Missing dependencies error."
+msgstr "檔案:缺少依賴項錯誤。"
+
+msgid "File: End of file (EOF) error."
+msgstr "檔案:檔結束(EOF)錯誤。"
+
+msgid "Can't open error."
+msgstr "無法打開錯誤。"
+
+msgid "Can't create error."
+msgstr "無法建立錯誤。"
+
+msgid "Query failed error."
+msgstr "查詢失敗錯誤。"
+
+msgid "Already in use error."
+msgstr "已在使用中錯誤。"
+
+msgid "Locked error."
+msgstr "鎖定錯誤。"
+
+msgid "Timeout error."
+msgstr "逾時錯誤。"
+
+msgid "Can't connect error."
+msgstr "無法連接錯誤。"
+
+msgid "Can't resolve error."
+msgstr "無法解決錯誤。"
+
+msgid "Connection error."
+msgstr "連接錯誤。"
+
+msgid "Can't acquire resource error."
+msgstr "無法獲取資源錯誤。"
+
+msgid "Can't fork process error."
+msgstr "無法分叉程序錯誤。"
+
+msgid "Invalid data error."
+msgstr "無效資料錯誤。"
+
+msgid "Invalid parameter error."
+msgstr "無效參數錯誤。"
+
+msgid "Already exists error."
+msgstr "已存在的錯誤。"
+
+msgid "Does not exist error."
+msgstr "不存在的錯誤。"
+
+msgid "Database: Read error."
+msgstr "資料庫:讀取錯誤。"
+
+msgid "Database: Write error."
+msgstr "資料庫:寫入錯誤。"
+
+msgid "Compilation failed error."
+msgstr "編譯失敗錯誤。"
+
+msgid "Method not found error."
+msgstr "方法未找到錯誤。"
+
+msgid "Linking failed error."
+msgstr "連結失敗錯誤。"
+
+msgid "Script failed error."
+msgstr "腳本失敗錯誤。"
+
+msgid "Cycling link (import cycle) error."
+msgstr "迴圈連結(匯入迴圈)錯誤。"
+
+msgid "Invalid declaration error."
+msgstr "無效宣告錯誤。"
+
+msgid "Duplicate symbol error."
+msgstr "符號重複錯誤。"
+
+msgid "Parse error."
+msgstr "解析錯誤。"
+
+msgid "Busy error."
+msgstr "忙碌錯誤。"
+
+msgid "Skip error."
+msgstr "跳過錯誤。"
+
+msgid ""
+"Help error. Used internally when passing [code]--version[/code] or [code]--"
+"help[/code] as executable options."
+msgstr ""
+"説明錯誤。內部使用,用於將 [code]--version[/code] 或 [code]--help[/code] 作為"
+"選項傳遞給可執行檔的情況。"
+
+msgid ""
+"Bug error, caused by an implementation issue in the method.\n"
+"[b]Note:[/b] If a built-in method returns this code, please open an issue on "
+"[url=https://github.com/godotengine/godot/issues]the GitHub Issue Tracker[/"
+"url]."
+msgstr ""
+"Bug 錯誤,由方法中的實作問題引起。\n"
+"[b]注意:[/b]如果內建方法返回此程式碼,請在 [url=https://github.com/"
+"godotengine/godot/issues]GitHub 問題追蹤器[/url] 上開一個問題。"
+
+msgid ""
+"Printer on fire error (This is an easter egg, no built-in methods return this "
+"error code)."
+msgstr "印表機起火錯誤(這是個彩蛋,引擎中沒有內建方法會返回此錯誤碼)。"
+
+msgid "The property has no hint for the editor."
+msgstr "該屬性沒有編輯器提示。"
+
+msgid ""
+"Hints that an [int] or [float] property should be within a range specified "
+"via the hint string [code]\"min,max\"[/code] or [code]\"min,max,step\"[/"
+"code]. The hint string can optionally include [code]\"or_greater\"[/code] and/"
+"or [code]\"or_less\"[/code] to allow manual input going respectively above "
+"the max or below the min values.\n"
+"[b]Example:[/b] [code]\"-360,360,1,or_greater,or_less\"[/code].\n"
+"Additionally, other keywords can be included: [code]\"exp\"[/code] for "
+"exponential range editing, [code]\"radians_as_degrees\"[/code] for editing "
+"radian angles in degrees (the range values are also in degrees), "
+"[code]\"degrees\"[/code] to hint at an angle and [code]\"hide_slider\"[/code] "
+"to hide the slider."
+msgstr ""
+"提示 [int] 或 [float] 屬性應在提示字串 [code]\"min,max\"[/code] 或 "
+"[code]\"min,max,step\"[/code] 指定的範圍內。提示字串可以選擇包含 "
+"[code]\"or_greater\"[/code] 和/或 [code]\"or_less\"[/code] 以允許手動輸入高於"
+"最大值或低於最小值的值。\n"
+"[b]範例:[/b][code]\"-360,360,1,or_greater,or_less\"[/code]。\n"
+"此外,還可以包含其他關鍵字:[code]\"exp\"[/code] 用於指數範圍編輯,"
+"[code]\"radians\"[/code] 用於以度數編輯弧度角,[code]\"degrees\"[/code] 提示一"
+"個角度,以及 [code]\"hide_slider\"[/code] 隱藏滑桿。"
+
+msgid ""
+"Hints that an [int] or [String] property is an enumerated value to pick in a "
+"list specified via a hint string.\n"
+"The hint string is a comma separated list of names such as [code]\"Hello,"
+"Something,Else\"[/code]. Whitespaces are [b]not[/b] removed from either end "
+"of a name. For integer properties, the first name in the list has value 0, "
+"the next 1, and so on. Explicit values can also be specified by appending "
+"[code]:integer[/code] to the name, e.g. [code]\"Zero,One,Three:3,Four,"
+"Six:6\"[/code]."
+msgstr ""
+"提示 [int] 或 [String] 屬性是列舉值,可通過提示字串在指定的列表中選取。\n"
+"該提示字串是逗號分隔的名稱列表,例如 [code]\"Hello,Something,Else\"[/code]。 "
+"[b]不會[/b]從名稱的任何一端刪除空格。對於整數屬性,列表中的第一個名稱的值為 "
+"0,下一個名稱的值為 1,依此類推。也可以通過將 [code]:integer[/code] 附加到名稱"
+"來明確的指定值,例如 [code]\"Zero,One,Three:3,Four,Six:6\"[/code]。"
+
+msgid ""
+"Hints that a [String] property can be an enumerated value to pick in a list "
+"specified via a hint string such as [code]\"Hello,Something,Else\"[/code].\n"
+"Unlike [constant PROPERTY_HINT_ENUM], a property with this hint still accepts "
+"arbitrary values and can be empty. The list of values serves to suggest "
+"possible values."
+msgstr ""
+"提示 [String] 屬性為列舉值,可以通過提示字串在指定的列表中選取,例如 "
+"[code]\"Hello,Something,Else\"[/code]。\n"
+"與 [constant PROPERTY_HINT_ENUM] 不同,具有該提示的屬性仍然接受任意值並且可以"
+"為空。值列表用於建議可能的值。"
+
+msgid ""
+"Hints that a [float] property should be edited via an exponential easing "
+"function. The hint string can include [code]\"attenuation\"[/code] to flip "
+"the curve horizontally and/or [code]\"positive_only\"[/code] to exclude in/"
+"out easing and limit values to be greater than or equal to zero."
+msgstr ""
+"提示應通過指數緩動函式編輯 [float] 屬性。提示字串可以包括 "
+"[code]\"attenuation\"[/code] 以水平翻轉曲線,和/或 [code]\"positive_only\"[/"
+"code] 以排除 in/out 緩動並限制值大於或等於零。"
+
+msgid ""
+"Hints that a vector property should allow its components to be linked. For "
+"example, this allows [member Vector2.x] and [member Vector2.y] to be edited "
+"together."
+msgstr ""
+"提示向量屬性應該允許分量連結。例如,這能夠讓 [member Vector2.x] 和 [member "
+"Vector2.y] 被一起編輯。"
+
+msgid ""
+"Hints that an [int] property is a bitmask with named bit flags.\n"
+"The hint string is a comma separated list of names such as [code]\"Bit0,Bit1,"
+"Bit2,Bit3\"[/code]. Whitespaces are [b]not[/b] removed from either end of a "
+"name. The first name in the list has value 1, the next 2, then 4, 8, 16 and "
+"so on. Explicit values can also be specified by appending [code]:integer[/"
+"code] to the name, e.g. [code]\"A:4,B:8,C:16\"[/code]. You can also combine "
+"several flags ([code]\"A:4,B:8,AB:12,C:16\"[/code]).\n"
+"[b]Note:[/b] A flag value must be at least [code]1[/code] and at most [code]2 "
+"** 32 - 1[/code].\n"
+"[b]Note:[/b] Unlike [constant PROPERTY_HINT_ENUM], the previous explicit "
+"value is not taken into account. For the hint [code]\"A:16,B,C\"[/code], A is "
+"16, B is 2, C is 4."
+msgstr ""
+"提示 [int] 屬性為位元遮罩,位元旗標擁有名稱。\n"
+"提示字串為逗號分隔的名稱列表,例如 [code]\"Bit0,Bit1,Bit2,Bit3\"[/code]。名稱"
+"兩端的空白字元[b]不會[/b]被移除。列表中的第一個名稱的值為 1、然後是 2、接下來"
+"就是 4、8、16 等值。也可以通過在名稱後加上 [code]:整數[/code] 來指定明確的的"
+"值,例如 [code]\"A:4,B:8,C:16\"[/code]。你還可以對旗標進行組合([code]\"A:4,"
+"B:8,AB:12,C:16\"[/code])。\n"
+"[b]注意:[/b]旗標值最多為 [code]1[/code],最多為 [code]2 ** 32 - 1[/code]。\n"
+"[b]注意:[/b]與 [constant PROPERTY_HINT_ENUM] 不同,不會考慮前一個明確的值。如"
+"果提示為 [code]\"A:16,B,C\"[/code],則 A 為 16、B 為 2、C 為 4。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"render layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 2D 渲染層。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"physics layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 2D 實體層。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 2D "
+"navigation layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 2D 導覽層。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"render layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 3D 渲染層。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"physics layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 3D 實體層。"
+
+msgid ""
+"Hints that an [int] property is a bitmask using the optionally named 3D "
+"navigation layers."
+msgstr "提示 [int] 屬性為位元遮罩,表示可命名的 3D 導覽層。"
+
+msgid ""
+"Hints that an integer property is a bitmask using the optionally named "
+"avoidance layers."
+msgstr "提示整數屬性為位元遮罩,表示可命名的避障層。"
+
+msgid ""
+"Hints that a [String] property is a path to a file. Editing it will show a "
+"file dialog for picking the path. The hint string can be a set of filters "
+"with wildcards like [code]\"*.png,*.jpg\"[/code]."
+msgstr ""
+"提示 [String] 屬性為檔的路徑。編輯時會彈出選取路徑的檔對話方塊。提示字串可以設"
+"為一組帶有萬用字元的篩選器,例如 [code]\"*.png,*.jpg\"[/code]。"
+
+msgid ""
+"Hints that a [String] property is a path to a directory. Editing it will show "
+"a file dialog for picking the path."
+msgstr "提示 [String] 屬性為目錄的路徑。編輯時會彈出選取路徑的檔對話方塊。"
+
+msgid ""
+"Hints that a [String] property is an absolute path to a file outside the "
+"project folder. Editing it will show a file dialog for picking the path. The "
+"hint string can be a set of filters with wildcards, like [code]\"*.png,*."
+"jpg\"[/code]."
+msgstr ""
+"提示 [String] 屬性為檔的絕對路徑,位於專案檔案夾之外。編輯時會彈出選取路徑的檔"
+"案對話方塊。提示字串可以設為一組帶有萬用字元的篩選器,例如 [code]\"*.png,*."
+"jpg\"[/code]。"
+
+msgid ""
+"Hints that a [String] property is an absolute path to a directory outside the "
+"project folder. Editing it will show a file dialog for picking the path."
+msgstr ""
+"提示 [String] 屬性為目錄的絕對路徑,位於專案檔案夾之外。編輯時會彈出選取路徑的"
+"檔案對話方塊。"
+
+msgid ""
+"Hints that a property is an instance of a [Resource]-derived type, optionally "
+"specified via the hint string (e.g. [code]\"Texture2D\"[/code]). Editing it "
+"will show a popup menu of valid resource types to instantiate."
+msgstr ""
+"提示屬性是 [Resource] 衍生型別的實例,可通過提示字串指定(例如 "
+"[code]\"Texture2D\"[/code])。 編輯該屬性會顯示一個有效資源型別的彈出功能表用"
+"以產生實體。"
+
+msgid ""
+"Hints that a [String] property is text with line breaks. Editing it will show "
+"a text input field where line breaks can be typed."
+msgstr ""
+"提示 [String] 屬性為包含換行的文字。編輯是會顯示文字輸入欄位,可以進行換行。"
+
+msgid "Hints that a [String] property is an [Expression]."
+msgstr "提示 [String] 屬性為 [Expression]。"
+
+msgid ""
+"Hints that a [String] property should show a placeholder text on its input "
+"field, if empty. The hint string is the placeholder text to use."
+msgstr ""
+"提示 [String] 屬性在為空時應當顯示占位元文字。提示字串為所使用的占位元文字。"
+
+msgid ""
+"Hints that a [Color] property should be edited without affecting its "
+"transparency ([member Color.a] is not editable)."
+msgstr ""
+"提示一個 [Color] 屬性在編輯時不能影響其透明度([member Color.a] 不可編輯)。"
+
+msgid ""
+"If a property is [String], hints that the property represents a particular "
+"type (class). This allows to select a type from the create dialog. The "
+"property will store the selected type as a string.\n"
+"If a property is [Array], hints the editor how to show elements. The "
+"[code]hint_string[/code] must encode nested types using [code]\":\"[/code] "
+"and [code]\"/\"[/code].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Array of elem_type.\n"
+"hint_string = \"%d:\" % [elem_type]\n"
+"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n"
+"# Two-dimensional array of elem_type (array of arrays of elem_type).\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, "
+"elem_hint_string]\n"
+"# Three-dimensional array of elem_type (array of arrays of arrays of "
+"elem_type).\n"
+"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, "
+"elem_hint, elem_hint_string]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Array of elemType.\n"
+"hintString = $\"{elemType:D}:\";\n"
+"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n"
+"// Two-dimensional array of elemType (array of arrays of elemType).\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:"
+"{elemHintString}\";\n"
+"// Three-dimensional array of elemType (array of arrays of arrays of "
+"elemType).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:"
+"\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/"
+"{elemHint:D}:{elemHintString}\";\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Examples:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"hint_string = \"%d:\" % [TYPE_INT] # Array of integers.\n"
+"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # Array of "
+"integers (in range from 1 to 10).\n"
+"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # Array "
+"of integers (an enum).\n"
+"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, "
+"PROPERTY_HINT_ENUM] # Array of integers (an enum).\n"
+"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # Array of "
+"strings (file paths).\n"
+"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Array of textures.\n"
+"\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # Two-dimensional array "
+"of floats.\n"
+"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, "
+"PROPERTY_HINT_MULTILINE_TEXT] # Two-dimensional array of multiline strings.\n"
+"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, "
+"PROPERTY_HINT_RANGE] # Two-dimensional array of floats (in range from -1 to "
+"1).\n"
+"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # Two-dimensional array of textures.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // "
+"Array of integers (in range from 1 to 10).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // "
+"Array of integers (an enum).\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,"
+"Six:6\"; // Array of integers (an enum).\n"
+"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // "
+"Array of strings (file paths).\n"
+"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:"
+"Texture2D\"; // Array of textures.\n"
+"\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // Two-"
+"dimensional array of floats.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint."
+"MultilineText:D}:\"; // Two-dimensional array of multiline strings.\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint."
+"Range:D}:-1,1,0.1\"; // Two-dimensional array of floats (in range from -1 to "
+"1).\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint."
+"ResourceType:D}:Texture2D\"; // Two-dimensional array of textures.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] The trailing colon is required for properly detecting built-in "
+"types."
+msgstr ""
+"如果屬性為 [String],則提示該屬性代表特定的型別(類)。這樣就能使用建立對話方"
+"塊選擇型別。該屬性中存放的是所選型別,是一個字串。\n"
+"如果屬性為 [Array],則提示編輯器如何顯示其中的元素。[code]hint_string[/code] "
+"必須使用 [code]\":\"[/code] 和 [code]\"/\"[/code] 對內嵌的型別進行編碼。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# elem_type 陣列。\n"
+"hint_string = \"%d:\" % [elem_type]\n"
+"hint_string = \"%d/%d:%s\" % [elem_type, elem_hint, elem_hint_string]\n"
+"# elem_type 二維陣列(elem_type 陣列的陣列)。\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d/%d:%s\" % [TYPE_ARRAY, elem_type, elem_hint, "
+"elem_hint_string]\n"
+"# elem_type 三維陣列(elem_type 陣列的陣列的陣列)。\n"
+"hint_string = \"%d:%d:%d:\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type]\n"
+"hint_string = \"%d:%d:%d/%d:%s\" % [TYPE_ARRAY, TYPE_ARRAY, elem_type, "
+"elem_hint, elem_hint_string]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// elem_type 陣列。\n"
+"hintString = $\"{elemType:D}:\";\n"
+"hintString = $\"{elemType:}/{elemHint:D}:{elemHintString}\";\n"
+"// elem_type 二維陣列(elem_type 陣列的陣列)。\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}:\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{elemType:D}/{elemHint:D}:"
+"{elemHintString}\";\n"
+"// elem_type 三維陣列(elem_type 陣列的陣列的陣列)。\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}:"
+"\";\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Array:D}:{elemType:D}/"
+"{elemHint:D}:{elemHintString}\";\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"範例:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"hint_string = \"%d:\" % [TYPE_INT] # 整數陣列。\n"
+"hint_string = \"%d/%d:1,10,1\" % [TYPE_INT, PROPERTY_HINT_RANGE] # 整數陣列"
+"(範圍為 1 到 10)。\n"
+"hint_string = \"%d/%d:Zero,One,Two\" % [TYPE_INT, PROPERTY_HINT_ENUM] # 整數陣"
+"列(列舉)。\n"
+"hint_string = \"%d/%d:Zero,One,Three:3,Six:6\" % [TYPE_INT, "
+"PROPERTY_HINT_ENUM] # 整數陣列(列舉)。\n"
+"hint_string = \"%d/%d:*.png\" % [TYPE_STRING, PROPERTY_HINT_FILE] # 字串數組"
+"(檔路徑)。\n"
+"hint_string = \"%d/%d:Texture2D\" % [TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # 紋理陣列。\n"
+"\n"
+"hint_string = \"%d:%d:\" % [TYPE_ARRAY, TYPE_FLOAT] # 浮點數二維陣列。\n"
+"hint_string = \"%d:%d/%d:\" % [TYPE_ARRAY, TYPE_STRING, "
+"PROPERTY_HINT_MULTILINE_TEXT] # 多行字串二維陣列。\n"
+"hint_string = \"%d:%d/%d:-1,1,0.1\" % [TYPE_ARRAY, TYPE_FLOAT, "
+"PROPERTY_HINT_RANGE] # 浮點數二維陣列(範圍為 -1 到 1)。\n"
+"hint_string = \"%d:%d/%d:Texture2D\" % [TYPE_ARRAY, TYPE_OBJECT, "
+"PROPERTY_HINT_RESOURCE_TYPE] # 紋理二維陣列。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Range:D}:1,10,1\"; // 整數"
+"陣列(範圍為 1 到 10)。\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Two\"; // "
+"整數陣列(列舉)。\n"
+"hintString = $\"{Variant.Type.Int:D}/{PropertyHint.Enum:D}:Zero,One,Three:3,"
+"Six:6\"; // 整數陣列(列舉)。\n"
+"hintString = $\"{Variant.Type.String:D}/{PropertyHint.File:D}:*.png\"; // 字符"
+"串陣列(檔路徑)。\n"
+"hintString = $\"{Variant.Type.Object:D}/{PropertyHint.ResourceType:D}:"
+"Texture2D\"; // 紋理陣列。\n"
+"\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}:\"; // 浮點數二"
+"維陣列。\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.String:D}/{PropertyHint."
+"MultilineText:D}:\"; // 多行字串二維陣列。\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Float:D}/{PropertyHint."
+"Range:D}:-1,1,0.1\"; // 浮點數二維陣列(範圍為 -1 到 1)。\n"
+"hintString = $\"{Variant.Type.Array:D}:{Variant.Type.Object:D}/{PropertyHint."
+"ResourceType:D}:Texture2D\"; // 紋理二維陣列。\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]後綴冒號是必須的,否則無法正確識別內建型別。"
+
+msgid ""
+"Hints that a string property is a locale code. Editing it will show a locale "
+"dialog for picking language and country."
+msgstr ""
+"提示一個字串屬性是一個區域設定程式碼。編輯它將顯示一個用於選擇語言和地區的區域"
+"設定對話方塊。"
+
+msgid ""
+"Hints that a dictionary property is string translation map. Dictionary keys "
+"are locale codes and, values are translated strings."
+msgstr ""
+"提示一個字典屬性是字串翻譯對應。字典的鍵是區域設定程式碼,值是翻譯後的字元串。"
+
+msgid ""
+"Hints that a quaternion property should disable the temporary euler editor."
+msgstr "提示四元數屬性應當禁用臨時歐拉值編輯器。"
+
+msgid ""
+"Hints that a string property is a password, and every character is replaced "
+"with the secret character."
+msgstr "提示字串屬性為密碼,每一個字元都會被替換為秘密字元。"
+
+msgid "Represents the size of the [enum PropertyHint] enum."
+msgstr "代表 [enum PropertyHint] 列舉的大小。"
+
+msgid ""
+"The property is not stored, and does not display in the editor. This is the "
+"default for non-exported properties."
+msgstr "該屬性不被儲存,也不會顯示在編輯器中。這是非匯出屬性的預設值。"
+
+msgid "The property is serialized and saved in the scene file (default)."
+msgstr "將屬性序列化並保存到場景檔中(預設)。"
+
+msgid "The property is shown in the [EditorInspector] (default)."
+msgstr "該屬性將被顯示在 [EditorInspector](預設)中。"
+
+msgid "The property is excluded from the class reference."
+msgstr "該屬性排除在類參考手冊之外。"
+
+msgid "The property can be checked in the [EditorInspector]."
+msgstr "該屬性可以在 [EditorInspector] 中被勾選。"
+
+msgid "The property is checked in the [EditorInspector]."
+msgstr "該屬性在 [EditorInspector] 中已被勾選。"
+
+msgid "Used to group properties together in the editor. See [EditorInspector]."
+msgstr "用於在編輯器中將屬性編組在一起。請參閱 [EditorInspector]。"
+
+msgid "Used to categorize properties together in the editor."
+msgstr "在編輯器中用於為屬性分類。"
+
+msgid ""
+"Used to group properties together in the editor in a subgroup (under a "
+"group). See [EditorInspector]."
+msgstr ""
+"用於在子組(一個組下)中將編輯器中的屬性編組在一起。請參閱 [EditorInspector]。"
+
+msgid "The property does not save its state in [PackedScene]."
+msgstr "該屬性不在 [PackedScene] 中保存其狀態。"
+
+msgid "Editing the property prompts the user for restarting the editor."
+msgstr "編輯屬性會提示使用者重新開機編輯器。"
+
+msgid ""
+"The property is a script variable which should be serialized and saved in the "
+"scene file."
+msgstr "該屬性是一個腳本變數,應該被序列化並保存在場景檔中。"
+
+msgid "The property is an array."
+msgstr "該屬性為陣列。"
+
+msgid ""
+"When duplicating a resource with [method Resource.duplicate], and this flag "
+"is set on a property of that resource, the property should always be "
+"duplicated, regardless of the [code]subresources[/code] bool parameter."
+msgstr ""
+"當建立一個帶有 [method Resource.duplicate] 的 Resource,並且它的旗標是在一個 "
+"Resource 的屬性上設定的副本時候,無論 [code]subresources[/code] 為多少,該屬性"
+"永遠都會被建立為副本。"
+
+msgid ""
+"When duplicating a resource with [method Resource.duplicate], and this flag "
+"is set on a property of that resource, the property should never be "
+"duplicated, regardless of the [code]subresources[/code] bool parameter."
+msgstr ""
+"使用 [method Resource.duplicate] 複製資源時,如果該資源的某個屬性上設有這個標"
+"志,則不會對該屬性進行複製,無視 [code]subresources[/code] 布林型參數。"
+
+msgid ""
+"The property is only shown in the editor if modern renderers are supported "
+"(the Compatibility rendering method is excluded)."
+msgstr "只有在支援現代渲染器(不包含 GLES3)的情況下該屬性才會在編輯器中顯示。"
+
+msgid "The property is read-only in the [EditorInspector]."
+msgstr "該屬性在 [EditorInspector] 中唯讀。"
+
+msgid ""
+"An export preset property with this flag contains confidential information "
+"and is stored separately from the rest of the export preset configuration."
+msgstr ""
+"具有該旗標的匯出預設屬性包含機密資訊,並與匯出預設配置的其餘部分分開儲存。"
+
+msgid "Default usage (storage and editor)."
+msgstr "預設用法(儲存和編輯器)。"
+
+msgid "Default usage but without showing the property in the editor (storage)."
+msgstr "預設用法,但不在編輯器中顯示屬性(儲存)。"
+
+msgid "Flag for a normal method."
+msgstr "普通方法的旗標。"
+
+msgid "Flag for an editor method."
+msgstr "編輯器方法的旗標。"
+
+msgid "Flag for a constant method."
+msgstr "常數方法的旗標。"
+
+msgid "Flag for a virtual method."
+msgstr "虛方法的旗標。"
+
+msgid "Flag for a method with a variable number of arguments."
+msgstr "具有可變數量參數的方法的旗標。"
+
+msgid "Flag for a static method."
+msgstr "靜態方法的旗標。"
+
+msgid ""
+"Used internally. Allows to not dump core virtual methods (such as [method "
+"Object._notification]) to the JSON API."
+msgstr ""
+"內部使用。允許不將核心虛擬方法(例如 [method Object._notification])轉儲到 "
+"JSON API。"
+
+msgid "Default method flags (normal)."
+msgstr "預設方法旗標(正常)。"
+
+msgid "Variable is [code]null[/code]."
+msgstr "變數為 [code]null[/code]。"
+
+msgid "Variable is of type [bool]."
+msgstr "變數型別為 [bool]。"
+
+msgid "Variable is of type [int]."
+msgstr "變數型別為 [int]。"
+
+msgid "Variable is of type [float]."
+msgstr "變數的型別為 [float]。"
+
+msgid "Variable is of type [String]."
+msgstr "變數型別為 [String]。"
+
+msgid "Variable is of type [Vector2]."
+msgstr "變數型別為 [Vector2]。"
+
+msgid "Variable is of type [Vector2i]."
+msgstr "變數型別為 [Vector2i]。"
+
+msgid "Variable is of type [Rect2]."
+msgstr "變數型別為 [Rect2]。"
+
+msgid "Variable is of type [Rect2i]."
+msgstr "變數型別為 [Rect2i]。"
+
+msgid "Variable is of type [Vector3]."
+msgstr "變數型別為 [Vector3]。"
+
+msgid "Variable is of type [Vector3i]."
+msgstr "變數型別為 [Vector3i]。"
+
+msgid "Variable is of type [Transform2D]."
+msgstr "變數型別為 [Transform2D]。"
+
+msgid "Variable is of type [Vector4]."
+msgstr "變數型別為 [Vector4]。"
+
+msgid "Variable is of type [Vector4i]."
+msgstr "變數型別為 [Vector4i]。"
+
+msgid "Variable is of type [Plane]."
+msgstr "變數型別為 [Plane]。"
+
+msgid "Variable is of type [Quaternion]."
+msgstr "變數型別為 [Quaternion]。"
+
+msgid "Variable is of type [AABB]."
+msgstr "變數型別為 [AABB]。"
+
+msgid "Variable is of type [Basis]."
+msgstr "變數型別為 [Basis]。"
+
+msgid "Variable is of type [Transform3D]."
+msgstr "變數型別為 [Transform3D]。"
+
+msgid "Variable is of type [Projection]."
+msgstr "變數型別為 [Projection]。"
+
+msgid "Variable is of type [Color]."
+msgstr "變數型別為 [Color]。"
+
+msgid "Variable is of type [StringName]."
+msgstr "變數型別為 [StringName]。"
+
+msgid "Variable is of type [NodePath]."
+msgstr "變數型別為 [NodePath]。"
+
+msgid "Variable is of type [RID]."
+msgstr "變數型別為 [RID]。"
+
+msgid "Variable is of type [Object]."
+msgstr "變數型別為 [Object]。"
+
+msgid "Variable is of type [Callable]."
+msgstr "變數型別為 [Callable]。"
+
+msgid "Variable is of type [Signal]."
+msgstr "變數型別為 [Signal]。"
+
+msgid "Variable is of type [Dictionary]."
+msgstr "變數型別為 [Dictionary]。"
+
+msgid "Variable is of type [Array]."
+msgstr "變數型別為 [Array]。"
+
+msgid "Variable is of type [PackedByteArray]."
+msgstr "變數型別為 [PackedByteArray]。"
+
+msgid "Variable is of type [PackedInt32Array]."
+msgstr "變數型別為 [PackedInt32Array]。"
+
+msgid "Variable is of type [PackedInt64Array]."
+msgstr "變數型別為 [PackedInt64Array]。"
+
+msgid "Variable is of type [PackedFloat32Array]."
+msgstr "變數型別為 [PackedFloat32Array]。"
+
+msgid "Variable is of type [PackedFloat64Array]."
+msgstr "變數型別為 [PackedFloat64Array]。"
+
+msgid "Variable is of type [PackedStringArray]."
+msgstr "變數型別為 [PackedStringArray]。"
+
+msgid "Variable is of type [PackedVector2Array]."
+msgstr "變數型別為 [PackedVector2Array]。"
+
+msgid "Variable is of type [PackedVector3Array]."
+msgstr "變數型別為 [PackedVector3Array]。"
+
+msgid "Variable is of type [PackedColorArray]."
+msgstr "變數型別為 [PackedColorArray]。"
+
+msgid "Represents the size of the [enum Variant.Type] enum."
+msgstr "代表 [enum Variant.Type] 列舉的大小。"
+
+msgid "Equality operator ([code]==[/code])."
+msgstr "相等運算子([code]==[/code])。"
+
+msgid "Inequality operator ([code]!=[/code])."
+msgstr "不等運算子([code]!=[/code])。"
+
+msgid "Less than operator ([code]<[/code])."
+msgstr "小於運算子([code]<[/code])。"
+
+msgid "Less than or equal operator ([code]<=[/code])."
+msgstr "小於等於運算子([code]<=[/code])。"
+
+msgid "Greater than operator ([code]>[/code])."
+msgstr "大於運算子([code]>[/code])。"
+
+msgid "Greater than or equal operator ([code]>=[/code])."
+msgstr "大於等於運算子([code]>=[/code])。"
+
+msgid "Addition operator ([code]+[/code])."
+msgstr "加法運算子([code]+[/code])。"
+
+msgid "Subtraction operator ([code]-[/code])."
+msgstr "減法運算子([code]-[/code])。"
+
+msgid "Multiplication operator ([code]*[/code])."
+msgstr "乘法運算子([code]*[/code])。"
+
+msgid "Division operator ([code]/[/code])."
+msgstr "除法運算子([code]/[/code])。"
+
+msgid "Unary negation operator ([code]-[/code])."
+msgstr "一元減號運算子([code]-[/code])。"
+
+msgid "Unary plus operator ([code]+[/code])."
+msgstr "一元加號運算子([code]+[/code])。"
+
+msgid "Remainder/modulo operator ([code]%[/code])."
+msgstr "餘數/取模運算子([code]%[/code])。"
+
+msgid "Power operator ([code]**[/code])."
+msgstr "冪運算子([code]**[/code])。"
+
+msgid "Left shift operator ([code]<<[/code])."
+msgstr "左移運算子([code]<<[/code])。"
+
+msgid "Right shift operator ([code]>>[/code])."
+msgstr "右移運算子([code]>>[/code])。"
+
+msgid "Bitwise AND operator ([code]&[/code])."
+msgstr "按位與運算子([code]&[/code])。"
+
+msgid "Bitwise OR operator ([code]|[/code])."
+msgstr "按位或運算子([code]|[/code])。"
+
+msgid "Bitwise XOR operator ([code]^[/code])."
+msgstr "按位異或運算子([code]^[/code])。"
+
+msgid "Bitwise NOT operator ([code]~[/code])."
+msgstr "按位非運算子([code]~[/code])。"
+
+msgid "Logical AND operator ([code]and[/code] or [code]&&[/code])."
+msgstr "邏輯與運算子([code]and[/code] 或 [code]&&[/code])。"
+
+msgid "Logical OR operator ([code]or[/code] or [code]||[/code])."
+msgstr "邏輯或運算子([code]or[/code] 或 [code]||[/code])。"
+
+msgid "Logical XOR operator (not implemented in GDScript)."
+msgstr "邏輯異或運算子(未在 GDScript 中實作)。"
+
+msgid "Logical NOT operator ([code]not[/code] or [code]![/code])."
+msgstr "邏輯非運算子([code]not[/code] 或 [code]![/code])。"
+
+msgid "Logical IN operator ([code]in[/code])."
+msgstr "邏輯 IN 運算子([code]in[/code])。"
+
+msgid "Represents the size of the [enum Variant.Operator] enum."
+msgstr "代表 [enum Variant.Operator] 列舉的大小。"
+
+msgid "A 3D axis-aligned bounding box."
+msgstr "3D 軸對齊邊界框。"
+
+msgid ""
+"[AABB] consists of a position, a size, and several utility functions. It is "
+"typically used for fast overlap tests.\n"
+"It uses floating-point coordinates. The 2D counterpart to [AABB] is [Rect2].\n"
+"Negative values for [member size] are not supported and will not work for "
+"most methods. Use [method abs] to get an AABB with a positive size.\n"
+"[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer "
+"coordinates."
+msgstr ""
+"[AABB] 由一個位置、一個大小和若干實用函式組成。通常用於快速重疊測試。\n"
+"它使用浮點座標。[AABB] 的 2D 對應物為 [Rect2]。\n"
+"不支援負的 [member size],並且不適用於大多數方法。使用 [method abs] 獲得具有正"
+"尺寸的 AABB。\n"
+"[b]注意:[/b]與 [Rect2] 不同,[AABB] 沒有使用整數座標的變體。"
+
+msgid "Math documentation index"
+msgstr "數學文件索引"
+
+msgid "Vector math"
+msgstr "向量數學"
+
+msgid "Advanced vector math"
+msgstr "高等向量數學"
+
+msgid ""
+"Constructs a default-initialized [AABB] with default (zero) values of [member "
+"position] and [member size]."
+msgstr "預設建構 [AABB],[member position] 和 [member size] 均為預設值(零)。"
+
+msgid "Constructs an [AABB] as a copy of the given [AABB]."
+msgstr "建構給定 [AABB] 的副本。"
+
+msgid "Constructs an [AABB] from a position and size."
+msgstr "從一個位置和大小建構 [AABB] 。"
+
+msgid ""
+"Returns an AABB with equivalent position and size, modified so that the most-"
+"negative corner is the origin and the size is positive."
+msgstr "返回等價的 AABB,其原點被修正至最負數的角落,大小被修正為正數。"
+
+msgid ""
+"Returns [code]true[/code] if this [AABB] completely encloses another one."
+msgstr "該 [AABB] 完全包含另一個時,返回 [code]true[/code]。"
+
+msgid ""
+"Returns a copy of this [AABB] expanded to include a given point.\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# position (-3, 2, 0), size (1, 1, 1)\n"
+"var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))\n"
+"# position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and "
+"Vector3(0, -1, 2)\n"
+"var box2 = box.expand(Vector3(0, -1, 2))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// position (-3, 2, 0), size (1, 1, 1)\n"
+"var box = new Aabb(new Vector3(-3, 2, 0), new Vector3(1, 1, 1));\n"
+"// position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and "
+"Vector3(0, -1, 2)\n"
+"var box2 = box.Expand(new Vector3(0, -1, 2));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回該 [AABB] 的副本,該副本擴充至包含給出的點。\n"
+"[b]例子:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 位置 (-3, 2, 0),大小 (1, 1, 1)\n"
+"var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))\n"
+"# 位置 (-3, -1, 0),大小 (3, 4, 2),包含原來的 AABB 和 Vector3(0, -1, 2)\n"
+"var box2 = box.expand(Vector3(0, -1, 2))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 位置 (-3, 2, 0),大小 (1, 1, 1)\n"
+"var box = new Aabb(new Vector3(-3, 2, 0), new Vector3(1, 1, 1));\n"
+"// 位置 (-3, -1, 0),大小 (3, 4, 2),包含原來的 AABB 和 Vector3(0, -1, 2)\n"
+"var box2 = box.Expand(new Vector3(0, -1, 2));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the center of the [AABB], which is equal to [member position] + "
+"([member size] / 2)."
+msgstr "返回該 [AABB] 的中心點,等於 [member position] + ([member size] / 2)。"
+
+msgid "Gets the position of the 8 endpoints of the [AABB] in space."
+msgstr "獲取該 [AABB] 的 8 個端點的位置。"
+
+msgid "Returns the normalized longest axis of the [AABB]."
+msgstr "返回該 [AABB] 正規化後的最長軸。"
+
+msgid ""
+"Returns the index of the longest axis of the [AABB] (according to [Vector3]'s "
+"[code]AXIS_*[/code] constants)."
+msgstr ""
+"返回該 [AABB] 最長軸的索引(根據 [Vector3] 的 [code]AXIS_*[/code] 常數)。"
+
+msgid "Returns the scalar length of the longest axis of the [AABB]."
+msgstr "返回該 [AABB] 最長軸的標量長度。"
+
+msgid "Returns the normalized shortest axis of the [AABB]."
+msgstr "返回該 [AABB] 正規化後的最短軸。"
+
+msgid ""
+"Returns the index of the shortest axis of the [AABB] (according to [Vector3]::"
+"AXIS* enum)."
+msgstr ""
+"返回該 [AABB] 最短軸的索引(根據 [Vector3] 的 [code]AXIS_*[/code] 常數)。"
+
+msgid "Returns the scalar length of the shortest axis of the [AABB]."
+msgstr "返回該 [AABB] 最短軸的標量長度。"
+
+msgid ""
+"Returns the vertex of the AABB that's the farthest in a given direction. This "
+"point is commonly known as the support point in collision detection "
+"algorithms."
+msgstr "返回指定方向上的支援點。常用於碰撞偵測演算法。"
+
+msgid "Returns the volume of the [AABB]."
+msgstr "返回該 [AABB] 的體積。"
+
+msgid ""
+"Returns a copy of the [AABB] grown a given number of units towards all the "
+"sides."
+msgstr "返回 [AABB] 的副本,該副本向所有方向增長了給定數量的單位。"
+
+msgid ""
+"Returns [code]true[/code] if the [AABB] contains a point. Points on the faces "
+"of the AABB are considered included, though float-point precision errors may "
+"impact the accuracy of such checks.\n"
+"[b]Note:[/b] This method is not reliable for [AABB] with a [i]negative size[/"
+"i]. Use [method abs] to get a positive sized equivalent [AABB] to check for "
+"contained points."
+msgstr ""
+"如果 [AABB] 包含點,則返回 [code]true[/code]。AABB 表面上的點被視為包括在內,"
+"但浮點精度誤差可能會影響此類偵測的準確性。\n"
+"[b]注意:[/b]這種方法對於具有[i]負尺寸[/i]的 [AABB] 是不可靠的。使用 [method "
+"abs] 獲得一個正尺寸的等效 [AABB] 在檢查是否包含點。"
+
+msgid ""
+"Returns [code]true[/code] if the [AABB] has a surface or a length, and "
+"[code]false[/code] if the [AABB] is empty (all components of [member size] "
+"are zero or negative)."
+msgstr ""
+"如果 [AABB] 具有表面或長度,則返回 [code]true[/code];如果 [AABB] 為空"
+"([member size] 的所有分量為零或負),則返回 [code]false[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the [AABB] has a volume, and [code]false[/code] "
+"if the [AABB] is flat, empty, or has a negative [member size]."
+msgstr ""
+"如果 [AABB] 有體積,則返回 [code]true[/code];如果 [AABB] 是扁平的、空的或具有"
+"負的 [member size],則返回 [code]false[/code]。"
+
+msgid ""
+"Returns the intersection between two [AABB]. An empty AABB (size [code](0, 0, "
+"0)[/code]) is returned on failure."
+msgstr ""
+"返回兩個 [AABB] 的交疊區域。失敗時返回空的 AABB(大小為 [code](0, 0, 0)[/"
+"code])。"
+
+msgid "Returns [code]true[/code] if the [AABB] overlaps with another."
+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."
+msgstr ""
+"如果該 [AABB] 和 [param aabb] 近似相等,則返回 [code]true[/code],通過在每個分"
+"量上呼叫 [method @GlobalScope.is_equal_approx]。"
+
+msgid ""
+"Returns [code]true[/code] if this [AABB] is finite, by calling [method "
+"@GlobalScope.is_finite] on each component."
+msgstr ""
+"如果該 [AABB] 是有限的,則返回 [code]true[/code],方法是在每個分量上呼叫 "
+"[method @GlobalScope.is_finite]。"
+
+msgid "Returns a larger [AABB] that contains both this [AABB] and [param with]."
+msgstr "返回同時包含該 [AABB] 和 [param with] 的更大的 [AABB]。"
+
+msgid ""
+"Ending corner. This is calculated as [code]position + size[/code]. Setting "
+"this value will change the size."
+msgstr ""
+"終點角。通過 [code]position + size[/code] 計算而來。設定該值會修改大小。"
+
+msgid "Beginning corner. Typically has values lower than [member end]."
+msgstr "起點角。通常比 [member end] 小。"
+
+msgid ""
+"Size from [member position] to [member end]. Typically, all components are "
+"positive.\n"
+"If the size is negative, you can use [method abs] to fix it."
+msgstr ""
+"從 [member position] 到 [member end] 的大小。通常所有分量都是正數。\n"
+"如果大小為負,可以用 [method abs] 修正。"
+
+msgid ""
+"Returns [code]true[/code] if the AABBs 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 ""
+"如果 AABB 不相等,則返回 [code]true[/code]。\n"
+"[b]注意:[/b]由於浮點數精度誤差,請考慮改用 [method is_equal_approx],會更可"
+"靠。"
+
+msgid ""
+"Returns [code]true[/code] if the AABBs are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"如果 AABB 完全相等,則返回 [code]true[/code]。\n"
+"[b]注意:[/b]由於浮點數精度誤差,請考慮改用 [method is_equal_approx],會更可"
+"靠。"
+
+msgid "A base dialog used for user notification."
+msgstr "用於使用者通知的基本對話方塊。"
+
+msgid ""
+"The default use of [AcceptDialog] is to allow it to only be accepted or "
+"closed, with the same result. However, the [signal confirmed] and [signal "
+"canceled] signals allow to make the two actions different, and the [method "
+"add_button] method allows to add custom buttons and actions."
+msgstr ""
+"[AcceptDialog] 的預設用途是允許它只被接受或關閉,結果相同。但是,[signal "
+"confirmed] 和 [signal canceled] 訊號允許使兩個動作不同,[method add_button] 方"
+"法允許新增自訂按鈕和動作。"
+
+msgid ""
+"Adds a button with label [param text] and a custom [param action] to the "
+"dialog and returns the created button. [param action] will be passed to the "
+"[signal custom_action] signal when pressed.\n"
+"If [code]true[/code], [param right] will place the button to the right of any "
+"sibling buttons.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+"將帶有標籤 [param text] 和自訂 [param action] 的按鈕新增到對話方塊,並返回該建"
+"立的按鈕。[param action] 將在按鈕被按下時傳遞給 [signal custom_action] 信"
+"號。\n"
+"如果 [param right] 為 [code]true[/code],按鈕會被放置在所有同級按鈕的右側。\n"
+"可以使用 [method remove_button] 方法從對話方塊中移除使用該方法建立的按鈕。"
+
+msgid ""
+"Adds a button with label [param name] and a cancel action to the dialog and "
+"returns the created button.\n"
+"You can use [method remove_button] method to remove a button created with "
+"this method from the dialog."
+msgstr ""
+"在對話方塊中新增一個帶有標籤 [param name] 和取消動作的按鈕,並返回建立的按"
+"鈕。\n"
+"你可以使用 [method remove_button] 方法從對話方塊中刪除用此方法建立的按鈕。"
+
+msgid ""
+"Returns the label used for built-in text.\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 CanvasItem.visible] property."
+msgstr ""
+"返回內建文字所使用的標籤。\n"
+"[b]警告:[/b]這是個必要的內部節點,移除並釋放它有可能造成當機。如果你希望隱藏"
+"它或它的任意一個子節點,請使用它們的 [member CanvasItem.visible] 屬性。"
+
+msgid ""
+"Returns the OK [Button] instance.\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 CanvasItem.visible] property."
+msgstr ""
+"返回確定按鈕 [Button] 實例。\n"
+"[b]警告:[/b]這是個必要的內部節點,移除並釋放它有可能造成當機。如果你希望隱藏"
+"它或它的任意一個子節點,請使用它們的 [member CanvasItem.visible] 屬性。"
+
+msgid ""
+"Registers a [LineEdit] in the dialog. When the enter key is pressed, the "
+"dialog will be accepted."
+msgstr "在對話方塊中註冊 [LineEdit]。當按下確認鍵時,對話方塊將被接受。"
+
+msgid ""
+"Removes the [param button] from the dialog. Does NOT free the [param button]. "
+"The [param button] must be a [Button] added with [method add_button] or "
+"[method add_cancel_button] method. After removal, pressing the [param button] "
+"will no longer emit this dialog's [signal custom_action] or [signal canceled] "
+"signals."
+msgstr ""
+"從對話方塊中移除 [param button]。但不釋放該 [param button] 對象。[param "
+"button] 必須是用 [method add_button] 或 [method add_cancel_button] 方法新增的 "
+"[Button]。移除後,按下該 [param button] 將不再發出該對話方塊的 [signal "
+"custom_action] 或 [signal canceled] 訊號。"
+
+msgid "Sets autowrapping for the text in the dialog."
+msgstr "為對話方塊中的文字設定自動換行。"
+
+msgid ""
+"If [code]true[/code], the dialog will be hidden when the escape key "
+"([constant KEY_ESCAPE]) is pressed."
+msgstr ""
+"如果為 [code]true[/code],當按下逸出鍵([constant KEY_ESCAPE])時,對話方塊將"
+"被隱藏。"
+
+msgid ""
+"If [code]true[/code], the dialog is hidden when the OK button is pressed. You "
+"can set it to [code]false[/code] if you want to do e.g. input validation when "
+"receiving the [signal confirmed] signal, and handle hiding the dialog in your "
+"own logic.\n"
+"[b]Note:[/b] Some nodes derived from this class can have a different default "
+"value, and potentially their own built-in logic overriding this setting. For "
+"example [FileDialog] defaults to [code]false[/code], and has its own input "
+"validation code that is called when you press OK, which eventually hides the "
+"dialog if the input is valid. As such, this property can't be used in "
+"[FileDialog] to disable hiding the dialog when pressing OK."
+msgstr ""
+"如果為 [code]true[/code],按下確定按鈕時對話方塊將隱藏。如果要在收到 [signal "
+"confirmed] 訊號時執行類似輸入驗證的操作,則可以將其設定為 [code]false[/code],"
+"然後在自己的邏輯中處理對話方塊的隱藏。\n"
+"[b]注意:[/b]從此類衍生的某些節點可以具有不同的預設值,並且可能有自己的內建邏"
+"輯會覆蓋此設定。例如 [FileDialog] 預設其為 [code]false[/code],並在按下確定時"
+"實作了自己的輸入驗證程式碼,如果輸入有效,最終將隱藏對話方塊。因此,不能在 "
+"[FileDialog] 中使用此屬性來禁止在按確定時隱藏對話方塊。"
+
+msgid "The text displayed by the dialog."
+msgstr "對話方塊顯示的文字。"
+
+msgid "The text displayed by the OK button (see [method get_ok_button])."
+msgstr "確定按鈕(參見 [method get_ok_button])顯示的文字。"
+
+msgid ""
+"Emitted when the dialog is closed or the button created with [method "
+"add_cancel_button] is pressed."
+msgstr "當對話方塊關閉或按下 [method add_cancel_button] 建立的按鈕時發出。"
+
+msgid "Emitted when the dialog is accepted, i.e. the OK button is pressed."
+msgstr "接受對話方塊時,即按下確定按鈕時發出。"
+
+msgid "Emitted when a custom button is pressed. See [method add_button]."
+msgstr "按下自訂按鈕時發出。見 [method add_button]。"
+
+msgid ""
+"The size of the vertical space between the dialog's content and the button "
+"row."
+msgstr "對話方塊內容和按鈕行之間的垂直空間的大小。"
+
+msgid "The panel that fills the background of the window."
+msgstr "填充視窗背景的面板。"
+
+msgid "Provides access to AES encryption/decryption of raw data."
+msgstr "提供對原始資料的 AES 加密/解密的存取。"
+
+msgid ""
+"This class holds the context information required for encryption and "
+"decryption operations with AES (Advanced Encryption Standard). Both AES-ECB "
+"and AES-CBC modes are supported.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"extends Node\n"
+"\n"
+"var aes = AESContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"My secret key!!!\" # Key must be either 16 or 32 bytes.\n"
+" var data = \"My secret text!!\" # Data size must be multiple of 16 bytes, "
+"apply padding if needed.\n"
+" # Encrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())\n"
+" var encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # Decrypt ECB\n"
+" aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())\n"
+" var decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check ECB\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"\n"
+" var iv = \"My secret iv!!!!\" # IV must be of exactly 16 bytes.\n"
+" # Encrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # Decrypt CBC\n"
+" aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # Check CBC\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"using Godot;\n"
+"using System.Diagnostics;\n"
+"\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" private AesContext _aes = new AesContext();\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" string key = \"My secret key!!!\"; // Key must be either 16 or 32 "
+"bytes.\n"
+" string data = \"My secret text!!\"; // Data size must be multiple of "
+"16 bytes, apply padding if needed.\n"
+" // Encrypt ECB\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());\n"
+" byte[] encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // Decrypt ECB\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());\n"
+" byte[] decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // Check ECB\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+"\n"
+" string iv = \"My secret iv!!!!\"; // IV must be of exactly 16 bytes.\n"
+" // Encrypt CBC\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // Decrypt CBC\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // Check CBC\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"這個類存放的是進行 AES(Advanced Encryption Standard,高級加密標準)加解密所需"
+"的本文信息。支援 AES-ECB 和 AES-CBC 兩種模式。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"extends Node\n"
+"\n"
+"var aes = AESContext.new()\n"
+"\n"
+"func _ready():\n"
+" var key = \"My secret key!!!\" # 金鑰必須是 16 或 32 位元組。\n"
+" var data = \"My secret text!!\" # 資料大小必須是 16 位元組的倍數,需要時添"
+"加補白。\n"
+" # ECB 加密\n"
+" aes.start(AESContext.MODE_ECB_ENCRYPT, key.to_utf8_buffer())\n"
+" var encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # ECB 解密\n"
+" aes.start(AESContext.MODE_ECB_DECRYPT, key.to_utf8_buffer())\n"
+" var decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # ECB 校驗\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"\n"
+" var iv = \"My secret iv!!!!\" # IV 必須是 16 位元組。\n"
+" # CBC 加密\n"
+" aes.start(AESContext.MODE_CBC_ENCRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" encrypted = aes.update(data.to_utf8_buffer())\n"
+" aes.finish()\n"
+" # CBC 解密\n"
+" aes.start(AESContext.MODE_CBC_DECRYPT, key.to_utf8_buffer(), iv."
+"to_utf8_buffer())\n"
+" decrypted = aes.update(encrypted)\n"
+" aes.finish()\n"
+" # CBC 校驗\n"
+" assert(decrypted == data.to_utf8_buffer())\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"using Godot;\n"
+"using System.Diagnostics;\n"
+"\n"
+"public partial class MyNode : Node\n"
+"{\n"
+" private AesContext _aes = new AesContext();\n"
+"\n"
+" public override void _Ready()\n"
+" {\n"
+" string key = \"My secret key!!!\"; // 金鑰必須是 16 或 32 位元組。\n"
+" string data = \"My secret text!!\"; // 資料大小必須是 16 位元組的倍"
+"數,需要時新增補白。\n"
+" // ECB 加密\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer());\n"
+" byte[] encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // ECB 解密\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer());\n"
+" byte[] decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // ECB 校驗\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+"\n"
+" string iv = \"My secret iv!!!!\"; // IV 必須是 16 位元組。\n"
+" // CBC 加密\n"
+" _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" encrypted = _aes.Update(data.ToUtf8Buffer());\n"
+" _aes.Finish();\n"
+" // CBC 解密\n"
+" _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv."
+"ToUtf8Buffer());\n"
+" decrypted = _aes.Update(encrypted);\n"
+" _aes.Finish();\n"
+" // CBC 校驗\n"
+" Debug.Assert(decrypted == data.ToUtf8Buffer());\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Close this AES context so it can be started again. See [method start]."
+msgstr "關閉此 AES 本文,以便可以再次啟動它。見 [method start]。"
+
+msgid ""
+"Get the current IV state for this context (IV gets updated when calling "
+"[method update]). You normally don't need this function.\n"
+"[b]Note:[/b] This function only makes sense when the context is started with "
+"[constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
+msgstr ""
+"獲取此本文的目前 IV 狀態(呼叫 [method update] 時會更新 IV)。通常不需要此函"
+"式。\n"
+"[b]注意:[/b]僅當本文以 [constant MODE_CBC_ENCRYPT] 或 [constant "
+"MODE_CBC_DECRYPT] 開頭時,此函式才有意義。"
+
+msgid ""
+"Start the AES context in the given [param mode]. A [param key] of either 16 "
+"or 32 bytes must always be provided, while an [param iv] (initialization "
+"vector) of exactly 16 bytes, is only needed when [param mode] is either "
+"[constant MODE_CBC_ENCRYPT] or [constant MODE_CBC_DECRYPT]."
+msgstr ""
+"在給定的 [param mode] 中啟動 AES 本文。必須始終提供 16 或 32 位元組的 [param "
+"key],而僅當 [param mode] 為 [constant MODE_CBC_ENCRYPT] 或 [constant "
+"MODE_CBC_DECRYPT] 時,才需要正好為 16 位元組的 [param iv](初始化向量)。"
+
+msgid ""
+"Run the desired operation for this AES context. Will return a "
+"[PackedByteArray] containing the result of encrypting (or decrypting) the "
+"given [param src]. See [method start] for mode of operation.\n"
+"[b]Note:[/b] The size of [param src] must be a multiple of 16. Apply some "
+"padding if needed."
+msgstr ""
+"運作此 AES 本文所需的操作。將返回包含加密(或解密)給定 [param src] 結果的 "
+"[PackedByteArray] 。有關操作模式,請參閱 [method start]。\n"
+"[b]注意:[/b][param src] 的大小必須是 16 倍的倍數。如果需要,套用一些填充。"
+
+msgid "AES electronic codebook encryption mode."
+msgstr "AES 電子密碼簿加密模式。"
+
+msgid "AES electronic codebook decryption mode."
+msgstr "AES 電子密碼簿解密模式。"
+
+msgid "AES cipher blocker chaining encryption mode."
+msgstr "AES 密碼封鎖器鏈式加密模式。"
+
+msgid "AES cipher blocker chaining decryption mode."
+msgstr "AES 密碼封鎖器鏈式解密模式。"
+
+msgid "Maximum value for the mode enum."
+msgstr "模式列舉的最大值。"
+
+msgid ""
+"A 2D physics body that can't be moved by external forces. When moved "
+"manually, it affects other bodies in its path."
+msgstr "無法被外力移動的 2D 物理物體。手動移動時會影響路徑上的其他物體。"
+
+msgid ""
+"An animatable 2D physics body. It can't be moved by external forces or "
+"contacts, but can be moved manually by other means such as code, "
+"[AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform2D].\n"
+"When [AnimatableBody2D] is moved, its linear and angular velocity are "
+"estimated and used to affect other physics bodies in its path. This makes it "
+"useful for moving platforms, doors, and other moving objects."
+msgstr ""
+"可動畫的 2D 物理物體。無法因外力或接觸而移動,但可以通過程式碼、"
+"[AnimationPlayer]([member AnimationPlayer.playback_process_mode] 設為 "
+"[code]ANIMATION_PROCESS_PHYSICS[/code])、[RemoteTransform2D] 等方法手動移"
+"動。\n"
+"[AnimatableBody2D] 發生移動時,會對線速度和角速度進行估算,並用於影響其路徑上"
+"的其他物理物體。因此適用於移動平臺、門等移動的物件。"
+
+msgid ""
+"If [code]true[/code], the body's movement will be synchronized to the physics "
+"frame. This is useful when animating movement via [AnimationPlayer], for "
+"example on moving platforms. Do [b]not[/b] use together with [method "
+"PhysicsBody2D.move_and_collide]."
+msgstr ""
+"如果為 [code]true[/code],則物體的運動將與物理影格同步。當通過 "
+"[AnimationPlayer] 為運動設定動畫時,例如在移動的平臺上,這個功能很有用。[b]不"
+"要[/b]與[method PhysicsBody2D.move_and_collide]一起使用。"
+
+msgid ""
+"A 3D physics body that can't be moved by external forces. When moved "
+"manually, it affects other bodies in its path."
+msgstr "無法被外力移動的 3D 物理物體。手動移動時會影響路徑上的其他物體。"
+
+msgid ""
+"An animatable 3D physics body. It can't be moved by external forces or "
+"contacts, but can be moved manually by other means such as code, "
+"[AnimationMixer]s (with [member AnimationMixer.callback_mode_process] set to "
+"[constant AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]), and "
+"[RemoteTransform3D].\n"
+"When [AnimatableBody3D] is moved, its linear and angular velocity are "
+"estimated and used to affect other physics bodies in its path. This makes it "
+"useful for moving platforms, doors, and other moving objects."
+msgstr ""
+"可動畫的 3D 物理物體。無法因外力或接觸而移動,但可以通過程式碼、"
+"[AnimationPlayer]([member AnimationPlayer.playback_process_mode] 設為 "
+"[code]ANIMATION_PROCESS_PHYSICS[/code])、[RemoteTransform3D] 等方法手動移"
+"動。\n"
+"[AnimatableBody3D] 發生移動時,會對線速度和角速度進行估算,並用於影響其路徑上"
+"的其他物理物體。因此適用於移動平臺、門等移動的物件。"
+
+msgid "3D Physics Tests Demo"
+msgstr "3D 物理測試演示"
+
+msgid "Third Person Shooter Demo"
+msgstr "第三人稱射擊演示"
+
+msgid "3D Voxel Demo"
+msgstr "3D 體素演示"
+
+msgid ""
+"If [code]true[/code], the body's movement will be synchronized to the physics "
+"frame. This is useful when animating movement via [AnimationPlayer], for "
+"example on moving platforms. Do [b]not[/b] use together with [method "
+"PhysicsBody3D.move_and_collide]."
+msgstr ""
+"如果為 [code]true[/code],則實體的運動將與物理影格同步。當通過 "
+"[AnimationPlayer] 為運動設定動畫時,例如在移動的平臺上,這個功能很有用。請[b]"
+"不要[/b]與 [method PhysicsBody3D.move_and_collide] 函式一起使用。"
+
+msgid ""
+"Sprite node that contains multiple textures as frames to play for animation."
+msgstr "包含多個紋理作為動畫播放影格的 Sprite 節點。"
+
+msgid ""
+"[AnimatedSprite2D] is similar to the [Sprite2D] node, except it carries "
+"multiple textures as animation frames. Animations are created using a "
+"[SpriteFrames] resource, which allows you to import image files (or a folder "
+"containing said files) to provide the animation frames for the sprite. The "
+"[SpriteFrames] resource can be configured in the editor via the SpriteFrames "
+"bottom panel."
+msgstr ""
+"[AnimatedSprite2D] 與 [Sprite2D] 節點類似,但是包含多張紋理,可用作動畫影格。"
+"動畫使用 [SpriteFrames] 資源建立,可以匯入影像檔(或包含此類檔的資料夾)為該精"
+"靈提供動畫影格。可以在編輯器的“動畫影格”底部面板中配置 [SpriteFrames] 資源。"
+
+msgid "2D Sprite animation"
+msgstr "2D 精靈動畫"
+
+msgid "2D Dodge The Creeps Demo"
+msgstr "2D Dodge The Creeps 演示"
+
+msgid ""
+"Returns the actual playing speed of current animation or [code]0[/code] if "
+"not playing. This speed is the [member speed_scale] property multiplied by "
+"[code]custom_speed[/code] argument specified when calling the [method play] "
+"method.\n"
+"Returns a negative value if the current animation is playing backwards."
+msgstr ""
+"返回目前動畫的實際播放速度,未播放時則為 [code]0[/code]。這個速度是 [member "
+"speed_scale] 屬性乘以呼叫 [method play] 時指定的 [code]custom_speed[/code] 參"
+"數。\n"
+"如果目前動畫是倒放的,則返回負值。"
+
+msgid ""
+"Returns [code]true[/code] if an animation is currently playing (even if "
+"[member speed_scale] and/or [code]custom_speed[/code] are [code]0[/code])."
+msgstr ""
+"如果動畫目前正在播放,則返回 [code]true[/code](即便 [member speed_scale] 和/"
+"或 [code]custom_speed[/code] 為 [code]0[/code])。"
+
+msgid ""
+"Pauses the currently playing animation. The [member frame] and [member "
+"frame_progress] will be kept and calling [method play] or [method "
+"play_backwards] without arguments will resume the animation from the current "
+"playback position.\n"
+"See also [method stop]."
+msgstr ""
+"暫停目前正在播放的動畫。會保留 [member frame] 和 [member frame_progress],不帶"
+"參數呼叫 [method play] 或 [method play_backwards] 會從目前播放位置恢復播放該動"
+"畫。\n"
+"另見 [method stop]。"
+
+msgid ""
+"Plays the animation with key [param name]. If [param custom_speed] is "
+"negative and [param from_end] is [code]true[/code], the animation will play "
+"backwards (which is equivalent to calling [method play_backwards]).\n"
+"If this method is called with that same animation [param name], or with no "
+"[param name] parameter, the assigned animation will resume playing if it was "
+"paused."
+msgstr ""
+"播放名稱鍵為 [param name] 的動畫。如果 [param custom_speed] 為負且 [param "
+"from_end] 為 [code]true[/code],則該動畫會倒放(等價於 [method "
+"play_backwards])。\n"
+"如果呼叫這個方法時使用了相同的動畫名稱 [param name] 或者沒有使用 [param name] "
+"參數,則會繼續播放已暫停的分配動畫。"
+
+msgid ""
+"Plays the animation with key [param name] in reverse.\n"
+"This method is a shorthand for [method play] with [code]custom_speed = -1.0[/"
+"code] and [code]from_end = true[/code], so see its description for more "
+"information."
+msgstr ""
+"倒放名稱鍵為 [param name] 的動畫。\n"
+"這個方法是簡寫,等價於呼叫 [method play] 時使用 [code]custom_speed = -1.0[/"
+"code] 和 [code]from_end = true[/code],所以更多資訊請參閱其描述。"
+
+msgid ""
+"The setter of [member frame] resets the [member frame_progress] to [code]0.0[/"
+"code] implicitly, but this method avoids that.\n"
+"This is useful when you want to carry over the current [member "
+"frame_progress] to another [member frame].\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Change the animation with keeping the frame index and progress.\n"
+"var current_frame = animated_sprite.get_frame()\n"
+"var current_progress = animated_sprite.get_frame_progress()\n"
+"animated_sprite.play(\"walk_another_skin\")\n"
+"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"設定 [member frame] 時會隱式將 [member frame_progress] 重設為 [code]0.0[/"
+"code],但這個方法可以避免。\n"
+"如果你想要把目前的 [member frame_progress] 帶到其他 [member frame] 中,就會非"
+"常有用。\n"
+"[b]範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 更改動畫的同時保留影格索引和進度。\n"
+"var current_frame = animated_sprite.get_frame()\n"
+"var current_progress = animated_sprite.get_frame_progress()\n"
+"animated_sprite.play(\"walk_another_skin\")\n"
+"animated_sprite.set_frame_and_progress(current_frame, current_progress)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Stops the currently playing animation. The animation position is reset to "
+"[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/"
+"code]. See also [method pause]."
+msgstr ""
+"停止目前正在播放的動畫。會將動畫的位置重設為 [code]0[/code],並將 "
+"[code]custom_speed[/code] 重設為 [code]1.0[/code]。另見 [method pause]。"
+
+msgid ""
+"The current animation from the [member sprite_frames] resource. If this value "
+"is changed, the [member frame] counter and the [member frame_progress] are "
+"reset."
+msgstr ""
+"目前動畫,來自 [member sprite_frames]。如果更改了這個值,會重設 [member "
+"frame] 計數和 [member frame_progress]。"
+
+msgid "The key of the animation to play when the scene loads."
+msgstr "場景載入時要播放的動畫名稱。"
+
+msgid "If [code]true[/code], texture will be centered."
+msgstr "如果為 [code]true[/code],紋理將被居中。"
+
+msgid "If [code]true[/code], texture is flipped horizontally."
+msgstr "如果為 [code]true[/code],紋理將被水平翻轉。"
+
+msgid "If [code]true[/code], texture is flipped vertically."
+msgstr "如果為 [code]true[/code],紋理將被垂直翻轉。"
+
+msgid ""
+"The displayed animation frame's index. Setting this property also resets "
+"[member frame_progress]. If this is not desired, use [method "
+"set_frame_and_progress]."
+msgstr ""
+"所顯示動畫影格的索引。設定這個屬性會重設 [member frame_progress]。如果不希望這"
+"樣,請使用 [method set_frame_and_progress]。"
+
+msgid ""
+"The progress value between [code]0.0[/code] and [code]1.0[/code] until the "
+"current frame transitions to the next frame. If the animation is playing "
+"backwards, the value transitions from [code]1.0[/code] to [code]0.0[/code]."
+msgstr ""
+"目前影格過渡到下一影格的進度值,在 [code]0.0[/code] 和 [code]1.0[/code] 之間。"
+"如果動畫是倒放的,則該值是從 [code]1.0[/code] 到 [code]0.0[/code]。"
+
+msgid "The texture's drawing offset."
+msgstr "紋理的繪圖偏移量。"
+
+msgid ""
+"The speed scaling ratio. For example, if this value is [code]1[/code], then "
+"the animation plays at normal speed. If it's [code]0.5[/code], then it plays "
+"at half speed. If it's [code]2[/code], then it plays at double speed.\n"
+"If set to a negative value, the animation is played in reverse. If set to "
+"[code]0[/code], the animation will not advance."
+msgstr ""
+"速度縮放比。例如,如果該值為 [code]1[/code],則動畫以正常速度播放。如果它是 "
+"[code]0.5[/code],那麼它會半速播放。如果是 [code]2[/code],則會以雙倍速度播"
+"放。\n"
+"如果設定為負值,則動畫反向播放。如果設定為[code]0[/code],則動畫不會前進。"
+
+msgid ""
+"The [SpriteFrames] resource containing the animation(s). Allows you the "
+"option to load, edit, clear, make unique and save the states of the "
+"[SpriteFrames] resource."
+msgstr ""
+"包含動畫的 [SpriteFrames] 資源。可以對 [SpriteFrames] 資源進行載入、編輯、清"
+"空、唯一化、保存狀態等操作。"
+
+msgid "Emitted when [member animation] changes."
+msgstr "當 [member animation] 更改時發出。"
+
+msgid ""
+"Emitted when the animation reaches the end, or the start if it is played in "
+"reverse. When the animation finishes, it pauses the playback."
+msgstr ""
+"當動畫到達結尾時,或者如果反向播放則到達起點時發出。當動畫結束時,它會暫停播"
+"放。"
+
+msgid "Emitted when the animation loops."
+msgstr "當動畫迴圈播放時發出。"
+
+msgid "Emitted when [member frame] changes."
+msgstr "[member frame] 更改時發出。"
+
+msgid "Emitted when [member sprite_frames] changes."
+msgstr "當 [member sprite_frames] 更改時發出。"
+
+msgid ""
+"2D sprite node in 3D world, that can use multiple 2D textures for animation."
+msgstr "3D 世界中的 2D 精靈節點,可以使用多個 2D 紋理進行動畫處理。"
+
+msgid ""
+"[AnimatedSprite3D] is similar to the [Sprite3D] node, except it carries "
+"multiple textures as animation [member sprite_frames]. Animations are created "
+"using a [SpriteFrames] resource, which allows you to import image files (or a "
+"folder containing said files) to provide the animation frames for the sprite. "
+"The [SpriteFrames] resource can be configured in the editor via the "
+"SpriteFrames bottom panel."
+msgstr ""
+"[AnimatedSprite3D] 與 [Sprite3D] 節點類似,但是包含多張紋理,可用作動畫 "
+"[member sprite_frames]。動畫使用 [SpriteFrames] 資源建立,可以匯入影像檔(或包"
+"含此類檔的資料夾)為該精靈提供動畫影格。可以在編輯器的“動畫影格”底部面板中配"
+"置 [SpriteFrames] 資源。"
+
+msgid "2D Sprite animation (also applies to 3D)"
+msgstr "2D 精靈動畫(也適用於 3D)"
+
+msgid "Proxy texture for simple frame-based animations."
+msgstr "用於簡單影格動畫的代理紋理。"
+
+msgid ""
+"[AnimatedTexture] is a resource format for frame-based animations, where "
+"multiple textures can be chained automatically with a predefined delay for "
+"each frame. Unlike [AnimationPlayer] or [AnimatedSprite2D], it isn't a "
+"[Node], but has the advantage of being usable anywhere a [Texture2D] resource "
+"can be used, e.g. in a [TileSet].\n"
+"The playback of the animation is controlled by the [member speed_scale] "
+"property, as well as each frame's duration (see [method set_frame_duration]). "
+"The animation loops, i.e. it will restart at frame 0 automatically after "
+"playing the last frame.\n"
+"[AnimatedTexture] currently requires all frame textures to have the same "
+"size, otherwise the bigger ones will be cropped to match the smallest one.\n"
+"[b]Note:[/b] AnimatedTexture doesn't support using [AtlasTexture]s. Each "
+"frame needs to be a separate [Texture2D].\n"
+"[b]Warning:[/b] The current implementation is not efficient for the modern "
+"renderers.\n"
+"[i]Deprecated.[/i] This class is deprecated, and might be removed in a future "
+"release."
+msgstr ""
+"[AnimatedTexture] 是一種用於影格動畫的資源格式,其中多個紋理可以自動連結,每個"
+"影格都有預定義的延遲。與 [AnimationPlayer] 或 [AnimatedSprite2D] 不同,它不是 "
+"[Node],但具有可在任何可以使用 [Texture2D] 資源的地方使用的優勢,例如在 "
+"[TileSet] 中。\n"
+"動畫的播放由 [member speed_scale] 屬性以及每影格的持續時間(見 [method "
+"set_frame_duration])控制。動畫是迴圈播放的,即它會在播放完最後一影格後自動從"
+"第 0 影格重新開始。\n"
+"[AnimatedTexture] 目前要求所有影格的紋理具有相同的大小,否則較大的紋理將被裁剪"
+"以配對最小的紋理。\n"
+"[b]注意:[/b]AnimatedTexture 不支援使用 [AtlasTexture]。 每個影格都需要是一個"
+"單獨的 [Texture2D]。\n"
+"[b]警告:[/b]目前的實作對於現代渲染器來說效率不高。\n"
+"[i]已廢棄。[/i]該類已廢棄,可能在未來的版本中移除。"
+
+msgid "Returns the given [param frame]'s duration, in seconds."
+msgstr "返回給定的 [param frame] 的持續時間,以秒為單位。"
+
+msgid "Returns the given frame's [Texture2D]."
+msgstr "返回給定影格的 [Texture2D]。"
+
+msgid ""
+"Sets the duration of any given [param frame]. The final duration is affected "
+"by the [member speed_scale]. If set to [code]0[/code], the frame is skipped "
+"during playback."
+msgstr ""
+"設定任何給定 [param frame] 的持續時間。最終的持續時間受 [member speed_scale] "
+"影響。如果設定為 [code]0[/code],則該影格在播放過程中被跳過。"
+
+msgid ""
+"Assigns a [Texture2D] to the given frame. Frame IDs start at 0, so the first "
+"frame has ID 0, and the last frame of the animation has ID [member frames] - "
+"1.\n"
+"You can define any number of textures up to [constant MAX_FRAMES], but keep "
+"in mind that only frames from 0 to [member frames] - 1 will be part of the "
+"animation."
+msgstr ""
+"將 [Texture2D] 分配給給定的影格。影格 ID 從 0 開始,因此第一影格的 ID 為 0,動"
+"畫的最後一影格的 ID 為 [member frames] - 1。\n"
+"最多可以定義 [constant MAX_FRAMES] 個紋理,但要記住,只有 0 到 [member "
+"frames] - 1 的影格會成為動畫的一部分。"
+
+msgid ""
+"Sets the currently visible frame of the texture. Setting this frame while "
+"playing resets the current frame time, so the newly selected frame plays for "
+"its whole configured frame duration."
+msgstr ""
+"設定紋理的目前可見影格。在播放時設定此影格會重設目前影格時間,因此新選擇的影格"
+"將播放為其配置的整個影格持續時間。"
+
+msgid ""
+"Number of frames to use in the animation. While you can create the frames "
+"independently with [method set_frame_texture], you need to set this value for "
+"the animation to take new frames into account. The maximum number of frames "
+"is [constant MAX_FRAMES]."
+msgstr ""
+"動畫中要使用的影格數。雖然你可以使用 [method set_frame_texture] 獨立建立影格,"
+"但是你需要為動畫設定這個值,才能考慮到新影格。最大影格數為 [constant "
+"MAX_FRAMES]。"
+
+msgid ""
+"If [code]true[/code], the animation will only play once and will not loop "
+"back to the first frame after reaching the end. Note that reaching the end "
+"will not set [member pause] to [code]true[/code]."
+msgstr ""
+"如果為 [code]true[/code],則動畫將只播放一次,並且在到達結尾後將不會迴圈回到第"
+"一影格。請注意,到達終點不會將 [member pause] 設定為 [code]true[/code]。"
+
+msgid ""
+"If [code]true[/code], the animation will pause where it currently is (i.e. at "
+"[member current_frame]). The animation will continue from where it was paused "
+"when changing this property to [code]false[/code]."
+msgstr ""
+"如果為 [code]true[/code],則動畫將暫停在目前位置(即 [member "
+"current_frame])。將此屬性更改為 [code]false[/code] 時,動畫將從暫停處繼續播"
+"放。"
+
+msgid ""
+"The animation speed is multiplied by this value. If set to a negative value, "
+"the animation is played in reverse."
+msgstr "動畫速度將乘以該值。如果設定為負值,則動畫反向播放。"
+
+msgid ""
+"The maximum number of frames supported by [AnimatedTexture]. If you need more "
+"frames in your animation, use [AnimationPlayer] or [AnimatedSprite2D]."
+msgstr ""
+"[AnimatedTexture] 支援的最大影格數。如果動畫需要更多影格,請使用 "
+"[AnimationPlayer] 或 [AnimatedSprite2D]。"
+
+msgid "Holds data that can be used to animate anything in the engine."
+msgstr "存放的是用於對引擎中的任何物件進行動畫處理的資料。"
+
+msgid ""
+"This resource holds data that can be used to animate anything in the engine. "
+"Animations are divided into tracks and each track must be linked to a node. "
+"The state of that node can be changed through time, by adding timed keys "
+"(events) to the track.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# This creates an animation that makes the node \"Enemy\" move to the right "
+"by\n"
+"# 100 pixels in 0.5 seconds.\n"
+"var animation = Animation.new()\n"
+"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
+"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
+"animation.track_insert_key(track_index, 0.0, 0)\n"
+"animation.track_insert_key(track_index, 0.5, 100)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// This creates an animation that makes the node \"Enemy\" move to the right "
+"by\n"
+"// 100 pixels in 0.5 seconds.\n"
+"var animation = new Animation();\n"
+"int trackIndex = animation.AddTrack(Animation.TrackType.Value);\n"
+"animation.TrackSetPath(trackIndex, \"Enemy:position:x\");\n"
+"animation.TrackInsertKey(trackIndex, 0.0f, 0);\n"
+"animation.TrackInsertKey(trackIndex, 0.5f, 100);\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"Animations are just data containers, and must be added to nodes such as an "
+"[AnimationPlayer] to be played back. Animation tracks have different types, "
+"each with its own set of dedicated methods. Check [enum TrackType] to see "
+"available types.\n"
+"[b]Note:[/b] For 3D position/rotation/scale, using the dedicated [constant "
+"TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] "
+"track types instead of [constant TYPE_VALUE] is recommended for performance "
+"reasons."
+msgstr ""
+"這個資源存放的是用於對引擎中的任何物件進行動畫處理的資料。動畫分為軌道,軌道必"
+"須與節點關聯。向軌道新增定時關鍵影格(事件)後,節點的狀態可以隨時間變化。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 建立動畫,讓“Enemy”節點在 0.5 秒內\n"
+"# 向右移動 100 圖元。\n"
+"var animation = Animation.new()\n"
+"var track_index = animation.add_track(Animation.TYPE_VALUE)\n"
+"animation.track_set_path(track_index, \"Enemy:position:x\")\n"
+"animation.track_insert_key(track_index, 0.0, 0)\n"
+"animation.track_insert_key(track_index, 0.5, 100)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"# 建立動畫,讓“Enemy”節點在 0.5 秒內\n"
+"# 向右移動 100 圖元。\n"
+"var animation = new Animation();\n"
+"int trackIndex = animation.AddTrack(Animation.TrackType.Value);\n"
+"animation.TrackSetPath(trackIndex, \"Enemy:position:x\");\n"
+"animation.TrackInsertKey(trackIndex, 0.0f, 0);\n"
+"animation.TrackInsertKey(trackIndex, 0.5f, 100);\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"動畫只是資料的容器,必須新增至 [AnimationPlayer] 等節點才能進行播放。動畫軌道"
+"分為不同的型別,不同的型別有各自不同的專屬方法。可用的型別請查看 [enum "
+"TrackType]。\n"
+"[b]注意:[/b]對於 3D 的位置、旋轉、縮放,推薦使用專門的 [constant "
+"TYPE_POSITION_3D]、[constant TYPE_ROTATION_3D]、[constant TYPE_SCALE_3D] 軌道"
+"型別,不要使用 [constant TYPE_VALUE],性能更高。"
+
+msgid "Animation documentation index"
+msgstr "動畫教學索引"
+
+msgid "Adds a track to the Animation."
+msgstr "向動畫新增軌道。"
+
+msgid ""
+"Returns the animation name at the key identified by [param key_idx]. The "
+"[param track_idx] must be the index of an Animation Track."
+msgstr ""
+"返回由 [param key_idx] 標識的鍵處的動畫名稱。[param track_idx] 必須是動畫軌道"
+"的索引。"
+
+msgid ""
+"Inserts a key with value [param animation] at the given [param time] (in "
+"seconds). The [param track_idx] must be the index of an Animation Track."
+msgstr ""
+"在給定的 [param time](以秒為單位)插入一個值為 [param animation] 的鍵。"
+"[param track_idx] 必須是動畫軌道的索引。"
+
+msgid ""
+"Sets the key identified by [param key_idx] to value [param animation]. The "
+"[param track_idx] must be the index of an Animation Track."
+msgstr ""
+"將 [param key_idx] 標識的鍵設定為值 [param animation]。[param track_idx] 必須"
+"是動畫軌道的索引。"
+
+msgid ""
+"Returns the end offset of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of an Audio Track.\n"
+"End offset is the number of seconds cut off at the ending of the audio stream."
+msgstr ""
+"返回由 [param key_idx] 標識的鍵的結束偏移量。[param track_idx] 必須是音訊軌道"
+"的索引。\n"
+"結束偏移量是在音訊流結束時截斷的秒數。"
+
+msgid ""
+"Returns the start offset of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of an Audio Track.\n"
+"Start offset is the number of seconds cut off at the beginning of the audio "
+"stream."
+msgstr ""
+"返回由 [param key_idx] 標識的鍵的起始偏移量。[param track_idx] 必須是音訊軌道"
+"的索引。\n"
+"起始偏移量是在音訊流開始時截斷的秒數。"
+
+msgid ""
+"Returns the audio stream of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of an Audio Track."
+msgstr ""
+"返回由 [param key_idx] 標識的鍵的音訊流。[param track_idx] 必須是音訊軌道的索"
+"引。"
+
+msgid ""
+"Inserts an Audio Track key at the given [param time] in seconds. The [param "
+"track_idx] must be the index of an Audio Track.\n"
+"[param stream] is the [AudioStream] resource to play. [param start_offset] is "
+"the number of seconds cut off at the beginning of the audio stream, while "
+"[param end_offset] is at the ending."
+msgstr ""
+"在 [param time] 秒處插入音訊軌道關鍵影格。[param track_idx] 必須是音訊軌道的索"
+"引。\n"
+"[param stream] 是要播放的 [AudioStream] 資源。[param start_offset] 是音訊流開"
+"頭截斷的秒數,而 [param end_offset] 是在結尾處截斷的秒數。"
+
+msgid ""
+"Returns [code]true[/code] if the track at [param track_idx] will be blended "
+"with other animations."
+msgstr ""
+"如果 [param track_idx] 處的軌道將與其他動畫混合,則返回 [code]true[/code]。"
+
+msgid ""
+"Sets the end offset of the key identified by [param key_idx] to value [param "
+"offset]. The [param track_idx] must be the index of an Audio Track."
+msgstr ""
+"將由 [param key_idx] 標識的鍵的結束偏移量設定為值 [param offset]。[param "
+"track_idx] 必須是音訊軌道的索引。"
+
+msgid ""
+"Sets the start offset of the key identified by [param key_idx] to value "
+"[param offset]. The [param track_idx] must be the index of an Audio Track."
+msgstr ""
+"將由 [param key_idx] 標識的鍵的起始偏移量設定為值 [param offset]。[param "
+"track_idx] 必須是音訊軌道的索引。"
+
+msgid ""
+"Sets the stream of the key identified by [param key_idx] to value [param "
+"stream]. The [param track_idx] must be the index of an Audio Track."
+msgstr ""
+"將由 [param key_idx] 標識的鍵的流設定為值 [param stream]。[param track_idx] 必"
+"須是音訊軌道的索引。"
+
+msgid ""
+"Sets whether the track will be blended with other animations. If [code]true[/"
+"code], the audio playback volume changes depending on the blend value."
+msgstr ""
+"設定軌道是否將與其他動畫混合。如果為 [code]true[/code],音訊播放音量會根據混合"
+"值而變化。"
+
+msgid ""
+"Returns the in handle of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of a Bezier Track."
+msgstr ""
+"返回由 [param key_idx] 識別的鍵的入點手柄,[param track_idx] 必須是貝賽爾曲線"
+"軌道的索引。"
+
+msgid ""
+"Returns the out handle of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of a Bezier Track."
+msgstr ""
+"返回由 [param key_idx] 識別的鍵的出點手柄,[param track_idx] 必須是貝賽爾曲線"
+"軌道的索引。"
+
+msgid ""
+"Returns the value of the key identified by [param key_idx]. The [param "
+"track_idx] must be the index of a Bezier Track."
+msgstr ""
+"返回由 [param key_idx] 識別的鍵的值,[param track_idx] 必須是貝塞爾軌道的索"
+"引。"
+
+msgid ""
+"Inserts a Bezier Track key at the given [param time] in seconds. The [param "
+"track_idx] must be the index of a Bezier Track.\n"
+"[param in_handle] is the left-side weight of the added Bezier curve point, "
+"[param out_handle] is the right-side one, while [param value] is the actual "
+"value at this point."
+msgstr ""
+"在給定的時間 [param time] 秒處插入貝塞爾軌道鍵。[param track_idx] 必須是貝塞爾"
+"軌道的索引。\n"
+"[param in_handle] 是新增的貝茲曲線點的左側權重,[param out_handle] 是右側權"
+"重,而 [param value] 是這個點的實際值。"
+
+msgid ""
+"Returns the interpolated value at the given [param time] (in seconds). The "
+"[param track_idx] must be the index of a Bezier Track."
+msgstr ""
+"返回給定 [param time] 處的插值(以秒為單位)。[param track_idx] 必須是貝塞爾軌"
+"道的索引。"
+
+msgid ""
+"Sets the in handle of the key identified by [param key_idx] to value [param "
+"in_handle]. The [param track_idx] must be the index of a Bezier Track."
+msgstr ""
+"將 [param key_idx] 所標識的鍵的入點手柄設定為 [param in_handle] 值。[param "
+"track_idx] 必須是貝塞爾軌道的索引。"
+
+msgid ""
+"Sets the out handle of the key identified by [param key_idx] to value [param "
+"out_handle]. The [param track_idx] must be the index of a Bezier Track."
+msgstr ""
+"將由 [param key_idx] 確定的關鍵影格的出點手柄設定為 [param out_handle]。參數 "
+"[param track_idx] 必須是貝塞爾軌道的索引。"
+
+msgid ""
+"Sets the value of the key identified by [param key_idx] to the given value. "
+"The [param track_idx] must be the index of a Bezier Track."
+msgstr ""
+"將 [param key_idx] 所標識的鍵值設定為給定值。[param track_idx] 必須是貝塞爾軌"
+"道的索引。"
+
+msgid "Inserts a key in a given blend shape track. Returns the key index."
+msgstr "在給定的混合形狀軌道中插入一個關鍵影格。返回鍵索引。"
+
+msgid ""
+"Returns the interpolated blend shape value at the given time (in seconds). "
+"The [param track_idx] must be the index of a blend shape track."
+msgstr ""
+"返回位於給定時間(以秒為單位)的插值後的混合形狀值。[param track_idx] 必須是混"
+"合形狀軌道的索引。"
+
+msgid "Clear the animation (clear all tracks and reset all)."
+msgstr "清除動畫(清除所有軌道並重設所有)。"
+
+msgid ""
+"Compress the animation and all its tracks in-place. This will make [method "
+"track_is_compressed] return [code]true[/code] once called on this "
+"[Animation]. Compressed tracks require less memory to be played, and are "
+"designed to be used for complex 3D animations (such as cutscenes) imported "
+"from external 3D software. Compression is lossy, but the difference is "
+"usually not noticeable in real world conditions.\n"
+"[b]Note:[/b] Compressed tracks have various limitations (such as not being "
+"editable from the editor), so only use compressed animations if you actually "
+"need them."
+msgstr ""
+"就地壓縮動畫及其所有軌道。這將使 [method track_is_compressed] 一旦在這個 "
+"[Animation] 上被呼叫就會返回 [code]true[/code]。壓縮後的軌道在播放時需要更少的"
+"記憶體,並且這被設計用於從外部3D軟體匯入的複雜的3D動畫(比如過場動畫)。壓縮是"
+"有損失的,但現實中通常不會注意到這種差異。\n"
+"[b]注意:[/b]壓縮軌道有各種限制(比如不能從編輯器中編輯),所以只有在你真正需"
+"要時才使用壓縮動畫。"
+
+msgid ""
+"Returns the index of the specified track. If the track is not found, return "
+"-1."
+msgstr "返回指定軌跡的索引。如果沒有找到,返回 -1。"
+
+msgid "Returns the amount of tracks in the animation."
+msgstr "返回動畫中的軌道數。"
+
+msgid "Returns the method name of a method track."
+msgstr "返回一個方法軌道的方法名。"
+
+msgid ""
+"Returns the arguments values to be called on a method track for a given key "
+"in a given track."
+msgstr "返回給定方法軌道中給定鍵的方法要呼叫的參數值。"
+
+msgid "Inserts a key in a given 3D position track. Returns the key index."
+msgstr "在給定的 3D 位置軌道中插入關鍵影格。返回該關鍵影格的索引。"
+
+msgid ""
+"Returns the interpolated position value at the given time (in seconds). The "
+"[param track_idx] must be the index of a 3D position track."
+msgstr ""
+"返回位於給定時間(以秒為單位)的插值後的位置值。[param track_idx] 必須是 3D 位"
+"置軌道的索引。"
+
+msgid "Removes a track by specifying the track index."
+msgstr "通過指定軌道索引來移除一個軌道。"
+
+msgid "Inserts a key in a given 3D rotation track. Returns the key index."
+msgstr "在給定的 3D 旋轉軌道中插入關鍵影格。返回該關鍵影格的索引。"
+
+msgid ""
+"Returns the interpolated rotation value at the given time (in seconds). The "
+"[param track_idx] must be the index of a 3D rotation track."
+msgstr ""
+"返回位於給定時間(以秒為單位)的插值後的旋轉值。[param track_idx] 必須是 3D 旋"
+"轉軌道的索引。"
+
+msgid "Inserts a key in a given 3D scale track. Returns the key index."
+msgstr "在給定的 3D 縮放軌道中插入關鍵影格。返回該關鍵影格的索引。"
+
+msgid ""
+"Returns the interpolated scale value at the given time (in seconds). The "
+"[param track_idx] must be the index of a 3D scale track."
+msgstr ""
+"返回位於給定時間(以秒為單位)的插值後的縮放值。[param track_idx] 必須是 3D 縮"
+"放軌道的索引。"
+
+msgid ""
+"Finds the key index by time in a given track. Optionally, only find it if the "
+"approx/exact time is given."
+msgstr ""
+"按時間搜尋給定軌道中的關鍵影格索引。也可選擇只在給定大約/準確時間的情況下搜"
+"尋。"
+
+msgid ""
+"Returns [code]true[/code] if the track at [param track_idx] wraps the "
+"interpolation loop. New tracks wrap the interpolation loop by default."
+msgstr ""
+"如果 [param track_idx] 處的軌道環繞插值迴圈,則返回 [code]true[/code]。新建的"
+"軌道預設都會環繞插值迴圈。"
+
+msgid "Returns the interpolation type of a given track."
+msgstr "返回給定軌道的插數值型別。"
+
+msgid "Returns the number of keys in a given track."
+msgstr "返回給定軌道中關鍵影格的數量。"
+
+msgid "Returns the time at which the key is located."
+msgstr "返回關鍵影格所在的時間。"
+
+msgid ""
+"Returns the transition curve (easing) for a specific key (see the built-in "
+"math function [method @GlobalScope.ease])."
+msgstr ""
+"返回給定關鍵影格的過渡曲線(緩動)(見內建數學函式 [method @GlobalScope."
+"ease])。"
+
+msgid "Returns the value of a given key in a given track."
+msgstr "返回給定軌道中給定關鍵影格的值。"
+
+msgid ""
+"Gets the path of a track. For more information on the path format, see "
+"[method track_set_path]."
+msgstr ""
+"獲取軌道的路徑。有關路徑格式的詳細資訊,請參閱 [method track_set_path]。"
+
+msgid "Gets the type of a track."
+msgstr "獲取軌道的型別。"
+
+msgid "Inserts a generic key in a given track. Returns the key index."
+msgstr "在給定的軌道中插入一個通用關鍵影格。返回關鍵影格索引。"
+
+msgid ""
+"Returns [code]true[/code] if the track is compressed, [code]false[/code] "
+"otherwise. See also [method compress]."
+msgstr ""
+"如果軌道被壓縮,則返回 [code]true[/code],否則返回 [code]false[/code]。另見 "
+"[method compress]。"
+
+msgid ""
+"Returns [code]true[/code] if the track at index [param track_idx] is enabled."
+msgstr "如果啟用了索引 [param track_idx] 處的軌道,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the given track is imported. Else, return "
+"[code]false[/code]."
+msgstr ""
+"如果給定的軌道是被匯入的,返回 [code]true[/code]。否則返回 [code]false[/"
+"code]。"
+
+msgid "Moves a track down."
+msgstr "將軌道下移。"
+
+msgid ""
+"Changes the index position of track [param track_idx] to the one defined in "
+"[param to_idx]."
+msgstr "將軌道 [param track_idx] 的索引位置改為 [param to_idx] 中定義的位置。"
+
+msgid "Moves a track up."
+msgstr "將軌道上移。"
+
+msgid "Removes a key by index in a given track."
+msgstr "在指定的軌道上按索引移除一個鍵。"
+
+msgid "Removes a key at [param time] in a given track."
+msgstr "在給定軌道中的 [param time] 移除一個鍵。"
+
+msgid "Enables/disables the given track. Tracks are enabled by default."
+msgstr "啟用/禁用給定的軌道。軌道預設為啟用。"
+
+msgid "Sets the given track as imported or not."
+msgstr "將指定的軌道設定為匯入或不匯入。"
+
+msgid ""
+"If [code]true[/code], the track at [param track_idx] wraps the interpolation "
+"loop."
+msgstr "如果為 [code]true[/code],則 [param track_idx] 處的軌道環繞插值迴圈。"
+
+msgid "Sets the interpolation type of a given track."
+msgstr "設定指定軌道的插數值型別。"
+
+msgid "Sets the time of an existing key."
+msgstr "設定現有關鍵影格的時間。"
+
+msgid ""
+"Sets the transition curve (easing) for a specific key (see the built-in math "
+"function [method @GlobalScope.ease])."
+msgstr ""
+"設定指定關鍵影格的過渡曲線(緩動)(參閱內建數學函式 [method @GlobalScope."
+"ease])。"
+
+msgid "Sets the value of an existing key."
+msgstr "設定現有關鍵影格的值。"
+
+msgid ""
+"Sets the path of a track. Paths must be valid scene-tree paths to a node and "
+"must be specified starting from the parent node of the node that will "
+"reproduce the animation. Tracks that control properties or bones must append "
+"their name after the path, separated by [code]\":\"[/code].\n"
+"For example, [code]\"character/skeleton:ankle\"[/code] or [code]\"character/"
+"mesh:transform/local\"[/code]."
+msgstr ""
+"設定軌道的路徑。路徑必須是指向場景樹節點的有效路徑,必須從將要實作動畫的節點的"
+"父節點開始指定。控制屬性或骨骼的軌道必須在路徑後面加上它們的名字,用 [code]\":"
+"\"[/code] 分隔。\n"
+"例如,[code]\"character/skeleton:ankle\"[/code] 或 [code]\"character/mesh:"
+"transform/local\"[/code]。"
+
+msgid ""
+"Swaps the track [param track_idx]'s index position with the track [param "
+"with_idx]."
+msgstr ""
+"將軌道 [param track_idx] 的索引位置與軌道 [param with_idx] 的索引位置互換。"
+
+msgid "Returns the update mode of a value track."
+msgstr "返回值軌道的更新模式。"
+
+msgid ""
+"Returns the interpolated value at the given time (in seconds). The [param "
+"track_idx] must be the index of a value track."
+msgstr ""
+"返回位於給定時間(以秒為單位)的插值後的值。[param track_idx] 必須是值軌道的索"
+"引。"
+
+msgid "Sets the update mode (see [enum UpdateMode]) of a value track."
+msgstr "設定值軌道的更新模式(請參閱 [enum UpdateMode])。"
+
+msgid ""
+"The total length of the animation (in seconds).\n"
+"[b]Note:[/b] Length is not delimited by the last key, as this one may be "
+"before or after the end to ensure correct interpolation and looping."
+msgstr ""
+"動畫的總長度(單位為秒)。\n"
+"[b]注意:[/b]長度不以最後一個關鍵影格為界,因為這個關鍵影格可能位於結束前或結"
+"束後,以確保正確的插值和迴圈。"
+
+msgid ""
+"Determines the behavior of both ends of the animation timeline during "
+"animation playback. This is used for correct interpolation of animation "
+"cycles, and for hinting the player that it must restart the animation."
+msgstr ""
+"確定動畫播放期間動畫時間軸兩端的行為。 這用於動畫迴圈的正確插值,以及提示播放"
+"器必須重新啟動動畫。"
+
+msgid "The animation step value."
+msgstr "動畫步長值。"
+
+msgid ""
+"Value tracks set values in node properties, but only those which can be "
+"interpolated. For 3D position/rotation/scale, using the dedicated [constant "
+"TYPE_POSITION_3D], [constant TYPE_ROTATION_3D] and [constant TYPE_SCALE_3D] "
+"track types instead of [constant TYPE_VALUE] is recommended for performance "
+"reasons."
+msgstr ""
+"值軌道設定節點屬性中的值,但僅限於那些可以被插值的屬性。對於 3D 位置/旋轉/縮"
+"放,出於性能原因,建議使用專用的 [constant TYPE_POSITION_3D]、[constant "
+"TYPE_ROTATION_3D] 和 [constant TYPE_SCALE_3D] 軌道型別而不是 [constant "
+"TYPE_VALUE]。"
+
+msgid "3D position track (values are stored in [Vector3]s)."
+msgstr "3D 位置軌道(值儲存在 [Vector3] 中)。"
+
+msgid "3D rotation track (values are stored in [Quaternion]s)."
+msgstr "3D 旋轉軌道(值儲存在 [Quaternion] 中)。"
+
+msgid "3D scale track (values are stored in [Vector3]s)."
+msgstr "3D 縮放軌道(值儲存在 [Vector3] 中)。"
+
+msgid "Blend shape track."
+msgstr "混合形狀軌道。"
+
+msgid "Method tracks call functions with given arguments per key."
+msgstr "方法軌道會在各個關鍵影格上使用給定參數的呼叫函式。"
+
+msgid ""
+"Bezier tracks are used to interpolate a value using custom curves. They can "
+"also be used to animate sub-properties of vectors and colors (e.g. alpha "
+"value of a [Color])."
+msgstr ""
+"貝塞爾軌道可以用來根據自訂曲線對數值進行插值。它們也可以用來對向量和顏色的子屬"
+"性進行動畫處理(例如 [Color] 的 Alpha 值)。"
+
+msgid ""
+"Audio tracks are used to play an audio stream with either type of "
+"[AudioStreamPlayer]. The stream can be trimmed and previewed in the animation."
+msgstr ""
+"音訊軌道可以用來通過任意型別的 [AudioStreamPlayer] 播放音訊流。該流可以在動畫"
+"中進行修剪和預覽。"
+
+msgid "Animation tracks play animations in other [AnimationPlayer] nodes."
+msgstr "動畫軌道會在其他 [AnimationPlayer] 節點中播放動畫。"
+
+msgid "No interpolation (nearest value)."
+msgstr "無插值(最鄰近的值)。"
+
+msgid "Linear interpolation."
+msgstr "線性插值。"
+
+msgid ""
+"Cubic interpolation. This looks smoother than linear interpolation, but is "
+"more expensive to interpolate. Stick to [constant INTERPOLATION_LINEAR] for "
+"complex 3D animations imported from external software, even if it requires "
+"using a higher animation framerate in return."
+msgstr ""
+"三次插值。這看起來比線性插值更平滑,但插值成本更高。對於從外部軟體匯入的複雜 "
+"3D 動畫,堅持使用 [constant INTERPOLATION_LINEAR],即使它需要使用更高的動畫影"
+"格率作為回報。"
+
+msgid ""
+"Linear interpolation with shortest path rotation.\n"
+"[b]Note:[/b] The result value is always normalized and may not match the key "
+"value."
+msgstr ""
+"具有最短路徑旋轉的線性插值。\n"
+"[b]注意:[/b]結果值總是正規化的,可能與關鍵影格的值不配對。"
+
+msgid ""
+"Cubic interpolation with shortest path rotation.\n"
+"[b]Note:[/b] The result value is always normalized and may not match the key "
+"value."
+msgstr ""
+"具有最短路徑旋轉的三次插值。\n"
+"[b]注意:[/b]結果值總是正規化的,可能與關鍵影格的值不配對。"
+
+msgid "Update between keyframes and hold the value."
+msgstr "在關鍵影格之間更新並保持值。"
+
+msgid "Update at the keyframes."
+msgstr "在關鍵影格更新。"
+
+msgid ""
+"Same as linear interpolation, but also interpolates from the current value (i."
+"e. dynamically at runtime) if the first key isn't at 0 seconds."
+msgstr ""
+"與線性插值相同,但如果第一個關鍵影格不在第 0 秒,則會從目前值進行插值(即在運"
+"作時動態插值)。"
+
+msgid "At both ends of the animation, the animation will stop playing."
+msgstr "在動畫的兩端,動畫將停止播放。"
+
+msgid ""
+"At both ends of the animation, the animation will be repeated without "
+"changing the playback direction."
+msgstr "在動畫的兩端,動畫會在不改變播放方向的情況下重複播放。"
+
+msgid "Repeats playback and reverse playback at both ends of the animation."
+msgstr "在動畫的兩端重複進行播放和反向播放。"
+
+msgid "This flag indicates that the animation proceeds without any looping."
+msgstr "該旗標指示動畫在沒有任何迴圈的情況下繼續進行。"
+
+msgid ""
+"This flag indicates that the animation has reached the end of the animation "
+"and just after loop processed."
+msgstr "該旗標表示動畫已到達動畫的末尾並且剛好在迴圈處理之後。"
+
+msgid ""
+"This flag indicates that the animation has reached the start of the animation "
+"and just after loop processed."
+msgstr "該旗標表示動畫已經到達動畫的開始並且剛好在迴圈處理之後。"
+
+msgid "Finds the nearest time key."
+msgstr "搜尋最近的時間鍵。"
+
+msgid "Finds only the key with approximating the time."
+msgstr "僅搜尋與時間相近的鍵。"
+
+msgid "Finds only the key with matching the time."
+msgstr "僅搜尋與時間配對的鍵。"
+
+msgid "Container for [Animation] resources."
+msgstr "[Animation] 資源的容器。"
+
+msgid ""
+"An animation library stores a set of animations accessible through "
+"[StringName] keys, for use with [AnimationPlayer] nodes."
+msgstr ""
+"動畫庫儲存一組可通過 [StringName] 鍵存取的動畫,可用於 [AnimationPlayer] 節"
+"點。"
+
+msgid "Animation tutorial index"
+msgstr "動畫教學索引"
+
+msgid ""
+"Adds the [param animation] to the library, accessible by the key [param name]."
+msgstr "將 [param animation] 新增到庫中,可通過鍵 [param name] 存取。"
+
+msgid ""
+"Returns the [Animation] with the key [param name]. If the animation does not "
+"exist, [code]null[/code] is returned and an error is logged."
+msgstr ""
+"返回帶有鍵 [param name] 的 [Animation]。如果動畫不存在,則返回 [code]null[/"
+"code] 並記錄錯誤。"
+
+msgid "Returns the keys for the [Animation]s stored in the library."
+msgstr "返回庫中儲存的 [Animation] 的鍵。"
+
+msgid ""
+"Returns [code]true[/code] if the library stores an [Animation] with [param "
+"name] as the key."
+msgstr ""
+"如果該庫儲存了以 [param name] 作為鍵的 [Animation],則返回 [code]true[/code]。"
+
+msgid "Removes the [Animation] with the key [param name]."
+msgstr "使用鍵 [param name] 移除 [Animation]。"
+
+msgid ""
+"Changes the key of the [Animation] associated with the key [param name] to "
+"[param newname]."
+msgstr "將與鍵 [param name] 關聯的 [Animation] 的鍵更改為 [param newname]。"
+
+msgid "Emitted when an [Animation] is added, under the key [param name]."
+msgstr "在鍵 [param name] 下新增 [Animation] 時發出。"
+
+msgid ""
+"Emitted when there's a change in one of the animations, e.g. tracks are "
+"added, moved or have changed paths. [param name] is the key of the animation "
+"that was changed.\n"
+"See also [signal Resource.changed], which this acts as a relay for."
+msgstr ""
+"當其中一個動畫發生變化時發出,例如軌道被新增、移動,或路徑被更改。[param "
+"name] 是被改變的動畫的鍵。\n"
+"另見 [signal Resource.changed],本訊號充當該訊號的中繼。"
+
+msgid "Emitted when an [Animation] stored with the key [param name] is removed."
+msgstr "當使用鍵 [param name] 儲存的 [Animation] 被移除時發出。"
+
+msgid ""
+"Emitted when the key for an [Animation] is changed, from [param name] to "
+"[param to_name]."
+msgstr "當 [Animation] 的鍵從 [param name] 更改為 [param to_name] 時發出。"
+
+msgid "Base class for [AnimationPlayer] and [AnimationTree]."
+msgstr "[AnimationTree] 節點的基底類別。與場景節點無關。"
+
+msgid ""
+"Base class for [AnimationPlayer] and [AnimationTree] to manage animation "
+"lists. It also has general properties and methods for playback and blending.\n"
+"After instantiating the playback information data within the extended class, "
+"the blending is processed by the [AnimationMixer]."
+msgstr ""
+"[AnimationPlayer] 和 [AnimationTree] 管理動畫列表的基底類別。它還具有用於播放"
+"和混合的通用屬性和方法。\n"
+"在擴充類別中實例化播放資訊資料後,由 [AnimationMixer] 處理混合。"
+
+msgid "A virtual function for processing after key getting during playback."
+msgstr "一個用於播放期間鍵獲取之後的處理的虛函式。"
+
+msgid ""
+"Adds [param library] to the animation player, under the key [param name]."
+msgstr "將 [param library] 新增到該動畫播放機的鍵 [param name] 下。"
+
+msgid "Manually advance the animations by the specified time (in seconds)."
+msgstr "手動將動畫前進指定的時間(單位為秒)。"
+
+msgid ""
+"[AnimationMixer] caches animated nodes. It may not notice if a node "
+"disappears; [method clear_caches] forces it to update the cache again."
+msgstr ""
+"[AnimationPlayer] 快取動畫節點。如果一個節點消失,它可能不會注意到;[method "
+"clear_caches] 強制它再次更新快取。"
+
+msgid ""
+"Returns the key of [param animation] or an empty [StringName] if not found."
+msgstr "返回 [param animation] 的鍵;如果未找到,則返回一個空的 [StringName]。"
+
+msgid ""
+"Returns the key for the [AnimationLibrary] that contains [param animation] or "
+"an empty [StringName] if not found."
+msgstr ""
+"返回包含 [param animation] 的 [AnimationLibrary] 的鍵;如果找不到,則返回一個"
+"空的 [StringName]。"
+
+msgid ""
+"Returns the first [AnimationLibrary] with key [param name] or [code]null[/"
+"code] if not found.\n"
+"To get the [AnimationPlayer]'s global animation library, use "
+"[code]get_animation_library(\"\")[/code]."
+msgstr ""
+"返回第一個鍵為 [param name] 的 [AnimationLibrary],如果沒有找到則返回 "
+"[code]null[/code]。\n"
+"要獲得 [AnimationPlayer] 的全域動畫庫,請使用 "
+"[code]get_animation_library(\"\")[/code]。"
+
+msgid "Returns the list of stored library keys."
+msgstr "返回儲存庫的鍵名列表。"
+
+msgid "Returns the list of stored animation keys."
+msgstr "返回儲存的動畫鍵列表。"
+
+msgid ""
+"Retrieve the motion delta of position with the [member root_motion_track] as "
+"a [Vector3] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_POSITION_3D], returns [code]Vector3(0, 0, 0)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying position to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_rotation: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_rotation = get_quaternion()\n"
+" state_machine.travel(\"Animate\")\n"
+" var velocity: Vector3 = current_rotation * animation_tree."
+"get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"By using this in combination with [method "
+"get_root_motion_position_accumulator], you can apply the root motion position "
+"more correctly to account for the rotation of the node.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+" var velocity: Vector3 = (animation_tree."
+"get_root_motion_rotation_accumulator().inverse() * get_quaternion()) * "
+"animation_tree.get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"將具有 [member root_motion_track] 的位置的運動差異量,檢索為一個可以在其他地方"
+"使用的 [Vector3]。\n"
+"如果 [member root_motion_track] 不是 [constant Animation.TYPE_POSITION_3D] 類"
+"型軌道的路徑,則返回 [code]Vector3(0, 0, 0)[/code]。\n"
+"另見 [member root_motion_track] 和 [RootMotionView]。\n"
+"最基本的範例是將位置套用於 [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_rotation: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_rotation = get_quaternion()\n"
+" state_machine.travel(\"Animate\")\n"
+" var velocity: Vector3 = current_rotation * animation_tree."
+"get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"通過將其與 [method get_root_motion_position_accumulator] 結合使用,你可以更正"
+"確地套用根運動位置來考慮節點的旋轉。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+" var velocity: Vector3 = (animation_tree."
+"get_root_motion_rotation_accumulator().inverse() * get_quaternion()) * "
+"animation_tree.get_root_motion_position() / delta\n"
+" set_velocity(velocity)\n"
+" move_and_slide()\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the position tracks with the [member "
+"root_motion_track] as a [Vector3] that can be used elsewhere.\n"
+"This is useful in cases where you want to respect the initial key values of "
+"the animation.\n"
+"For example, if an animation with only one key [code]Vector3(0, 0, 0)[/code] "
+"is played in the previous frame and then an animation with only one key "
+"[code]Vector3(1, 0, 1)[/code] is played in the next frame, the difference can "
+"be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_position_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_position_accumulator: Vector3 = animation_tree."
+"get_root_motion_position_accumulator()\n"
+" var difference: Vector3 = current_root_motion_position_accumulator - "
+"prev_root_motion_position_accumulator\n"
+" prev_root_motion_position_accumulator = "
+"current_root_motion_position_accumulator\n"
+" transform.origin += difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"檢索具有 [member root_motion_track] 的位置軌道的混合值,返回的是可以在其他地方"
+"使用的 [Vector3]。\n"
+"在想要遵循動畫的初始動畫影格值的情況下很有用。\n"
+"例如,如果前一影格播放的是一個只有單個動畫影格 [code]Vector3(0, 0, 0)[/code] "
+"的動畫,然後下一影格播放的是一個只有單個動畫影格[code]Vector3(1, 0, 1)[/code] "
+"的動畫,它們之間的差異可以這樣計算:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_position_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_position_accumulator: Vector3 = animation_tree."
+"get_root_motion_position_accumulator()\n"
+" var difference: Vector3 = current_root_motion_position_accumulator - "
+"prev_root_motion_position_accumulator\n"
+" prev_root_motion_position_accumulator = "
+"current_root_motion_position_accumulator\n"
+" transform.origin += difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"不過,如果動畫是迴圈播放的,就可能會發生預料之外的不連續變化,所以這只對一些簡"
+"單的情況有用。"
+
+msgid ""
+"Retrieve the motion delta of rotation with the [member root_motion_track] as "
+"a [Quaternion] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_ROTATION_3D], returns [code]Quaternion(0, 0, 0, 1)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying rotation to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation())\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"檢索帶有 [member root_motion_track] 的旋轉運動,作為一個 [Quaternion],可以在"
+"其他地方使用。\n"
+"如果 [member root_motion_track] 不是 [constant Animation.TYPE_ROTATION_3D] 類"
+"型的軌跡的路徑,返回 [code]Quaternion(0, 0, 0, 1)[/code] 。\n"
+"另見 [member root_motion_track] 和 [RootMotionView]。\n"
+"最基本的例子是對 [CharacterBody3D] 套用旋轉。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" set_quaternion(get_quaternion() * animation_tree."
+"get_root_motion_rotation() )\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the rotation tracks with the [member "
+"root_motion_track] as a [Quaternion] that can be used elsewhere.\n"
+"This is necessary to apply the root motion position correctly, taking "
+"rotation into account. See also [method get_root_motion_position].\n"
+"Also, this is useful in cases where you want to respect the initial key "
+"values of the animation.\n"
+"For example, if an animation with only one key [code]Quaternion(0, 0, 0, 1)[/"
+"code] is played in the previous frame and then an animation with only one key "
+"[code]Quaternion(0, 0.707, 0, 0.707)[/code] is played in the next frame, the "
+"difference can be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_rotation_accumulator: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_rotation_accumulator: Quaternion = animation_tree."
+"get_root_motion_Quaternion_accumulator()\n"
+" var difference: Quaternion = prev_root_motion_rotation_accumulator."
+"inverse() * current_root_motion_rotation_accumulator\n"
+" prev_root_motion_rotation_accumulator = "
+"current_root_motion_rotation_accumulator\n"
+" transform.basis *= difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"檢索帶有 [member root_motion_track] 的旋轉軌道的混合值,作為一個 "
+"[Quaternion],可以在其他地方使用。\n"
+"這裡必須正確地結合根運動位置,並且要考慮到旋轉。參考 [method "
+"get_root_motion_position]。\n"
+"並且,當你想重視動畫的初始動畫影格的值時,這會很有用。\n"
+"比如說,如果一個動畫在上一影格只播放一個 [code]Quaternion(0, 0, 0, 1)[/code] "
+"動畫影格,並且一個動畫在下一影格只播放了一個動畫影格的 [code]Quaternion(0, "
+"0.707, 0, 0.707)[/code] 時,它們相差的值可以這樣求出:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_rotation_accumulator: Quaternion\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_rotation_accumulator: Quaternion = animation_tree."
+"get_root_motion_Quaternion_accumulator()\n"
+" var difference: Quaternion = prev_root_motion_rotation_accumulator."
+"inverse() * current_root_motion_rotation_accumulator\n"
+" prev_root_motion_rotation_accumulator = "
+"current_root_motion_rotation_accumulator\n"
+" transform.basis *= difference\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"然而,當一個動畫迴圈時,可能會得到一個意料之外的變化,所以這個只在一些簡單情況"
+"下才有用。"
+
+msgid ""
+"Retrieve the motion delta of scale with the [member root_motion_track] as a "
+"[Vector3] that can be used elsewhere.\n"
+"If [member root_motion_track] is not a path to a track of type [constant "
+"Animation.TYPE_SCALE_3D], returns [code]Vector3(0, 0, 0)[/code].\n"
+"See also [member root_motion_track] and [RootMotionView].\n"
+"The most basic example is applying scale to [CharacterBody3D]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_scale: Vector3 = Vector3(1, 1, 1)\n"
+"var scale_accum: Vector3 = Vector3(1, 1, 1)\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_scale = get_scale()\n"
+" scale_accum = Vector3(1, 1, 1)\n"
+" state_machine.travel(\"Animate\")\n"
+" scale_accum += animation_tree.get_root_motion_scale()\n"
+" set_scale(current_scale * scale_accum)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"獲取 [member root_motion_track] 的縮放運動差異量,型別為 [Vector3],可以在其他"
+"地方使用。\n"
+"如果 [member root_motion_track] 不是型別為 [constant Animation.TYPE_SCALE_3D] "
+"的軌道的路徑,則返回 [code]Vector3(0, 0, 0)[/code] 。\n"
+"另見 [member root_motion_track] 和 [RootMotionView]。\n"
+"最基本的例子是對 [CharacterBody3D] 套用縮放。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var current_scale: Vector3 = Vector3(1, 1, 1)\n"
+"var scale_accum: Vector3 = Vector3(1, 1, 1)\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" current_scale = get_scale()\n"
+" scale_accum = Vector3(1, 1, 1)\n"
+" state_machine.travel(\"Animate\")\n"
+" scale_accum += animation_tree.get_root_motion_scale()\n"
+" set_scale(current_scale * scale_accum)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Retrieve the blended value of the scale tracks with the [member "
+"root_motion_track] as a [Vector3] that can be used elsewhere.\n"
+"For example, if an animation with only one key [code]Vector3(1, 1, 1)[/code] "
+"is played in the previous frame and then an animation with only one key "
+"[code]Vector3(2, 2, 2)[/code] is played in the next frame, the difference can "
+"be calculated as follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_scale_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_scale_accumulator: Vector3 = animation_tree."
+"get_root_motion_scale_accumulator()\n"
+" var difference: Vector3 = current_root_motion_scale_accumulator - "
+"prev_root_motion_scale_accumulator\n"
+" prev_root_motion_scale_accumulator = "
+"current_root_motion_scale_accumulator\n"
+" transform.basis = transform.basis.scaled(difference)\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"However, if the animation loops, an unintended discrete change may occur, so "
+"this is only useful for some simple use cases."
+msgstr ""
+"檢索帶有 [member root_motion_track] 的縮放軌道的混合值,作為一個 [Vector3],可"
+"以在其他地方使用。\n"
+"例如,如果一個動畫在前一影格只播放了一個動畫影格 [code]Vector3(1, 1, 1)[/"
+"code],並且一個動畫在後一影格只播放了一個動畫影格 [code]Vector3(2, 2, 2)[/"
+"code],他們之間相差的值可以這樣求出:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var prev_root_motion_scale_accumulator: Vector3\n"
+"\n"
+"func _process(delta):\n"
+" if Input.is_action_just_pressed(\"animate\"):\n"
+" state_machine.travel(\"Animate\")\n"
+" var current_root_motion_scale_accumulator: Vector3 = animation_tree."
+"get_root_motion_scale_accumulator()\n"
+" var difference: Vector3 = current_root_motion_scale_accumulator - "
+"prev_root_motion_scale_accumulator\n"
+" prev_root_motion_scale_accumulator = "
+"current_root_motion_scale_accumulator\n"
+" transform.basis = transform.basis.scaled(difference)\n"
+"[/gdscript]\n"
+"[/codeblocks]\n"
+"然而,當一個動畫迴圈時,可能會得到一個意料之外的變化,所以這個只在一些簡單情況"
+"下才有用。"
+
+msgid ""
+"Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] with "
+"key [param name]."
+msgstr ""
+"如果該 [AnimationPlayer] 使用鍵 [param name] 儲存 [Animation],則返回 "
+"[code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the [AnimationPlayer] stores an "
+"[AnimationLibrary] with key [param name]."
+msgstr ""
+"如果該 [AnimationPlayer] 使用鍵 [param name] 儲存 [AnimationLibrary],則返回 "
+"[code]true[/code]。"
+
+msgid "Removes the [AnimationLibrary] associated with the key [param name]."
+msgstr "移除與鍵 [param name] 關聯的 [AnimationLibrary]。"
+
+msgid ""
+"Moves the [AnimationLibrary] associated with the key [param name] to the key "
+"[param newname]."
+msgstr ""
+"將與鍵 [param name] 關聯的 [AnimationLibrary] 移動到鍵 [param newname]。"
+
+msgid "If [code]true[/code], the [AnimationMixer] will be processing."
+msgstr "如果 [code]true[/code] 時,[AnimationTree] 將執行邏輯處理。"
+
+msgid ""
+"The number of possible simultaneous sounds for each of the assigned "
+"AudioStreamPlayers.\n"
+"For example, if this value is [code]32[/code] and the animation has two audio "
+"tracks, the two [AudioStreamPlayer]s assigned can play simultaneously up to "
+"[code]32[/code] voices each."
+msgstr ""
+"每個指定的 AudioStreamPlayer 可能同時發出的聲音的數量。\n"
+"例如,如果該值為 [code]32[/code] 並且動畫有兩個音軌,則分配的兩個 "
+"[AudioStreamPlayer] 可以同時播放最多 [code]32[/code] 個聲音。"
+
+msgid "The call mode to use for Call Method tracks."
+msgstr "方法呼叫軌道所使用的呼叫模式。"
+
+msgid "The process notification in which to update animations."
+msgstr "更新動畫的過程通知。"
+
+msgid ""
+"If [code]true[/code], the blending uses the deterministic algorithm. The "
+"total weight is not normalized and the result is accumulated with an initial "
+"value ([code]0[/code] or a [code]\"RESET\"[/code] animation if present).\n"
+"This means that if the total amount of blending is [code]0.0[/code], the "
+"result is equal to the [code]\"RESET\"[/code] animation.\n"
+"If the number of tracks between the blended animations is different, the "
+"animation with the missing track is treated as if it had the initial value.\n"
+"If [code]false[/code], The blend does not use the deterministic algorithm. "
+"The total weight is normalized and always [code]1.0[/code]. If the number of "
+"tracks between the blended animations is different, nothing is done about the "
+"animation that is missing a track.\n"
+"[b]Note:[/b] In [AnimationTree], the blending with [AnimationNodeAdd2], "
+"[AnimationNodeAdd3], [AnimationNodeSub2] or the weight greater than "
+"[code]1.0[/code] may produce unexpected results.\n"
+"For example, if [AnimationNodeAdd2] blends two nodes with the amount "
+"[code]1.0[/code], then total weight is [code]2.0[/code] but it will be "
+"normalized to make the total amount [code]1.0[/code] and the result will be "
+"equal to [AnimationNodeBlend2] with the amount [code]0.5[/code]."
+msgstr ""
+"如果[code]true[/code],混合使用確定性演算法。總權重不正規化,結果以初始值累積"
+"([code]0[/ code] 或[code]\"RESET\"[/code] 動畫(如果存在)。\n"
+"這意味著如果混合總量為 [code]0.0[/code],則結果等於 [code]\"RESET\"[/code] 動"
+"畫。\n"
+"如果混合動畫之間的軌道數量不同,則缺少軌道的動畫將被視為具有初始值。\n"
+"如果[code]false[/code],則混合不使用確定性演算法。總重量已標準化且始終為 "
+"[code]1.0[/code]。如果混合動畫之間的軌道數量不同,則不會對缺少軌道的動畫執行任"
+"何操作。\n"
+"[b]注意:[/b]在[AnimationTree]中,與[AnimationNodeAdd2]、[AnimationNodeAdd3]、"
+"[AnimationNodeSub2]或大於[code]1.0[/code]的權重混合可能會產生意想不到的結"
+"果。\n"
+"例如,如果 [AnimationNodeAdd2] 混合數量為 [code]1.0[/code] 的兩個節點,則總權"
+"重為 [code]2.0[/code],但它將被標準化以使總量 [code]1.0[/ code],結果將等於"
+"[AnimationNodeBlend2],數量為[code]0.5[/code]。"
+
+msgid ""
+"This is used by the editor. If set to [code]true[/code], the scene will be "
+"saved with the effects of the reset animation (the animation with the key "
+"[code]\"RESET\"[/code]) applied as if it had been seeked to time 0, with the "
+"editor keeping the values that the scene had before saving.\n"
+"This makes it more convenient to preview and edit animations in the editor, "
+"as changes to the scene will not be saved as long as they are set in the "
+"reset animation."
+msgstr ""
+"由編輯器使用。如果設定為 [code]true[/code],場景將被保存,並套用重設動畫(帶有"
+"鍵 [code]\"RESET\"[/code] 的動畫)的效果,就好像它已被定位到時間 0 一樣,編輯"
+"器保留場景在保存之前的值。\n"
+"這使得在編輯器中預覽和編輯動畫更加方便,因為對場景的更改,只要在重設動畫中被設"
+"定,就不會被保存。"
+
+msgid ""
+"The path to the Animation track used for root motion. Paths must be valid "
+"scene-tree paths to a node, and must be specified starting from the parent "
+"node of the node that will reproduce the animation. To specify a track that "
+"controls properties or bones, append its name after the path, separated by "
+"[code]\":\"[/code]. For example, [code]\"character/skeleton:ankle\"[/code] or "
+"[code]\"character/mesh:transform/local\"[/code].\n"
+"If the track has type [constant Animation.TYPE_POSITION_3D], [constant "
+"Animation.TYPE_ROTATION_3D] or [constant Animation.TYPE_SCALE_3D] the "
+"transformation will be canceled visually, and the animation will appear to "
+"stay in place. See also [method get_root_motion_position], [method "
+"get_root_motion_rotation], [method get_root_motion_scale] and "
+"[RootMotionView]."
+msgstr ""
+"用於根部運動的動畫軌道的路徑。路徑必須是指向節點的場景樹有效路徑,必須從將實現"
+"動畫的節點的父節點開始指定。要指定控制項屬性或骨骼的軌道,請在路徑後附加其名"
+"稱,用 [code]\":\"[/code] 隔開。例如,[code]\"character/skeleton:ankle\"[/"
+"code] 或 [code]\"character/mesh:transform/local\"[/code]。\n"
+"如果軌道的型別是 [constant Animation.TYPE_POSITION_3D]、[constant Animation."
+"TYPE_ROTATION_3D]、或者 [constant Animation.TYPE_SCALE_3D],那麼將取消視覺上的"
+"變換,其動畫看起來將是留在原地。參閱 [method get_root_motion_position]、"
+"[method get_root_motion_rotation]、[method get_root_motion_scale]、和 "
+"[RootMotionView]。"
+
+msgid "The node from which node path references will travel."
+msgstr "節點路徑引用將從其運作的節點。"
+
+msgid ""
+"Notifies when an animation finished playing.\n"
+"[b]Note:[/b] This signal is not emitted if an animation is looping."
+msgstr ""
+"動畫播放結束時通知。\n"
+"[b]注意:[/b]如果動畫正在迴圈播放,則不會發出此訊號。"
+
+msgid "Notifies when the animation libraries have changed."
+msgstr "當動畫庫發生更改時發出通知。"
+
+msgid "Notifies when an animation list is changed."
+msgstr "當動畫列表發生更改時發出通知。"
+
+msgid "Notifies when an animation starts playing."
+msgstr "當動畫開始播放時發出通知。"
+
+msgid ""
+"Notifies when the caches have been cleared, either automatically, or manually "
+"via [method clear_caches]."
+msgstr ""
+"當快取被清除時通知,可以是自動清除,也可以是通過 [method clear_caches] 手動清"
+"除。"
+
+msgid ""
+"Editor only. Notifies when the property have been updated to update dummy "
+"[AnimationPlayer] in animation player editor."
+msgstr ""
+"僅限編輯器。更新屬性以更新動畫播放器編輯器中的虛擬[AnimationPlayer] 時發出通"
+"知。"
+
+msgid ""
+"Process animation during physics frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS]). This is especially useful when "
+"animating physics bodies."
+msgstr ""
+"在物理影格中處理動畫(見 [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])。尤其適用於對物理體進行動畫處理。"
+
+msgid ""
+"Process animation during process frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PROCESS])."
+msgstr ""
+"在處理影格中處理動畫(見 [constant Node.NOTIFICATION_INTERNAL_PROCESS])。"
+
+msgid ""
+"Do not process animation. Use [method advance] to process the animation "
+"manually."
+msgstr "不處理動畫。使用[method advance]手動處理動畫。"
+
+msgid ""
+"Batch method calls during the animation process, then do the calls after "
+"events are processed. This avoids bugs involving deleting nodes or modifying "
+"the AnimationPlayer while playing."
+msgstr ""
+"在動畫過程中批量呼叫方法,然後在處理完事件後再進行呼叫。這樣就避免了在播放過程"
+"中涉及刪除節點或修改AnimationPlayer的錯誤。"
+
+msgid "Make method calls immediately when reached in the animation."
+msgstr "在動畫中達到時立即進行方法呼叫。"
+
+msgid "Base class for [AnimationTree] nodes. Not related to scene nodes."
+msgstr "[AnimationTree] 節點的基底類別。與場景節點無關。"
+
+msgid ""
+"Base resource for [AnimationTree] nodes. In general, it's not used directly, "
+"but you can create custom ones with custom blending formulas.\n"
+"Inherit this when creating animation nodes mainly for use in "
+"[AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used "
+"instead."
+msgstr ""
+"[AnimationTree] 節點的基礎資源。通常不會直接使用,但你可以使用自訂混合公式建立"
+"自訂節點。\n"
+"建立動畫節點時繼承這個類主要是用在 [AnimationNodeBlendTree] 中,否則應改用 "
+"[AnimationRootNode]。"
+
+msgid "Using AnimationTree"
+msgstr "使用 AnimationTree"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"override the text caption for this animation node."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以覆蓋這個動畫節點的標題文字。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return a child animation node by its [param name]."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以根據名稱 [param name] 來返回對"
+"應的子動畫節點。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return all children animation nodes in order as a [code]name: node[/code] "
+"dictionary."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以用 [code]名稱:節點[/code] 字典"
+"的形式按順序返回所有子動畫節點。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return the default value of a [param parameter]. Parameters are custom local "
+"memory used for your animation nodes, given a resource can be reused in "
+"multiple trees."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以返回參數“[param parameter]”的預"
+"設值。參數是動畫節點的自訂本機存放區,資源可以在多個樹中重用。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return a list of the properties on this animation node. Parameters are custom "
+"local memory used for your animation nodes, given a resource can be reused in "
+"multiple trees. Format is similar to [method Object.get_property_list]."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以返回這個節點的屬性列表。參數是"
+"動畫節點的自訂本機存放區,資源可以在多個樹中重用。格式與 [method Object."
+"get_property_list] 類似。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return whether the blend tree editor should display filter editing on this "
+"animation node."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以返回混合樹編輯器是否應該在這個"
+"動畫節點上顯示篩檢程式編輯。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"return whether the [param parameter] is read-only. Parameters are custom "
+"local memory used for your animation nodes, given a resource can be reused in "
+"multiple trees."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以返回參數 [param parameter] 是否"
+"唯讀。參數是動畫節點的自訂本機存放區,資源可以在多個樹中重用。"
+
+msgid ""
+"When inheriting from [AnimationRootNode], implement this virtual method to "
+"run some code when this animation node is processed. The [param time] "
+"parameter is a relative delta, unless [param seek] is [code]true[/code], in "
+"which case it is absolute.\n"
+"Here, call the [method blend_input], [method blend_node] or [method "
+"blend_animation] functions. You can also use [method get_parameter] and "
+"[method set_parameter] to modify local memory.\n"
+"This function should return the time left for the current animation to finish "
+"(if unsure, pass the value from the main blend being called)."
+msgstr ""
+"繼承 [AnimationRootNode] 時,實作這個虛方法可以在這個動畫節點進行處理時執行代"
+"碼。參數 [param time] 是相對差異量,除非 [param seek] 為 [code]true[/code],此"
+"時為絕對差異量。\n"
+"請在此處呼叫 [method blend_input]、[method blend_node] 或 [method "
+"blend_animation] 函式。你也可以使用 [method get_parameter] 和 [method "
+"set_parameter] 來修改本機存放區。\n"
+"這個函式應當返回目前動畫還需多少時間完成(不確定的話,請傳遞呼叫主混合的值)。"
+
+msgid ""
+"Adds an input to the animation node. This is only useful for animation nodes "
+"created for use in an [AnimationNodeBlendTree]. If the addition fails, "
+"returns [code]false[/code]."
+msgstr ""
+"為節點新增一個輸入。這只對建立用於 [AnimationNodeBlendTree] 的動畫節點有用。如"
+"果新增失敗,返回 [code]false[/code]。"
+
+msgid ""
+"Blend an animation by [param blend] amount (name must be valid in the linked "
+"[AnimationPlayer]). A [param time] and [param delta] may be passed, as well "
+"as whether [param seeked] happened.\n"
+"A [param looped_flag] is used by internal processing immediately after the "
+"loop. See also [enum Animation.LoopedFlag]."
+msgstr ""
+"按 [param blend] 量混合一個動畫(名稱必須在連結的 [AnimationPlayer] 中有效)。"
+"可以傳入時間 [param time] 和差異量 [param delta],以及表示是否發生尋道的 "
+"[param seeked]。\n"
+"[param looped_flag] 在迴圈後立即由內部處理使用。另見 [enum Animation."
+"LoopedFlag]。"
+
+msgid ""
+"Blend an input. This is only useful for animation nodes created for an "
+"[AnimationNodeBlendTree]. The [param time] parameter is a relative delta, "
+"unless [param seek] is [code]true[/code], in which case it is absolute. A "
+"filter mode may be optionally passed (see [enum FilterAction] for options)."
+msgstr ""
+"混合一個輸入。這只對為 [AnimationNodeBlendTree] 建立的動畫節點有用。時間參數 "
+"[param time] 是一個相對的差異量,除非 [param seek] 是 [code]true[/code],此時"
+"它是絕對的。可以選擇傳入篩選模式(選項請參閱 [enum FilterAction])。"
+
+msgid ""
+"Blend another animation node (in case this animation node contains children "
+"animation nodes). This function is only useful if you inherit from "
+"[AnimationRootNode] instead, else editors will not display your animation "
+"node for addition."
+msgstr ""
+"混合另一個動畫節點(在這個動畫節點包含子動畫節點的情況下)。這個函式只有在你繼"
+"承 [AnimationRootNode] 時才有用,否則編輯器在新增節點時不會顯示你的動畫節點。"
+
+msgid ""
+"Returns the input index which corresponds to [param name]. If not found, "
+"returns [code]-1[/code]."
+msgstr ""
+"返回與名稱 [param name] 相關的輸入索引,如果不存在則返回 [code]-1[/code]。"
+
+msgid ""
+"Amount of inputs in this animation node, only useful for animation nodes that "
+"go into [AnimationNodeBlendTree]."
+msgstr ""
+"這個動畫節點的輸入數量,只對進入 [AnimationNodeBlendTree] 的動畫節點有用。"
+
+msgid "Gets the name of an input by index."
+msgstr "通過索引獲取輸入的名稱。"
+
+msgid ""
+"Gets the value of a parameter. Parameters are custom local memory used for "
+"your animation nodes, given a resource can be reused in multiple trees."
+msgstr ""
+"獲取一個參數的值。參數是你的動畫節點使用的自訂本地記憶體,給定的資源可以在多個"
+"樹中重複使用。"
+
+msgid "Returns whether the given path is filtered."
+msgstr "返回給定路徑是否被篩選。"
+
+msgid "Removes an input, call this only when inactive."
+msgstr "移除輸入,僅在處於非活動狀態時呼叫此輸入。"
+
+msgid "Adds or removes a path for the filter."
+msgstr "新增或移除篩選器的路徑。"
+
+msgid ""
+"Sets the name of the input at the given [param input] index. If the setting "
+"fails, returns [code]false[/code]."
+msgstr ""
+"在給定的 [param input] 索引處設定輸入的名稱。如果設定失敗,返回 [code]false[/"
+"code]。"
+
+msgid ""
+"Sets a custom parameter. These are used as local memory, because resources "
+"can be reused across the tree or scenes."
+msgstr ""
+"設定一個自訂參數。這些參數被用作本地記憶體,因為資源可以在樹或場景中重複使用。"
+
+msgid "If [code]true[/code], filtering is enabled."
+msgstr "如果為 [code]true[/code],則啟用篩選功能。"
+
+msgid ""
+"Emitted by nodes that inherit from this class and that have an internal tree "
+"when one of their animation nodes removes. The animation nodes that emit this "
+"signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], "
+"[AnimationNodeStateMachine], and [AnimationNodeBlendTree]."
+msgstr ""
+"由繼承自該類的節點發出,並且當其中一個動畫節點移除時具有內部樹。發出此訊號的動"
+"畫節點可以是 [AnimationNodeBlendSpace1D]、[AnimationNodeBlendSpace2D]、"
+"[AnimationNodeStateMachine] 和 [AnimationNodeBlendTree]。"
+
+msgid ""
+"Emitted by nodes that inherit from this class and that have an internal tree "
+"when one of their animation node names changes. The animation nodes that emit "
+"this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], "
+"[AnimationNodeStateMachine], and [AnimationNodeBlendTree]."
+msgstr ""
+"由繼承自該類的節點發出,並且當其中一個動畫節點名稱更改時具有內部樹。發出此信號"
+"的動畫節點可以是 [AnimationNodeBlendSpace1D]、[AnimationNodeBlendSpace2D]、"
+"[AnimationNodeStateMachine] 和 [AnimationNodeBlendTree]。"
+
+msgid ""
+"Emitted by nodes that inherit from this class and that have an internal tree "
+"when one of their animation nodes changes. The animation nodes that emit this "
+"signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], "
+"[AnimationNodeStateMachine], [AnimationNodeBlendTree] and "
+"[AnimationNodeTransition]."
+msgstr ""
+"由繼承自該類的節點發出,並且當其一個動畫節點發生變化時具有內部樹。發出此訊號的"
+"動畫節點可以是 [AnimationNodeBlendSpace1D]、[AnimationNodeBlendSpace2D]、"
+"[AnimationNodeStateMachine]、[AnimationNodeBlendTree] 和 "
+"[AnimationNodeTransition]。"
+
+msgid "Do not use filtering."
+msgstr "不要使用篩選功能。"
+
+msgid "Paths matching the filter will be allowed to pass."
+msgstr "與篩選器配對的路徑將被允許通過。"
+
+msgid "Paths matching the filter will be discarded."
+msgstr "與篩選器配對的路徑將被丟棄。"
+
+msgid "Paths matching the filter will be blended (by the blend value)."
+msgstr "與篩選器配對的路徑將被混合(根據混合值)。"
+
+msgid "Blends two animations additively inside of an [AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中加法地混合兩個動畫。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"additively based on the amount value.\n"
+"If the amount is greater than [code]1.0[/code], the animation connected to "
+"\"in\" port is blended with the amplified animation connected to \"add\" "
+"port.\n"
+"If the amount is less than [code]0.0[/code], the animation connected to "
+"\"in\" port is blended with the inverted animation connected to \"add\" port."
+msgstr ""
+"可新增到 [AnimationNodeBlendTree] 的資源。根據取值將兩個動畫加法混合在一起。\n"
+"如果取值大於 [code]1.0[/code],則與“in”埠相連的動畫相混合的是放大後的與“add”埠"
+"相連的動畫。\n"
+"如果取值小於 [code]0.0[/code],則與“in”埠相連的動畫相混合的是反轉後的與“add”埠"
+"相連的動畫。"
+
+msgid ""
+"Blends two of three animations additively inside of an "
+"[AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中將三個動畫中的兩個動畫相加。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out "
+"of three additively out of three based on the amount value.\n"
+"This animation node has three inputs:\n"
+"- The base animation to add to\n"
+"- A \"-add\" animation to blend with when the blend amount is negative\n"
+"- A \"+add\" animation to blend with when the blend amount is positive\n"
+"If the absolute value of the amount is greater than [code]1.0[/code], the "
+"animation connected to \"in\" port is blended with the amplified animation "
+"connected to \"-add\"/\"+add\" port."
+msgstr ""
+"可新增到 [AnimationNodeBlendTree] 的資源。根據取值將三個動畫中的兩個進行加法混"
+"合。\n"
+"這個動畫節點有三個輸入:\n"
+"- 加法混合的基礎動畫\n"
+"- 混合取值為負時進行混合的“-add”動畫\n"
+"- 混合取值為正時進行混合的“+add”動畫\n"
+"如果取值的絕對值大於 [code]1.0[/code],則與“in”埠相連的動畫相混合的是放大後的"
+"與“-add”/“+add”埠相連的動畫。"
+
+msgid "An input animation for an [AnimationNodeBlendTree]."
+msgstr "[AnimationNodeBlendTree] 的輸入動畫。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Only has one output port "
+"using the [member animation] property. Used as an input for [AnimationNode]s "
+"that blend animations together."
+msgstr ""
+"一種新增到 [AnimationNodeBlendTree] 的資源。只有一個輸出埠,使用的是 [member "
+"animation] 屬性。可用作 [AnimationNode] 的輸入,將動畫混合在一起。"
+
+msgid "3D Platformer Demo"
+msgstr "3D 平臺跳躍演示"
+
+msgid ""
+"Animation to use as an output. It is one of the animations provided by "
+"[member AnimationTree.anim_player]."
+msgstr ""
+"作為輸出使用的動畫。它是 [member AnimationTree.anim_player] 提供的動畫之一。"
+
+msgid "Determines the playback direction of the animation."
+msgstr "確定動畫的播放方向。"
+
+msgid "Plays animation in forward direction."
+msgstr "正序播放動畫。"
+
+msgid "Plays animation in backward direction."
+msgstr "逆序播放動畫。"
+
+msgid "Blends two animations linearly inside of an [AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中將兩個動畫進行線性混合。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"linearly based on the amount value.\n"
+"In general, the blend value should be in the [code][0.0, 1.0][/code] range. "
+"Values outside of this range can blend amplified or inverted animations, "
+"however, [AnimationNodeAdd2] works better for this purpose."
+msgstr ""
+"新增到 [AnimationNodeBlendTree] 的資源。根據取值將兩個動畫進行線性混合。\n"
+"一般而言,混合值應該在 [code][0.0, 1.0][/code] 的範圍內。超出該範圍的值可以混"
+"合放大或翻轉後的動畫,然而,這種場合 [AnimationNodeAdd2] 的效果更好。"
+
+msgid ""
+"Blends two of three animations linearly inside of an [AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中將三個動畫中的兩個進行線性混合。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations out "
+"of three linearly out of three based on the amount value.\n"
+"This animation node has three inputs:\n"
+"- The base animation to blend with\n"
+"- A \"-blend\" animation to blend with when the blend amount is negative "
+"value\n"
+"- A \"+blend\" animation to blend with when the blend amount is positive "
+"value\n"
+"In general, the blend value should be in the [code][-1.0, 1.0][/code] range. "
+"Values outside of this range can blend amplified animations, however, "
+"[AnimationNodeAdd3] works better for this purpose."
+msgstr ""
+"可新增到 [AnimationNodeBlendTree] 的資源。根據取值將三個動畫中的兩個進行線性混"
+"合。\n"
+"這個動畫節點有三個輸入:\n"
+"- 加法混合的基礎動畫\n"
+"- 混合取值為負時進行混合的“-blend”動畫\n"
+"- 混合取值為正時進行混合的“+blend”動畫\n"
+"一般而言,混合值應該在 [code][-1.0, 1.0][/code] 的範圍內。在此範圍外的取值能夠"
+"混合放大後的動畫,然而這種場合使用 [AnimationNodeAdd3] 更合適。"
+
+msgid ""
+"A set of [AnimationRootNode]s placed on a virtual axis, crossfading between "
+"the two adjacent ones. Used by [AnimationTree]."
+msgstr ""
+"一組放置在一個虛擬軸上的 [AnimationRootNode],在兩個相鄰節點之間交叉淡化。被 "
+"[AnimationTree] 使用。"
+
+msgid ""
+"A resource used by [AnimationNodeBlendTree].\n"
+"[AnimationNodeBlendSpace1D] represents a virtual axis on which any type of "
+"[AnimationRootNode]s can be added using [method add_blend_point]. Outputs the "
+"linear blend of the two [AnimationRootNode]s adjacent to the current value.\n"
+"You can set the extents of the axis with [member min_space] and [member "
+"max_space]."
+msgstr ""
+"可新增到 [AnimationNodeBlendTree] 的資源。\n"
+"[AnimationNodeBlendSpace1D] 代表一個虛擬軸,可以使用 [method add_blend_point] "
+"在上面新增任何型別的 [AnimationRootNode]。輸出的是最接近目前值的兩個 "
+"[AnimationRootNode] 之間的線性混合。\n"
+"可以使用 [member min_space] 和 [member max_space] 來擴充軸的範圍。"
+
+msgid ""
+"Adds a new point that represents a [param node] on the virtual axis at a "
+"given position set by [param pos]. You can insert it at a specific index "
+"using the [param at_index] argument. If you use the default value for [param "
+"at_index], the point is inserted at the end of the blend points array."
+msgstr ""
+"在虛擬軸上 [param pos] 設定的給定位置新增一個代表 [param node] 的新點。你可以"
+"使用 [param at_index] 參數將其插入到特定的索引處。如果使用 [param at_index] 的"
+"預設值,這個點會被插入到混合點陣列的末尾。"
+
+msgid "Returns the number of points on the blend axis."
+msgstr "返回混合軸上的點的數量。"
+
+msgid ""
+"Returns the [AnimationNode] referenced by the point at index [param point]."
+msgstr "返回索引 [param point] 處的點所引用的 [AnimationNode]。"
+
+msgid "Returns the position of the point at index [param point]."
+msgstr "返回索引 [param point] 處的點的位置。"
+
+msgid "Removes the point at index [param point] from the blend axis."
+msgstr "從混合軸移除索引 [param point] 處的點。"
+
+msgid ""
+"Changes the [AnimationNode] referenced by the point at index [param point]."
+msgstr "更改索引 [param point] 處的點所引用的 [AnimationNode]。"
+
+msgid ""
+"Updates the position of the point at index [param point] on the blend axis."
+msgstr "更新混合軸上索引 [param point] 處的點的位置。"
+
+msgid ""
+"Controls the interpolation between animations. See [enum BlendMode] constants."
+msgstr "控制動畫之間的插值。見 [enum BlendMode] 常數。"
+
+msgid ""
+"The blend space's axis's upper limit for the points' position. See [method "
+"add_blend_point]."
+msgstr "用於點位置的混合空間軸的上限。見 [method add_blend_point]。"
+
+msgid ""
+"The blend space's axis's lower limit for the points' position. See [method "
+"add_blend_point]."
+msgstr "用於點位置的混合空間軸的下限。見 [method add_blend_point]。"
+
+msgid "Position increment to snap to when moving a point on the axis."
+msgstr "當在軸上移動一個點時,要捕捉到的位置差異量。"
+
+msgid ""
+"If [code]false[/code], the blended animations' frame are stopped when the "
+"blend value is [code]0[/code].\n"
+"If [code]true[/code], forcing the blended animations to advance frame."
+msgstr ""
+"如果為 [code]false[/code],則當混合值為 [code]0[/code] 時,停止混合動畫的影"
+"格。\n"
+"如果為 [code]true[/code],則強制混合動畫以前進影格。"
+
+msgid "Label of the virtual axis of the blend space."
+msgstr "混合空間虛擬軸的標籤。"
+
+msgid "The interpolation between animations is linear."
+msgstr "動畫之間的插值是線性的。"
+
+msgid ""
+"The blend space plays the animation of the animation node which blending "
+"position is closest to. Useful for frame-by-frame 2D animations."
+msgstr "混合空間播放混合位置最接近的動畫節點的動畫。可用於逐影格的 2D 動畫。"
+
+msgid ""
+"Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at "
+"the last animation's playback position."
+msgstr ""
+"類似於 [constant BLEND_MODE_DISCRETE],但在最後一個動畫的播放位置開始新的動"
+"畫。"
+
+msgid ""
+"A set of [AnimationRootNode]s placed on 2D coordinates, crossfading between "
+"the three adjacent ones. Used by [AnimationTree]."
+msgstr ""
+"一組放置在 2D 座標上的 [AnimationRootNode],在三個相鄰節點之間交叉淡化。被 "
+"[AnimationTree] 使用。"
+
+msgid ""
+"A resource used by [AnimationNodeBlendTree].\n"
+"[AnimationNodeBlendSpace1D] represents a virtual 2D space on which "
+"[AnimationRootNode]s are placed. Outputs the linear blend of the three "
+"adjacent animations using a [Vector2] weight. Adjacent in this context means "
+"the three [AnimationRootNode]s making up the triangle that contains the "
+"current value.\n"
+"You can add vertices to the blend space with [method add_blend_point] and "
+"automatically triangulate it by setting [member auto_triangles] to "
+"[code]true[/code]. Otherwise, use [method add_triangle] and [method "
+"remove_triangle] to triangulate the blend space by hand."
+msgstr ""
+"[AnimationNodeBlendTree] 使用的資源。\n"
+"[AnimationNodeBlendSpace1D] 代表放置 [AnimationRootNode] 的虛擬 2D 空間。輸出"
+"的是使用 [Vector2] 權重對相鄰的三個動畫進行線性混合的結果。此處的“相鄰”指的是"
+"構成包含目前值的三角形的三個 [AnimationRootNode]。\n"
+"你可以使用 [method add_blend_point] 向混合空間中新增頂點,將 [member "
+"auto_triangles] 設為 [code]true[/code] 可以將其自動三角形化。否則,請使用 "
+"[method add_triangle] 和 [method remove_triangle] 手動對混合空間進行三角形化。"
+
+msgid ""
+"Adds a new point that represents a [param node] at the position set by [param "
+"pos]. You can insert it at a specific index using the [param at_index] "
+"argument. If you use the default value for [param at_index], the point is "
+"inserted at the end of the blend points array."
+msgstr ""
+"在 [param pos] 設定的位置新增一個代表 [param node] 的新點。你可以使用 [param "
+"at_index] 參數將其插入到特定的索引中。如果使用 [param at_index] 的預設值,這個"
+"點會被插入到混合點陣列的末尾。"
+
+msgid ""
+"Creates a new triangle using three points [param x], [param y], and [param "
+"z]. Triangles can overlap. You can insert the triangle at a specific index "
+"using the [param at_index] argument. If you use the default value for [param "
+"at_index], the point is inserted at the end of the blend points array."
+msgstr ""
+"使用三個點 [param x]、[param y] 和 [param z] 建立一個新三角形。三角形可以重"
+"疊。可以使用 [param at_index] 參數在特定索引處插入三角形。如果使用 [param "
+"at_index] 的預設值,該點將插入到混合點陣列的末尾。"
+
+msgid "Returns the number of points in the blend space."
+msgstr "返回混合空間中的點的數量。"
+
+msgid ""
+"Returns the [AnimationRootNode] referenced by the point at index [param "
+"point]."
+msgstr "返回索引 [param point] 處的點所引用的 [AnimationRootNode]。"
+
+msgid "Returns the number of triangles in the blend space."
+msgstr "返回混合空間中三角形的數量。"
+
+msgid ""
+"Returns the position of the point at index [param point] in the triangle of "
+"index [param triangle]."
+msgstr "返回索引 [param point] 處的點在索引 [param triangle] 的三角形中的位置。"
+
+msgid "Removes the point at index [param point] from the blend space."
+msgstr "從混合空間中移除索引 [param point] 處的點。"
+
+msgid "Removes the triangle at index [param triangle] from the blend space."
+msgstr "從混合空間中移除索引 [param triangle] 處的三角形。"
+
+msgid ""
+"If [code]true[/code], the blend space is triangulated automatically. The mesh "
+"updates every time you add or remove points with [method add_blend_point] and "
+"[method remove_blend_point]."
+msgstr ""
+"如果為 [code]true[/code],混合空間會自動進行三角測量。每次使用 [method "
+"add_blend_point] 和 [method remove_blend_point] 新增或移除點時,網格都會更新。"
+
+msgid ""
+"The blend space's X and Y axes' upper limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+"用於點的位置的混合空間的 X 軸和 Y 軸的上限。請參閱 [method add_blend_point]。"
+
+msgid ""
+"The blend space's X and Y axes' lower limit for the points' position. See "
+"[method add_blend_point]."
+msgstr ""
+"用於點的位置的混合空間的 X 軸和 Y 軸的下限。請參閱 [method add_blend_point]。"
+
+msgid "Position increment to snap to when moving a point."
+msgstr "移動點時要吸附到的位置差異量。"
+
+msgid "Name of the blend space's X axis."
+msgstr "混合空間 X 軸的名稱。"
+
+msgid "Name of the blend space's Y axis."
+msgstr "混合空間 Y 軸的名稱。"
+
+msgid ""
+"Emitted every time the blend space's triangles are created, removed, or when "
+"one of their vertices changes position."
+msgstr "每當建立、移除混合空間的三角形,或當其中一個頂點改變位置時發出。"
+
+msgid ""
+"A sub-tree of many type [AnimationNode]s used for complex animations. Used by "
+"[AnimationTree]."
+msgstr ""
+"用於複雜動畫的許多型別 [AnimationNode] 的子樹。由 [AnimationTree] 使用。"
+
+msgid ""
+"This animation node may contain a sub-tree of any other type animation nodes, "
+"such as [AnimationNodeTransition], [AnimationNodeBlend2], "
+"[AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most "
+"commonly used animation node roots.\n"
+"An [AnimationNodeOutput] node named [code]output[/code] is created by default."
+msgstr ""
+"這個動畫節點可以包含任何其他型別動畫節點的子樹,例如 "
+"[AnimationNodeTransition]、[AnimationNodeBlend2]、[AnimationNodeBlend3]、"
+"[AnimationNodeOneShot] 等。這是最常用的動畫節點根之一。\n"
+"預設會建立一個名為 [code]output[/code] 的 [AnimationNodeOutput] 節點。"
+
+msgid ""
+"Adds an [AnimationNode] at the given [param position]. The [param name] is "
+"used to identify the created sub animation node later."
+msgstr ""
+"在給定的位置 [param position] 新增一個 [AnimationNode]。[param name] 用於後續"
+"識別該建立的子動畫節點。"
+
+msgid ""
+"Connects the output of an [AnimationNode] as input for another "
+"[AnimationNode], at the input port specified by [param input_index]."
+msgstr ""
+"連接一個 [AnimationNode] 的輸出作為另一個 [AnimationNode] 的輸入,連接在 "
+"[param input_index] 指定的輸入埠。"
+
+msgid "Disconnects the animation node connected to the specified input."
+msgstr "斷開連接到指定輸入端的動畫節點。"
+
+msgid "Returns the sub animation node with the specified [param name]."
+msgstr "返回名稱為 [param name] 的子動畫節點。"
+
+msgid ""
+"Returns the position of the sub animation node with the specified [param "
+"name]."
+msgstr "返回名稱為 [param name] 的子動畫節點的位置。"
+
+msgid ""
+"Returns [code]true[/code] if a sub animation node with specified [param name] "
+"exists."
+msgstr "如果存在名稱為 [param name] 的動畫子節點,則返回 [code]true[/code]。"
+
+msgid "Removes a sub animation node."
+msgstr "移除一個子動畫節點。"
+
+msgid "Changes the name of a sub animation node."
+msgstr "更改子動畫節點的名稱。"
+
+msgid "Modifies the position of a sub animation node."
+msgstr "修改子動畫節點的位置。"
+
+msgid "The global offset of all sub animation nodes."
+msgstr "所有子動畫節點的全域偏移量。"
+
+msgid "Emitted when the input port information is changed."
+msgstr "當輸入埠資訊發生更改時發出。"
+
+msgid "The connection was successful."
+msgstr "連接成功。"
+
+msgid "The input node is [code]null[/code]."
+msgstr "輸入節點為 [code]null[/code]。"
+
+msgid "The specified input port is out of range."
+msgstr "指定的輸入埠超出範圍。"
+
+msgid "The output node is [code]null[/code]."
+msgstr "輸出節點為 [code]null[/code]。"
+
+msgid "Input and output nodes are the same."
+msgstr "輸入和輸出節點相同。"
+
+msgid "The specified connection already exists."
+msgstr "指定的連接已經存在。"
+
+msgid "Plays an animation once in an [AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中播放一次動畫。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. This animation node will "
+"execute a sub-animation and return once it finishes. Blend times for fading "
+"in and out can be customized, as well as filters.\n"
+"After setting the request and changing the animation playback, the one-shot "
+"node automatically clears the request on the next process frame by setting "
+"its [code]request[/code] value to [constant ONE_SHOT_REQUEST_NONE].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Play child animation connected to \"shot\" port.\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FIRE)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FIRE\n"
+"\n"
+"# Abort child animation connected to \"shot\" port.\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_ABORT)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_ABORT\n"
+"\n"
+"# Abort child animation with fading out connected to \"shot\" port.\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FADE_OUT)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FADE_OUT\n"
+"\n"
+"# Get current state (read-only).\n"
+"animation_tree.get(\"parameters/OneShot/active\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/OneShot/active\"]\n"
+"\n"
+"# Get current internal state (read-only).\n"
+"animation_tree.get(\"parameters/OneShot/internal_active\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/OneShot/internal_active\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Play child animation connected to \"shot\" port.\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.Fire);\n"
+"\n"
+"// Abort child animation connected to \"shot\" port.\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.Abort);\n"
+"\n"
+"// Abort child animation with fading out connected to \"shot\" port.\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.FadeOut);\n"
+"\n"
+"// Get current state (read-only).\n"
+"animationTree.Get(\"parameters/OneShot/active\");\n"
+"\n"
+"// Get current internal state (read-only).\n"
+"animationTree.Get(\"parameters/OneShot/internal_active\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"新增到 [AnimationNodeBlendTree] 的資源。這個動畫節點將執行子動畫並在完成後返"
+"回。可以自訂淡入和淡出的混合時間以及篩檢程式。\n"
+"在設定請求並更改動畫播放後,一次性節點會在下一個處理影格中通過將其 "
+"[code]request[/code] 值設定為 [constant ONE_SHOT_REQUEST_NONE] 來自動清除請"
+"求。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 播放連接到 “shot” 埠的子動畫。\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FIRE)\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FIRE\n"
+"\n"
+"# 中止連接到 “shot” 埠的子動畫。\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_ABORT)\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FADE_OUT\n"
+"\n"
+"# 使用淡出的方法中止連接到 “shot”埠的子動畫。\n"
+"animation_tree.set(\"parameters/OneShot/request\", AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FADE_OUT)\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/OneShot/request\"] = AnimationNodeOneShot."
+"ONE_SHOT_REQUEST_FADE_OUT\n"
+"\n"
+"# 獲取目前狀態(唯讀)。\n"
+"animation_tree.get(\"parameters/OneShot/active\"))\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/OneShot/active\"]\n"
+"\n"
+"# 獲取目前內部狀態(唯讀)。\n"
+"animation_tree.get(\"parameters/OneShot/internal_active\")\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/OneShot/internal_active\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 播放連接到 “shot” 埠的子動畫。\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.Fire);\n"
+"\n"
+"// 中止連接到 “shot” 埠的子動畫。\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.Abort);\n"
+"\n"
+"// 使用淡出的方法中止連接到 “shot”埠的子動畫。\n"
+"animationTree.Set(\"parameters/OneShot/request\", (int)AnimationNodeOneShot."
+"OneShotRequest.FadeOut);\n"
+"\n"
+"// 獲取目前狀態(唯讀)。\n"
+"animationTree.Get(\"parameters/OneShot/active\");\n"
+"\n"
+"// 獲取目前內部狀態(唯讀)。\n"
+"animationTree.Get(\"parameters/OneShot/internal_active\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"If [code]true[/code], the sub-animation will restart automatically after "
+"finishing.\n"
+"In other words, to start auto restarting, the animation must be played once "
+"with the [constant ONE_SHOT_REQUEST_FIRE] request. The [constant "
+"ONE_SHOT_REQUEST_ABORT] request stops the auto restarting, but it does not "
+"disable the [member autorestart] itself. So, the [constant "
+"ONE_SHOT_REQUEST_FIRE] request will start auto restarting again."
+msgstr ""
+"如果為 [code]true[/code],子動畫結束後會自動重新開始。\n"
+"換句話說,要開始自動重啟,必須使用 [constant ONE_SHOT_REQUEST_FIRE] 請求播放一"
+"次動畫。[constant ONE_SHOT_REQUEST_ABORT] 請求停止自動重啟,但它不會禁用 "
+"[member autorestart] 本身。因此,[constant ONE_SHOT_REQUEST_FIRE] 請求將再次開"
+"始自動重啟。"
+
+msgid "The delay after which the automatic restart is triggered, in seconds."
+msgstr "觸發自動重啟的延遲時間,以秒為單位。"
+
+msgid ""
+"If [member autorestart] is [code]true[/code], a random additional delay (in "
+"seconds) between 0 and this value will be added to [member autorestart_delay]."
+msgstr ""
+"如果 [member autorestart] 為 [code]true[/code],則介於0和此值之間的隨機附加延"
+"遲(以秒為單位)將新增到 [member autorestart_delay]。"
+
+msgid ""
+"Determines how cross-fading between animations is eased. If empty, the "
+"transition will be linear."
+msgstr "確定如何緩動動畫之間的淡入淡出。如果為空,過渡將是線性的。"
+
+msgid ""
+"The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 "
+"second length animation will produce a cross-fade that starts at 0 second and "
+"ends at 1 second during the animation."
+msgstr ""
+"淡入持續時間。例如,將此屬性設定為 [code]1.0[/code],對於 5 秒長的動畫,將在動"
+"畫期間產生從 0 秒開始到 1 秒結束的交叉淡入淡出。"
+
+msgid ""
+"The fade-out duration. For example, setting this to [code]1.0[/code] for a 5 "
+"second length animation will produce a cross-fade that starts at 4 second and "
+"ends at 5 second during the animation."
+msgstr ""
+"淡出持續時間。例如,將此屬性設定為 [code]1.0[/code],對於 5 秒長的動畫,將產生"
+"從 4 秒開始到 5 秒結束的交叉淡入淡出。"
+
+msgid "The blend type."
+msgstr "混合型別。"
+
+msgid "The default state of the request. Nothing is done."
+msgstr "請求的預設狀態。未完成任何操作。"
+
+msgid "The request to play the animation connected to \"shot\" port."
+msgstr "播放連接到“shot”埠的動畫的請求。"
+
+msgid "The request to stop the animation connected to \"shot\" port."
+msgstr "停止連接到“shot”埠的動畫的請求。"
+
+msgid "The request to fade out the animation connected to \"shot\" port."
+msgstr "淡出連接到“shot”埠的動畫的請求。"
+
+msgid "Blends two animations. See also [AnimationNodeBlend2]."
+msgstr "混合兩個動畫。另請參見 [AnimationNodeBlend2]。"
+
+msgid "Blends two animations additively. See also [AnimationNodeAdd2]."
+msgstr "以相加方式混合兩個動畫。另請參閱 [AnimationNodeAdd2]。"
+
+msgid "The animation output node of an [AnimationNodeBlendTree]."
+msgstr "[AnimationNodeBlendTree] 的動畫輸出節點。"
+
+msgid ""
+"A node created automatically in an [AnimationNodeBlendTree] that outputs the "
+"final animation."
+msgstr "在輸出最終動畫的 [AnimationNodeBlendTree] 中自動建立的節點。"
+
+msgid ""
+"A state machine with multiple [AnimationRootNode]s, used by [AnimationTree]."
+msgstr "帶有多個 [AnimationRootNode] 的狀態機,用於 [AnimationTree]。"
+
+msgid ""
+"Contains multiple [AnimationRootNode]s representing animation states, "
+"connected in a graph. State transitions can be configured to happen "
+"automatically or via code, using a shortest-path algorithm. Retrieve the "
+"[AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to "
+"control it programmatically.\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\") as AnimationNodeStateMachinePlayback;\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"包含表示動畫狀態的多個 [AnimationRootNode],以圖的形式連接。可以使用最短路徑演"
+"算法,將節點過渡配置為自動發生或通過程式碼發生。要以程式設計的方式控制過渡,請"
+"從 [AnimationTree] 節點獲取 [AnimationNodeStateMachinePlayback] 對象。\n"
+"[b]範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\") as AnimationNodeStateMachinePlayback;\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Adds a new animation node to the graph. The [param position] is used for "
+"display in the editor."
+msgstr "向圖中新增一個新的動畫節點。[param position] 用於在編輯器中顯示。"
+
+msgid "Adds a transition between the given animation nodes."
+msgstr "在給定動畫節點之間新增一個過渡。"
+
+msgid "Returns the draw offset of the graph. Used for display in the editor."
+msgstr "返回圖的繪製偏移。用於在編輯器中顯示。"
+
+msgid "Returns the animation node with the given name."
+msgstr "返回指定名稱的動畫節點。"
+
+msgid "Returns the given animation node's name."
+msgstr "返回指定動畫節點的名稱。"
+
+msgid ""
+"Returns the given animation node's coordinates. Used for display in the "
+"editor."
+msgstr "返回給定動畫節點的座標。用於在編輯器中顯示。"
+
+msgid "Returns the given transition."
+msgstr "返回給定的過渡。"
+
+msgid "Returns the number of connections in the graph."
+msgstr "返回圖中的連接數。"
+
+msgid "Returns the given transition's start node."
+msgstr "返回給定過渡的開始節點。"
+
+msgid "Returns the given transition's end node."
+msgstr "返回給定過渡的末端節點。"
+
+msgid ""
+"Returns [code]true[/code] if the graph contains the given animation node."
+msgstr "如果圖中包含給定的動畫節點,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if there is a transition between the given "
+"animation nodes."
+msgstr "如果在給定動畫節點之間存在過渡,則返回 [code]true[/code]。"
+
+msgid "Deletes the given animation node from the graph."
+msgstr "從圖中刪除指定的動畫節點。"
+
+msgid "Deletes the transition between the two specified animation nodes."
+msgstr "刪除兩個指定動畫節點之間的過渡。"
+
+msgid "Deletes the given transition by index."
+msgstr "按索引刪除給定的過渡。"
+
+msgid "Renames the given animation node."
+msgstr "重命名給定的動畫節點。"
+
+msgid "Sets the draw offset of the graph. Used for display in the editor."
+msgstr "設定圖形的繪製偏移。用於在編輯器中顯示。"
+
+msgid "Sets the animation node's coordinates. Used for display in the editor."
+msgstr "設定動畫節點的座標。用於在編輯器中顯示。"
+
+msgid ""
+"If [code]true[/code], allows teleport to the self state with [method "
+"AnimationNodeStateMachinePlayback.travel]. When the reset option is enabled "
+"in [method AnimationNodeStateMachinePlayback.travel], the animation is "
+"restarted. If [code]false[/code], nothing happens on the teleportation to the "
+"self state."
+msgstr ""
+"如果為 [code]true[/code],允許使用 [method AnimationNodeStateMachinePlayback."
+"travel] 傳送到目前狀態。當在 [method AnimationNodeStateMachinePlayback."
+"travel] 中啟用重設選項時,動畫將重新啟動。如果為 [code]false[/code],傳送到當"
+"前狀態時不會發生任何事情。"
+
+msgid ""
+"If [code]true[/code], treat the cross-fade to the start and end nodes as a "
+"blend with the RESET animation.\n"
+"In most cases, when additional cross-fades are performed in the parent "
+"[AnimationNode] of the state machine, setting this property to [code]false[/"
+"code] and matching the cross-fade time of the parent [AnimationNode] and the "
+"state machine's start node and end node gives good results."
+msgstr ""
+"如果為 [code]true[/code],則將與開始和結束節點的淡入淡出視為與 RESET 動畫的混"
+"合。\n"
+"大多數情況下,狀態機的父級 [AnimationNode] 執行額外的淡入淡出時,將這個屬性設"
+"置為 [code]false[/code] 並將父 [AnimationNode] 和該狀態機的開始和結束節點的淡"
+"入淡出時間設為相同的值能夠得到不錯的效果。"
+
+msgid ""
+"This property can define the process of transitions for different use cases. "
+"See also [enum AnimationNodeStateMachine.StateMachineType]."
+msgstr ""
+"該屬性可以為不同用例定義過渡過程。另見 [enum AnimationNodeStateMachine."
+"StateMachineType]。"
+
+msgid ""
+"Seeking to the beginning is treated as playing from the start state. "
+"Transition to the end state is treated as exiting the state machine."
+msgstr "尋道到開頭被視為從開始狀態開始播放。過渡到結束狀態被視為退出狀態機。"
+
+msgid ""
+"Seeking to the beginning is treated as seeking to the beginning of the "
+"animation in the current state. Transition to the end state, or the absence "
+"of transitions in each state, is treated as exiting the state machine."
+msgstr ""
+"尋道到開頭被視為在目前狀態下尋道到動畫的開頭。過渡到結束狀態,或每個狀態的過渡"
+"都缺失,被視為退出狀態機。"
+
+msgid ""
+"This is a grouped state machine that can be controlled from a parent state "
+"machine. It does not work on standalone. There must be a state machine with "
+"[member state_machine_type] of [constant STATE_MACHINE_TYPE_ROOT] or "
+"[constant STATE_MACHINE_TYPE_NESTED] in the parent or ancestor."
+msgstr ""
+"這是一個可以從父狀態機控制的編組的狀態機。它不能獨立運作。父級或祖先中必須有一"
+"個 [member state_machine_type] 為 [constant STATE_MACHINE_TYPE_ROOT] 或 "
+"[constant STATE_MACHINE_TYPE_NESTED] 的狀態機。"
+
+msgid "Provides playback control for an [AnimationNodeStateMachine]."
+msgstr "為 [AnimationNodeStateMachine] 提供播放控制。"
+
+msgid ""
+"Allows control of [AnimationTree] state machines created with "
+"[AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree."
+"get(\"parameters/playback\")[/code].\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\").As();\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"允許控制使用 [AnimationNodeStateMachine] 建立的 [AnimationTree] 狀態機。使用 "
+"[code]$AnimationTree.get(\"parameters/playback\")[/code] 檢索。\n"
+"[b]範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var state_machine = $AnimationTree.get(\"parameters/playback\")\n"
+"state_machine.travel(\"some_state\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var stateMachine = GetNode(\"AnimationTree\").Get(\"parameters/"
+"playback\").As();\n"
+"stateMachine.Travel(\"some_state\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the current state length.\n"
+"[b]Note:[/b] It is possible that any [AnimationRootNode] can be nodes as well "
+"as animations. This means that there can be multiple animations within a "
+"single state. Which animation length has priority depends on the nodes "
+"connected inside it. Also, if a transition does not reset, the remaining "
+"length at that point will be returned."
+msgstr ""
+"返回目前狀態長度。\n"
+"[b]注意:[/b]有可能任何 [AnimationRootNode] 既可以是節點也可以是動畫。這意味著"
+"在單個狀態中可以有多個動畫。哪個動畫長度會優先,取決於其內部連接的節點。此外,"
+"如果過渡未重設,則將返回該點的剩餘長度。"
+
+msgid ""
+"Returns the currently playing animation state.\n"
+"[b]Note:[/b] When using a cross-fade, the current state changes to the next "
+"state immediately after the cross-fade begins."
+msgstr ""
+"返回目前的動畫播放狀態。\n"
+"[b]注意:[/b]使用交叉疊化時,目前狀態會在交叉疊化開始後理解變為下一個狀態。"
+
+msgid "Returns the playback position within the current animation state."
+msgstr "返回目前動畫狀態內的播放位置。"
+
+msgid "Returns the starting state of currently fading animation."
+msgstr "返回目前淡入淡出動畫的開始狀態。"
+
+msgid ""
+"Returns the current travel path as computed internally by the A* algorithm."
+msgstr "返回 A* 演算法內部計算的目前行進路徑。"
+
+msgid "Returns [code]true[/code] if an animation is playing."
+msgstr "如果正在播放動畫,返回 [code]true[/code]。"
+
+msgid ""
+"If there is a next path by travel or auto advance, immediately transitions "
+"from the current state to the next state."
+msgstr "如果通過行進或自動前進有下一條路徑,則立即從目前狀態過渡到下一個狀態。"
+
+msgid ""
+"Starts playing the given animation.\n"
+"If [param reset] is [code]true[/code], the animation is played from the "
+"beginning."
+msgstr ""
+"開始播放給定的動畫。\n"
+"如果 [param reset] 為 [code]true[/code],則動畫從頭開始播放。"
+
+msgid "Stops the currently playing animation."
+msgstr "停止目前播放的動畫。"
+
+msgid ""
+"Transitions from the current state to another one, following the shortest "
+"path.\n"
+"If the path does not connect from the current state, the animation will play "
+"after the state teleports.\n"
+"If [param reset_on_teleport] is [code]true[/code], the animation is played "
+"from the beginning when the travel cause a teleportation."
+msgstr ""
+"按照最短的路徑從目前狀態過渡到另一個狀態。\n"
+"如果路徑沒有連接到目前狀態,則動畫將在狀態傳送後播放。\n"
+"如果 [param reset_on_teleport] 為 [code]true[/code],當行進導致傳送時,該動畫"
+"將從頭開始播放。"
+
+msgid ""
+"A transition within an [AnimationNodeStateMachine] connecting two "
+"[AnimationRootNode]s."
+msgstr "[AnimationNodeStateMachine] 中連接兩個 [AnimationRootNode] 的過渡。"
+
+msgid ""
+"The path generated when using [method AnimationNodeStateMachinePlayback."
+"travel] is limited to the nodes connected by "
+"[AnimationNodeStateMachineTransition].\n"
+"You can set the timing and conditions of the transition in detail."
+msgstr ""
+"使用 [method AnimationNodeStateMachinePlayback.travel] 時生成的路徑,僅限於通"
+"過 [AnimationNodeStateMachineTransition] 連接的節點。\n"
+"可以詳細設定過渡的時機和條件。"
+
+msgid ""
+"Turn on auto advance when this condition is set. The provided name will "
+"become a boolean parameter on the [AnimationTree] that can be controlled from "
+"code (see [url=$DOCS_URL/tutorials/animation/animation_tree.html#controlling-"
+"from-code]Using AnimationTree[/url]). For example, if [member AnimationTree."
+"tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] "
+"is set to [code]\"idle\"[/code]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"$animation_tree.set(\"parameters/conditions/idle\", is_on_floor and "
+"(linear_velocity.x == 0))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetNode(\"animation_tree\").Set(\"parameters/conditions/"
+"idle\", IsOnFloor && (LinearVelocity.X == 0));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"該條件被設定時打開自動前進。提供的名稱將成為 [AnimationTree] 上的布林參數,可"
+"以通過程式碼進行控制(請參閱 [url=$DOCS_URL/tutorials/animation/"
+"animation_tree.html#controlling-from-code]使用 AnimationTree[/url])。例如,如"
+"果 [member AnimationTree.tree_root] 是一個 [AnimationNodeStateMachine] 並且 "
+"[member advance_condition] 被設定為 [code]\"idle\"[/code]:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"$animation_tree.set(\"parameters/conditions/idle\", is_on_floor and "
+"(linear_velocity.x == 0))\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetNode(\"animation_tree\").Set(\"parameters/conditions/"
+"idle\", IsOnFloor && (LinearVelocity.X == 0));\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Use an expression as a condition for state machine transitions. It is "
+"possible to create complex animation advance conditions for switching between "
+"states and gives much greater flexibility for creating complex state machines "
+"by directly interfacing with the script code."
+msgstr ""
+"將運算式用作狀態機過渡的條件。可以為狀態之間的切換建立複雜的動畫推進條件,並通"
+"過直接與腳本程式碼互動為建立複雜的狀態機提供更大的靈活性。"
+
+msgid ""
+"Determines whether the transition should disabled, enabled when using [method "
+"AnimationNodeStateMachinePlayback.travel], or traversed automatically if the "
+"[member advance_condition] and [member advance_expression] checks are true "
+"(if assigned)."
+msgstr ""
+"決定在使用 [method AnimationNodeStateMachinePlayback.travel] 時該過渡是否應該"
+"被禁用/啟用,或者如果 [member advance_condition] 和 [member "
+"advance_expression] 檢查為真則自動行進(如果已分配)。"
+
+msgid ""
+"Lower priority transitions are preferred when travelling through the tree via "
+"[method AnimationNodeStateMachinePlayback.travel] or [member advance_mode] is "
+"set to [constant ADVANCE_MODE_AUTO]."
+msgstr ""
+"當在樹中通過 [method AnimationNodeStateMachinePlayback.travel] 或將 [member "
+"advance_mode] 設定為 [constant ADVANCE_MODE_AUTO] 行進時,傾向於優先順序較低的"
+"過渡。"
+
+msgid ""
+"If [code]true[/code], the destination animation is played back from the "
+"beginning when switched."
+msgstr "如果為 [code]true[/code],切換時目標動畫從頭開始播放。"
+
+msgid "The transition type."
+msgstr "過渡型別。"
+
+msgid ""
+"Ease curve for better control over cross-fade between this state and the next."
+msgstr "緩動曲線可以更好地控制此狀態和下一個狀態之間的交叉淡入淡出。"
+
+msgid "The time to cross-fade between this state and the next."
+msgstr "這個狀態和下一個狀態之間的交叉漸變時間。"
+
+msgid "Emitted when [member advance_condition] is changed."
+msgstr "變更 [member advance_condition] 時發出。"
+
+msgid ""
+"Switch to the next state immediately. The current state will end and blend "
+"into the beginning of the new one."
+msgstr "立即切換到下一個狀態。目前狀態將結束,並混合到新狀態的開始。"
+
+msgid ""
+"Switch to the next state immediately, but will seek the new state to the "
+"playback position of the old state."
+msgstr "立即切換到下一個狀態,但會將新的狀態定位到舊狀態的播放位置。"
+
+msgid ""
+"Wait for the current state playback to end, then switch to the beginning of "
+"the next state animation."
+msgstr "等待目前狀態播放結束,然後切換到下一個狀態動畫的開頭。"
+
+msgid "Don't use this transition."
+msgstr "不要使用該過渡。"
+
+msgid ""
+"Only use this transition during [method AnimationNodeStateMachinePlayback."
+"travel]."
+msgstr "僅在 [method AnimationNodeStateMachinePlayback.travel] 時使用該過渡。"
+
+msgid ""
+"Automatically use this transition if the [member advance_condition] and "
+"[member advance_expression] checks are true (if assigned)."
+msgstr ""
+"如果 [member advance_condition] 和 [member advance_expression] 檢查為真,則自"
+"動使用該過渡(如果已分配)。"
+
+msgid ""
+"Blends two animations subtractively inside of an [AnimationNodeBlendTree]."
+msgstr "在 [AnimationNodeBlendTree] 中對兩個動畫進行減法混合。"
+
+msgid ""
+"A resource to add to an [AnimationNodeBlendTree]. Blends two animations "
+"subtractively based on the amount value.\n"
+"This animation node is usually used for pre-calculation to cancel out any "
+"extra poses from the animation for the \"add\" animation source in "
+"[AnimationNodeAdd2] or [AnimationNodeAdd3].\n"
+"In general, the blend value should be in the [code][0.0, 1.0][/code] range, "
+"but values outside of this range can be used for amplified or inverted "
+"animations.\n"
+"[b]Note:[/b] This calculation is different from using a negative value in "
+"[AnimationNodeAdd2], since the transformation matrices do not satisfy the "
+"commutative law. [AnimationNodeSub2] multiplies the transformation matrix of "
+"the inverted animation from the left side, while negative [AnimationNodeAdd2] "
+"multiplies it from the right side."
+msgstr ""
+"要新增到 [AnimationNodeBlendTree] 的資源。根據數量詞以減法方式混合兩個動畫。\n"
+"該動畫節點通常用於預先計算,從 [AnimationNodeAdd2] 或 [AnimationNodeAdd3] "
+"的“新增”動畫源的動畫中抵消額外的姿勢。\n"
+"一般而言,混合值應在 [code][0.0, 1.0][/code] 範圍內,但超出該範圍的值可用於放"
+"大或反轉動畫。\n"
+"[b]注意:[/b]因為變換矩陣不滿足交換律,這個計算不同於在 [AnimationNodeAdd2] 中"
+"使用負值。[AnimationNodeSub2] 從左側乘以反轉動畫的變換矩陣,而負的 "
+"[AnimationNodeAdd2] 則是從右側相乘。"
+
+msgid "AnimationTree"
+msgstr "動畫樹"
+
+msgid ""
+"Base class for [AnimationNode]s with more than two input ports that must be "
+"synchronized."
+msgstr "帶有兩個以上輸入埠的 [AnimationNode] 基底類別,必須對這兩個埠進行同步。"
+
+msgid ""
+"An animation node used to combine, mix, or blend two or more animations "
+"together while keeping them synchronized within an [AnimationTree]."
+msgstr ""
+"一種動畫節點,用於將兩個或多個動畫組合、混合、或混合在一起,同時使它們在 "
+"[AnimationTree] 中保持同步。"
+
+msgid "A time-scaling animation node used in [AnimationTree]."
+msgstr "對時間進行縮放的動畫節點,在 [AnimationTree] 中使用。"
+
+msgid ""
+"Allows to scale the speed of the animation (or reverse it) in any children "
+"[AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation."
+msgstr ""
+"允許縮放任何子節點中動畫的速度(或反轉)。將其設定為 [code]0.0[/code] 將暫停動"
+"畫。"
+
+msgid "A time-seeking animation node used in [AnimationTree]."
+msgstr "對時間進行檢索的動畫節點,在 [AnimationTree] 中使用。"
+
+msgid ""
+"This animation node can be used to cause a seek command to happen to any sub-"
+"children of the animation graph. Use to play an [Animation] from the start or "
+"a certain playback position inside the [AnimationNodeBlendTree].\n"
+"After setting the time and changing the animation playback, the time seek "
+"node automatically goes into sleep mode on the next process frame by setting "
+"its [code]seek_request[/code] value to [code]-1.0[/code].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Play child animation from the start.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n"
+"\n"
+"# Play child animation from 12 second timestamp.\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Play child animation from the start.\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n"
+"\n"
+"// Play child animation from 12 second timestamp.\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"這個動畫節點可用於使檢索命令發生在動畫圖的任何次級子節點上。用於從 "
+"[AnimationNodeBlendTree] 的開頭或某個特定播放位置開始播放 [Animation]。\n"
+"設定時間並更改動畫播放後,時間檢索節點會在下一個處理影格中將其 "
+"[code]seek_request[/code] 值設定為 [code]-1.0[/code],自動進入睡眠模式。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 從開始處播放子動畫。\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 0.0)\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 0.0\n"
+"\n"
+"# 從 12 秒的時間戳記開始播放子動畫。\n"
+"animation_tree.set(\"parameters/TimeSeek/seek_request\", 12.0)\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/TimeSeek/seek_request\"] = 12.0\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 從開始處播放子動畫。\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 0.0);\n"
+"\n"
+"// 從 12 秒的時間戳記開始播放子動畫。\n"
+"animationTree.Set(\"parameters/TimeSeek/seek_request\", 12.0);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "A transition within an [AnimationTree] connecting two [AnimationNode]s."
+msgstr "[AnimationTree] 中連接兩個 [AnimationNode] 的過渡。"
+
+msgid ""
+"Simple state machine for cases which don't require a more advanced "
+"[AnimationNodeStateMachine]. Animations can be connected to the inputs and "
+"transition times can be specified.\n"
+"After setting the request and changing the animation playback, the transition "
+"node automatically clears the request on the next process frame by setting "
+"its [code]transition_request[/code] value to empty.\n"
+"[b]Note:[/b] When using a cross-fade, [code]current_state[/code] and "
+"[code]current_index[/code] change to the next state immediately after the "
+"cross-fade begins.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Play child animation connected to \"state_2\" port.\n"
+"animation_tree.set(\"parameters/Transition/transition_request\", "
+"\"state_2\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n"
+"\n"
+"# Get current state name (read-only).\n"
+"animation_tree.get(\"parameters/Transition/current_state\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/current_state\"]\n"
+"\n"
+"# Get current state index (read-only).\n"
+"animation_tree.get(\"parameters/Transition/current_index\")\n"
+"# Alternative syntax (same result as above).\n"
+"animation_tree[\"parameters/Transition/current_index\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Play child animation connected to \"state_2\" port.\n"
+"animationTree.Set(\"parameters/Transition/transition_request\", "
+"\"state_2\");\n"
+"\n"
+"// Get current state name (read-only).\n"
+"animationTree.Get(\"parameters/Transition/current_state\");\n"
+"\n"
+"// Get current state index (read-only).\n"
+"animationTree.Get(\"parameters/Transition/current_index\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"適用於不需要更高級 [AnimationNodeStateMachine] 的情況的簡單狀態機。可以將動畫"
+"連接到輸入,還可以指定過渡時間。\n"
+"設定請求並更改動畫播放後,過渡節點會在下一個處理影格中通過將其 "
+"[code]transition_request[/code] 值設定為空,來自動清除請求。\n"
+"[b]注意:[/b]使用交叉淡入淡出時,[code]current_state[/code] 和 "
+"[code]current_index[/code] 在交叉淡入淡出開始後立即更改為下一個狀態。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 播放連接到 “state_2” 埠的子動畫。\n"
+"animation_tree.set(\"parameters/Transition/transition_request\", "
+"\"state_2\")\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/Transition/transition_request\"] = \"state_2\"\n"
+"\n"
+"# 獲取目前狀態名稱(唯讀)。\n"
+"animation_tree.get(\"parameters/Transition/current_state\")\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/Transition/current_state\"]\n"
+"\n"
+"# 獲取目前狀態索引(唯讀)。\n"
+"animation_tree.get(\"parameters/Transition/current_index\"))\n"
+"# 替代語法(與上述結果相同)。\n"
+"animation_tree[\"parameters/Transition/current_index\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 播放連接到 “state_2” 埠的子動畫。\n"
+"animationTree.Set(\"parameters/Transition/transition_request\", "
+"\"state_2\");\n"
+"\n"
+"// 獲取目前狀態名稱(唯讀)。\n"
+"animationTree.Get(\"parameters/Transition/current_state\");\n"
+"\n"
+"// 獲取目前狀態索引(唯讀)。\n"
+"animationTree.Get(\"parameters/Transition/current_index\");\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns whether the animation restarts when the animation transitions from "
+"the other animation."
+msgstr "返回當動畫從另一個動畫過渡時,該動畫是否重新開始。"
+
+msgid ""
+"Returns [code]true[/code] if auto-advance is enabled for the given [param "
+"input] index."
+msgstr ""
+"如果為給定的 [param input] 索引啟用了自動前進,則返回 [code]true[/code]。"
+
+msgid ""
+"Enables or disables auto-advance for the given [param input] index. If "
+"enabled, state changes to the next input after playing the animation once. If "
+"enabled for the last input state, it loops to the first."
+msgstr ""
+"為給定的 [param input] 索引啟用或禁用自動前進。如果啟用,狀態會在播放一次動畫"
+"後更改為下一個輸入。如果為最後一個輸入狀態啟用,它會迴圈到第一個。"
+
+msgid ""
+"If [code]true[/code], the destination animation is restarted when the "
+"animation transitions."
+msgstr "如果為 [code]true[/code],則目標動畫在動畫過渡時重新啟動。"
+
+msgid ""
+"If [code]true[/code], allows transition to the self state. When the reset "
+"option is enabled in input, the animation is restarted. If [code]false[/"
+"code], nothing happens on the transition to the self state."
+msgstr ""
+"如果為 [code]true[/code],允許過渡到目前狀態。當在輸入中啟用重設選項時,動畫將"
+"重新啟動。如果為 [code]false[/code],則在過渡到 目前狀態時不會發生任何事情。"
+
+msgid "The number of enabled input ports for this animation node."
+msgstr "這個動畫節點啟用的輸入埠的數量。"
+
+msgid ""
+"Cross-fading time (in seconds) between each animation connected to the inputs."
+msgstr "連接到輸入的每個動畫之間的交叉漸變時間(秒)。"
+
+msgid "A node used for animation playback."
+msgstr "用於播放動畫的節點。"
+
+msgid ""
+"An animation player is used for general-purpose playback of animations. It "
+"contains a dictionary of [AnimationLibrary] resources and custom blend times "
+"between animation transitions.\n"
+"Some methods and properties use a single key to reference an animation "
+"directly. These keys are formatted as the key for the library, followed by a "
+"forward slash, then the key for the animation within the library, for example "
+"[code]\"movement/run\"[/code]. If the library's key is an empty string (known "
+"as the default library), the forward slash is omitted, being the same key "
+"used by the library.\n"
+"[AnimationPlayer] is better-suited than [Tween] for more complex animations, "
+"for example ones with non-trivial timings. It can also be used over [Tween] "
+"if the animation track editor is more convenient than doing it in code.\n"
+"Updating the target properties of animations occurs at the process frame."
+msgstr ""
+"動畫播放機用於動畫的通用播放。它包含 [AnimationLibrary] 資源的字典和動畫過渡之"
+"間的自訂混合時間。\n"
+"某些方法和屬性使用單個鍵直接引用動畫。這些鍵的格式為動畫庫的鍵,後跟正斜杠,然"
+"後是動畫庫內動畫的鍵,例如 [code]\"movement/run\"[/code]。如果動畫庫的鍵為空字"
+"串(稱為預設庫),則省略正斜杠,與動畫庫使用相同的鍵。\n"
+"[AnimationPlayer] 比 [Tween] 更適合用於複雜動畫,例如不規則計時的動畫。如果用"
+"動畫軌道編輯器比用程式碼實作更方便,也可以優先於 [Tween] 使用。\n"
+"更新動畫的目標屬性是在處理影格中進行的。"
+
+msgid ""
+"Returns the key of the animation which is queued to play after the [param "
+"animation_from] animation."
+msgstr "返回在 [param anim_from] 動畫之後排隊播放的動畫的鍵。"
+
+msgid ""
+"Triggers the [param animation_to] animation when the [param animation_from] "
+"animation completes."
+msgstr "當 [param anim_from] 動畫完成時,觸發 [param anim_to] 動畫。"
+
+msgid "Clears all queued, unplayed animations."
+msgstr "清除所有已排隊、未播放的動畫。"
+
+msgid ""
+"Returns the blend time (in seconds) between two animations, referenced by "
+"their keys."
+msgstr "返回兩個動畫之間的混合時間(以秒為單位),由它們的鍵引用。"
+
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeMethod]."
+msgstr ""
+"為了向後相容。請參閱 [enum AnimationMixer.AnimationCallbackModeMethod]。"
+
+msgid ""
+"For backward compatibility. See [enum AnimationMixer."
+"AnimationCallbackModeProcess]."
+msgstr ""
+"為了向後相容。請參閱 [enum AnimationMixer.AnimationCallbackModeProcess]。"
+
+msgid "Returns a list of the animation keys that are currently queued to play."
+msgstr "返回目前排隊播放的動畫鍵列表。"
+
+msgid "For backward compatibility. See [member AnimationMixer.root_node]."
+msgstr "為了向後相容。請參閱[成員AnimationMixer.root_node]。"
+
+msgid ""
+"Pauses the currently playing animation. The [member "
+"current_animation_position] will be kept and calling [method play] or [method "
+"play_backwards] without arguments or with the same animation name as [member "
+"assigned_animation] will resume the animation.\n"
+"See also [method stop]."
+msgstr ""
+"暫停目前播放的動畫。[member current_animation_position] 將被保留,呼叫 "
+"[method play] 或 [method play_backwards] 時,不帶參數或使用與 [member "
+"assigned_animation] 相同的動畫名稱,將恢復動畫。\n"
+"另見 [method stop]。"
+
+msgid ""
+"Plays the animation with key [param name]. Custom blend times and speed can "
+"be set.\n"
+"The [param from_end] option only affects when switching to a new animation "
+"track, or if the same track but at the start or end. It does not affect "
+"resuming playback that was paused in the middle of an animation. If [param "
+"custom_speed] is negative and [param from_end] is [code]true[/code], the "
+"animation will play backwards (which is equivalent to calling [method "
+"play_backwards]).\n"
+"The [AnimationPlayer] keeps track of its current or last played animation "
+"with [member assigned_animation]. If this method is called with that same "
+"animation [param name], or with no [param name] parameter, the assigned "
+"animation will resume playing if it was paused.\n"
+"[b]Note:[/b] The animation will be updated the next time the "
+"[AnimationPlayer] is processed. If other variables are updated at the same "
+"time this is called, they may be updated too early. To perform the update "
+"immediately, call [code]advance(0)[/code]."
+msgstr ""
+"播放鍵名為 [param name] 的動畫。可以設定自訂混合時間和速度。\n"
+"[param from_end] 選項僅在切換到新的動畫軌道,或在相同軌道的開始或結束時生效。"
+"它不影響在動畫被中途暫停時恢復播放。如果 [param custom_speed] 為負,且 [param "
+"from_end] 為 [code]true[/code],則動畫將向後播放(相當於呼叫 [method "
+"play_backwards])。\n"
+"[AnimationPlayer] 使用 [member assigned_animation] 追蹤其目前或上次播放的動"
+"畫。如果使用相同的動畫 [param name] 或沒有 [param name] 參數呼叫此方法,則分配"
+"的動畫將在暫停時恢復播放。\n"
+"[b]注意:[/b]動畫將在下次處理 [AnimationPlayer] 時更新。如果在呼叫該方法的同時"
+"更新了其他變數,則它們可能更新得太早。要立即執行更新,請呼叫 [code]advance(0)"
+"[/code]。"
+
+msgid ""
+"Queues an animation for playback once the current one is done.\n"
+"[b]Note:[/b] If a looped animation is currently playing, the queued animation "
+"will never play unless the looped animation is stopped somehow."
+msgstr ""
+"將動畫加入佇列,在目前動畫播放完畢後播放。\n"
+"[b]注意:[/b]如果目前正在播放迴圈動畫,除非以某種方式停止迴圈動畫,否則排隊的"
+"動畫將永遠不會播放。"
+
+msgid ""
+"Seeks the animation to the [param seconds] point in time (in seconds). If "
+"[param update] is [code]true[/code], the animation updates too, otherwise it "
+"updates at process time. Events between the current frame and [param seconds] "
+"are skipped.\n"
+"If [param update_only] is true, the method / audio / animation playback "
+"tracks will not be processed.\n"
+"[b]Note:[/b] Seeking to the end of the animation doesn't emit [signal "
+"AnimationMixer.animation_finished]. If you want to skip animation and emit "
+"the signal, use [method AnimationMixer.advance]."
+msgstr ""
+"將動畫尋道到時間點 [param seconds](單位為秒)。[param update] 為 [code]true[/"
+"code] 時會同時更新動畫,否則會在處理時更新。目前影格和 [param seconds] 之間的"
+"事件會被跳過。\n"
+"[b]注意:[/b]尋道至動畫的末尾不會觸發 [signal animation_finished]。如果想要跳"
+"過動畫並觸發該訊號,請使用 [method advance]。"
+
+msgid ""
+"Specifies a blend time (in seconds) between two animations, referenced by "
+"their keys."
+msgstr "指定兩個動畫(由它們的鍵所引用)之間的混合時間(以秒為單位)。"
+
+msgid ""
+"Stops the currently playing animation. The animation position is reset to "
+"[code]0[/code] and the [code]custom_speed[/code] is reset to [code]1.0[/"
+"code]. See also [method pause].\n"
+"If [param keep_state] is [code]true[/code], the animation state is not "
+"updated visually.\n"
+"[b]Note:[/b] The method / audio / animation playback tracks will not be "
+"processed by this method."
+msgstr ""
+"停止目前播放的動畫。動畫位置被重設為 [code]0[/code],[code]custom_speed[/"
+"code] 被重設為 [code]1.0[/code]。另見 [method pause]。\n"
+"如果 [param keep_state] 為 [code]true[/code],則動畫狀態不會在視覺上更新。\n"
+"[b]注意:[/b]方法/音訊/動畫播放軌道不會被該方法處理。"
+
+msgid ""
+"If playing, the current animation's key, otherwise, the animation last "
+"played. When set, this changes the animation, but will not play it unless "
+"already playing. See also [member current_animation]."
+msgstr ""
+"如果正在播放,則為目前動畫的鍵,否則為上次播放的動畫。設定後會改變動畫,但除非"
+"已經播放,否則不會播放。另見 [member current_animation]。"
+
+msgid ""
+"The key of the currently playing animation. If no animation is playing, the "
+"property's value is an empty string. Changing this value does not restart the "
+"animation. See [method play] for more information on playing animations.\n"
+"[b]Note:[/b] While this property appears in the Inspector, it's not meant to "
+"be edited, and it's not saved in the scene. This property is mainly used to "
+"get the currently playing animation, and internally for animation playback "
+"tracks. For more information, see [Animation]."
+msgstr ""
+"目前播放的動畫的名稱。如果沒有動畫正在播放,該屬性的值是一個空字串。改變這個值"
+"不會重新啟動動畫。關於播放動畫的更多資訊請參閱 [method play]。\n"
+"[b]注意:[/b]雖然這個屬性會出現在屬性面板中,但它不是用來編輯的,也不會保存在"
+"場景中。該屬性主要用於獲取目前播放的動畫,內部用於動畫播放軌道。詳情請參閱 "
+"[Animation]。"
+
+msgid "The length (in seconds) of the currently playing animation."
+msgstr "目前正在播放的動畫的長度(以秒為單位)。"
+
+msgid "The position (in seconds) of the currently playing animation."
+msgstr "目前播放的動畫的位置(以秒為單位)。"
+
+msgid ""
+"If [code]true[/code] and the engine is running in Movie Maker mode (see "
+"[MovieWriter]), exits the engine with [method SceneTree.quit] as soon as an "
+"animation is done playing in this [AnimationPlayer]. A message is printed "
+"when the engine quits for this reason.\n"
+"[b]Note:[/b] This obeys the same logic as the [signal AnimationMixer."
+"animation_finished] signal, so it will not quit the engine if the animation "
+"is set to be looping."
+msgstr ""
+"如果為 [code]true[/code],並且引擎在 Movie Maker 模式下運作(請參閱 "
+"[MovieWriter]),則在此 [AnimationPlayer] 中播放完動畫後,立即使用 [method "
+"SceneTree.quit] 退出引擎。當引擎因此而退出時,會列印一條消息。\n"
+"[b]注意:[/b]這與 [signal animation_finished] 訊號遵循相同的邏輯,因此如果動畫"
+"被設定為迴圈,它不會退出引擎。"
+
+msgid ""
+"The default time in which to blend animations. Ranges from 0 to 4096 with "
+"0.01 precision."
+msgstr "混合動畫的預設時間。範圍從 0 到 4096,精度為 0.01。"
+
+msgid ""
+"Emitted when a queued animation plays after the previous animation finished. "
+"See also [method AnimationPlayer.queue].\n"
+"[b]Note:[/b] The signal is not emitted when the animation is changed via "
+"[method AnimationPlayer.play] or by an [AnimationTree]."
+msgstr ""
+"在前一個動畫完成後,播放佇列中的動畫時發出。請參閱 [method queue]。\n"
+"[b]注意:[/b]通過 [method play] 或 [AnimationTree] 改變動畫時,不會發出此信"
+"號。"
+
+msgid "Emitted when [member current_animation] changes."
+msgstr "當 [member animation] 更改時發出。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]."
+msgstr ""
+"為了向後相容。請參閱 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]."
+msgstr ""
+"為了往後相容。請參閱 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_IDLE]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]."
+msgstr ""
+"為了往後相容。請參閱 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_PROCESS_MANUAL]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]."
+msgstr ""
+"為了向後相容。請參閱 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_DEFERRED]。"
+
+msgid ""
+"For backward compatibility. See [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]."
+msgstr ""
+"為了往後相容。請參閱 [constant AnimationMixer."
+"ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE]。"
+
+msgid ""
+"Base class for [AnimationNode]s that hold one or multiple composite "
+"animations. Usually used for [member AnimationTree.tree_root]."
+msgstr ""
+"包含一個或多個複合動畫的 [AnimationNode] 的基底類別。通常用於 [member "
+"AnimationTree.tree_root]。"
+
+msgid ""
+"[AnimationRootNode] is a base class for [AnimationNode]s that hold a complete "
+"animation. A complete animation refers to the output of an "
+"[AnimationNodeOutput] in an [AnimationNodeBlendTree] or the output of another "
+"[AnimationRootNode]. Used for [member AnimationTree.tree_root] or in other "
+"[AnimationRootNode]s.\n"
+"Examples of built-in root nodes include [AnimationNodeBlendTree] (allows "
+"blending nodes between each other using various modes), "
+"[AnimationNodeStateMachine] (allows to configure blending and transitions "
+"between nodes using a state machine pattern), [AnimationNodeBlendSpace2D] "
+"(allows linear blending between [b]three[/b] [AnimationNode]s), "
+"[AnimationNodeBlendSpace1D] (allows linear blending only between [b]two[/b] "
+"[AnimationNode]s)."
+msgstr ""
+"[AnimationRootNode] 是存放完整動畫的 [AnimationNode] 的基底類別。完整動畫指的"
+"是 [AnimationNodeBlendTree] 中 [AnimationNodeOutput] 的輸出,或者其他 "
+"[AnimationRootNode] 的輸出。可以在 [member AnimationTree.tree_root] 或其他 "
+"[AnimationRootNode] 中使用。\n"
+"內建根節點有 [AnimationNodeBlendTree](能夠使用不同的模式將節點進行混合)、"
+"[AnimationNodeStateMachine](能夠使用狀態機模式配置節點之間的混合和過渡)、"
+"[AnimationNodeBlendSpace2D](能夠在[b]三個[/b] [AnimationNode] 之間進行線性混"
+"合)、[AnimationNodeBlendSpace1D](能夠在[b]兩個[/b] [AnimationNode] 之間進行線"
+"性混合)等。"
+
+msgid "A node used for advanced animation transitions in an [AnimationPlayer]."
+msgstr "用於 [AnimationPlayer] 中高級動畫過渡的節點。"
+
+msgid ""
+"A node used for advanced animation transitions in an [AnimationPlayer].\n"
+"[b]Note:[/b] When linked with an [AnimationPlayer], several properties and "
+"methods of the corresponding [AnimationPlayer] will not function as expected. "
+"Playback and transitions should be handled using only the [AnimationTree] and "
+"its constituent [AnimationNode](s). The [AnimationPlayer] node should be used "
+"solely for adding, deleting, and editing animations."
+msgstr ""
+"用於 [AnimationPlayer] 中高級動畫過渡的節點。\n"
+"[b]注意:[/b]與 [AnimationPlayer] 連接時,該 [AnimationPlayer] 的部分屬性和方"
+"法將不會像預期的那樣發揮作用。播放和過渡應該只使用 [AnimationTree] 和組成它的 "
+"[AnimationNode] 來處理。[AnimationPlayer] 節點應僅用於新增、刪除和編輯動畫。"
+
+msgid ""
+"The path to the [Node] used to evaluate the [AnimationNode] [Expression] if "
+"one is not explicitly specified internally."
+msgstr ""
+"用於評估 AnimationNode [Expression] 的 [Node] 的路徑,如果內部未明確指定路徑時"
+"使用。"
+
+msgid "The path to the [AnimationPlayer] used for animating."
+msgstr "用於動畫的 [AnimationPlayer] 的路徑。"
+
+msgid ""
+"The root animation node of this [AnimationTree]. See [AnimationRootNode]."
+msgstr "該 [AnimationTree] 的根動畫節點。見 [AnimationNode]。"
+
+msgid "Emitted when the [member anim_player] is changed."
+msgstr "當 [member anim_player] 被改變時發出。"
+
+msgid ""
+"A region of 2D space that detects other [CollisionObject2D]s entering or "
+"exiting it."
+msgstr "2D 空間中的一個區域,能夠偵測到其他 [CollisionObject2D] 的進入或退出。"
+
+msgid ""
+"[Area2D] is a region of 2D space defined by one or multiple "
+"[CollisionShape2D] or [CollisionPolygon2D] child nodes. It detects when other "
+"[CollisionObject2D]s enter or exit it, and it also keeps track of which "
+"collision objects haven't exited it yet (i.e. which one are overlapping it).\n"
+"This node can also locally alter or override physics parameters (gravity, "
+"damping) and route audio to custom audio buses."
+msgstr ""
+"[Area2D] 是 2D 空間中的一個區域,由一個或多個 [CollisionShape2D] 或 "
+"[CollisionPolygon2D] 子節點定義,能夠偵測到其他 [CollisionObject2D] 進入或退出"
+"該區域,同時也會記錄哪些碰撞物件尚未退出(即哪些物件與其存在重疊)。\n"
+"這個節點也可以在局部修改或覆蓋物理參數(重力、阻尼),將音訊引導至自訂音訊匯流"
+"排。"
+
+msgid "Using Area2D"
+msgstr "使用 Area2D"
+
+msgid "2D Pong Demo"
+msgstr "2D Pong 演示"
+
+msgid "2D Platformer Demo"
+msgstr "2D 平臺跳躍演示"
+
+msgid ""
+"Returns a list of intersecting [Area2D]s. The overlapping area's [member "
+"CollisionObject2D.collision_layer] must be part of this area's [member "
+"CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+"返回相交的 [Area2D] 的列表。重疊區域的 [member CollisionObject2D."
+"collision_layer] 必須是這個區域 [member CollisionObject2D.collision_mask] 的一"
+"部分,這樣才能被偵測到。\n"
+"出於性能的考慮(所有碰撞都是一起處理的),這個列表會在物理步驟中進行一次修改,"
+"而不是在物體被移動後立即修改。可考慮改用訊號。"
+
+msgid ""
+"Returns a list of intersecting [PhysicsBody2D]s and [TileMap]s. The "
+"overlapping body's [member CollisionObject2D.collision_layer] must be part of "
+"this area's [member CollisionObject2D.collision_mask] in order to be "
+"detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+"返回相交的 [PhysicsBody2D] 和 [TileMap]。重疊物體的 [member CollisionObject2D."
+"collision_layer] 必須是該區域 [member CollisionObject2D.collision_mask] 的一部"
+"分,才能被偵測到。\n"
+"出於性能原因(所有碰撞都是一起處理的),這個列表只會在每次物理反覆運算時發生一"
+"次更改,不會在物件移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [Area2D]s, otherwise returns "
+"[code]false[/code]. The overlapping area's [member CollisionObject2D."
+"collision_layer] must be part of this area's [member CollisionObject2D."
+"collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping areas is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"如果與其他 [Area2D] 相交,則返回 [code]true[/code],否則返回 [code]false[/"
+"code]。重疊區域的 [member CollisionObject2D.collision_layer] 必須是該區域 "
+"[member CollisionObject2D.collision_mask] 的一部分,才能被偵測到。\n"
+"出於性能原因(所有碰撞都是一起處理的),重疊區域的列表只會在每次物理反覆運算時"
+"發生一次更改,不會在對象移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [PhysicsBody2D]s or [TileMap]s, "
+"otherwise returns [code]false[/code]. The overlapping body's [member "
+"CollisionObject2D.collision_layer] must be part of this area's [member "
+"CollisionObject2D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping bodies is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"如果與其他 [PhysicsBody2D] 或 [TileMap] 相交,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。重疊物體的 [member CollisionObject2D.collision_layer] "
+"必須是該區域 [member CollisionObject2D.collision_mask] 的一部分,才能被偵測"
+"到。\n"
+"出於性能原因(所有碰撞都是一起處理的),重疊物體的列表只會在每次物理反覆運算時"
+"發生一次更改,不會在對象移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if the given [Area2D] intersects or overlaps this "
+"[Area2D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, the list of overlaps is updated once per frame and before "
+"the physics step. Consider using signals instead."
+msgstr ""
+"如果給定的 [Area2D] 與此 [Area2D] 相交或重疊,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。\n"
+"[b]注意:[/b]測試結果不反映物件移動後的即時狀態。出於性能原因,重疊列表每影格"
+"只會在物理反覆運算前更新一次。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if the given physics body intersects or overlaps "
+"this [Area2D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead.\n"
+"The [param body] argument can either be a [PhysicsBody2D] or a [TileMap] "
+"instance. While TileMaps are not physics bodies themselves, they register "
+"their tiles with collision shapes as a virtual physics body."
+msgstr ""
+"如果給定的物理物體與此 [Area2D] 相交或重疊,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。\n"
+"[b]注意:[/b]測試結果不反映物件移動後的即時狀態。出於性能原因,重疊列表每影格"
+"只會在物理反覆運算前更新一次。請考慮使用訊號。\n"
+"參數 [param body] 可以是 [PhysicsBody2D] 實例,也可以是 [TileMap] 實例。"
+"TileMap 雖然不是物理物體,但會把圖塊的碰撞形狀註冊為虛擬物理物體。"
+
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_angular_damp] for more details "
+"about damping."
+msgstr ""
+"物體在此區域停止旋轉的速度。代表每秒損失的角速度。\n"
+"關於阻尼的更多細節見 [member ProjectSettings.physics/2d/"
+"default_angular_damp]。"
+
+msgid ""
+"Override mode for angular damping calculations within this area. See [enum "
+"SpaceOverride] for possible values."
+msgstr ""
+"此區域內的角阻尼計算的覆蓋模式。有關可能的值,請參閱 [enum SpaceOverride]。"
+
+msgid "The name of the area's audio bus."
+msgstr "該區域音訊匯流排的名稱。"
+
+msgid ""
+"If [code]true[/code], the area's audio bus overrides the default audio bus."
+msgstr "如果為 [code]true[/code],該區域的音訊匯流排將覆蓋預設的音訊匯流排。"
+
+msgid ""
+"The area's gravity intensity (in pixels per second squared). This value "
+"multiplies the gravity direction. This is useful to alter the force of "
+"gravity without altering its direction."
+msgstr ""
+"該區域的重力強度(以圖元每平方秒為單位)。這個值是重力向量的倍數。這對於改變重"
+"力大小而不改變其方向很有用。"
+
+msgid "The area's gravity vector (not normalized)."
+msgstr "該區域的重力向量(未正規化)。"
+
+msgid ""
+"If [code]true[/code], gravity is calculated from a point (set via [member "
+"gravity_point_center]). See also [member gravity_space_override]."
+msgstr ""
+"如果為 [code]true[/code],則從一個點(通過 [member gravity_point_center] 設"
+"置)計算重力。參閱 [member gravity_space_override]。"
+
+msgid ""
+"If gravity is a point (see [member gravity_point]), this will be the point of "
+"attraction."
+msgstr "如果重力是一個點(參見 [member gravity_point]),這將是吸引力點。"
+
+msgid ""
+"The distance at which the gravity strength is equal to [member gravity]. For "
+"example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/"
+"s², set the [member gravity] to 4.0 and the unit distance to 100.0. The "
+"gravity will have falloff according to the inverse square law, so in the "
+"example, at 200 pixels from the center the gravity will be 1.0 px/s² (twice "
+"the distance, 1/4th the gravity), at 50 pixels it will be 16.0 px/s² (half "
+"the distance, 4x the gravity), and so on.\n"
+"The above is true only when the unit distance is a positive number. When this "
+"is set to 0.0, the gravity will be constant regardless of distance."
+msgstr ""
+"重力強度等於 [member gravity] 的距離。例如,在一個半徑為 100 圖元、表面重力為 "
+"4.0 px/s² 的行星上,將 [member gravity] 設定為 4.0,將單位距離設定為 100.0。重"
+"力將根據平方反比定律衰減,因此在該範例中,距離中心 200 圖元處的重力將為 1.0 "
+"px/s²(距離的兩倍,重力的 1/4),距離 50 圖元處為 16.0 px/s²(距離的一半,重力"
+"的 4 倍),依此類推。\n"
+"僅當單位距離為正數時,上述情況才成立。當該屬性被設定為 0.0 時,無論距離如何,"
+"重力都將保持不變。"
+
+msgid ""
+"Override mode for gravity calculations within this area. See [enum "
+"SpaceOverride] for possible values."
+msgstr "該區域內重力計算的覆蓋模式。有關可能的值,請參閱 [enum SpaceOverride]。"
+
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/2d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+"物體在此區域停止運動的速度。代表每秒損失的線速度。\n"
+"關於阻尼的更多細節見 [member ProjectSettings.physics/2d/default_linear_damp]。"
+
+msgid ""
+"Override mode for linear damping calculations within this area. See [enum "
+"SpaceOverride] for possible values."
+msgstr "該區域內線性阻尼計算的覆蓋模式。可取的值見 [enum SpaceOverride]。"
+
+msgid "If [code]true[/code], other monitoring areas can detect this area."
+msgstr "如果為 [code]true[/code],其他監測區域可以偵測到這個區域。"
+
+msgid ""
+"If [code]true[/code], the area detects bodies or areas entering and exiting "
+"it."
+msgstr "為 [code]true[/code] 時,該區域能夠偵測到進入和退出該區域的實體或區域。"
+
+msgid ""
+"The area's priority. Higher priority areas are processed first. The "
+"[World2D]'s physics is always processed last, after all areas."
+msgstr ""
+"該區域的優先順序。將優先處理優先順序較高的區域。[World2D] 的物理始終在所有區域"
+"之後處理。"
+
+msgid ""
+"Emitted when the received [param area] enters this area. Requires [member "
+"monitoring] to be set to [code]true[/code]."
+msgstr ""
+"當接收的 [param area] 進入此區域時發出。需要 [member monitoring] 被設定為 "
+"[code]true[/code]。"
+
+msgid ""
+"Emitted when the received [param area] exits this area. Requires [member "
+"monitoring] to be set to [code]true[/code]."
+msgstr ""
+"當接收的 [param area] 退出此區域時發出。需要 [member monitoring] 被設定為 "
+"[code]true[/code]。"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param area] enters a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param area_shape_index] contain indices of the "
+"interacting shapes from this area and the other area, respectively. [param "
+"area_rid] contains the [RID] of the other area. These values can be used with "
+"the [PhysicsServer2D].\n"
+"[b]Example of getting the[/b] [CollisionShape2D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"當收到的 [param area] 的 [Shape2D] 進入這個區域的形狀時發出。要求 [member "
+"monitoring] 被設定為 [code]true[/code] 。\n"
+"[param local_shape_index] 和 [param area_shape_index] 分別包含來自這個區域和另"
+"一個區域的互動形狀的索引。[param area_rid] 包含另一個區域的 [RID]。這些值可以"
+"與 [PhysicsServer2D] 一起使用。\n"
+"[b]從形狀索引中獲取[/b] [CollisionShape2D][b]節點的例子:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner( area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param area] exits a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"See also [signal area_shape_entered]."
+msgstr ""
+"當接收的 [param area] 的 [Shape2D] 退出此區域的形狀時發出。需要 [member "
+"monitoring] 被設定為 [code]true[/code]。\n"
+"另見 [signal area_shape_entered]。"
+
+msgid ""
+"Emitted when the received [param body] enters this area. [param body] can be "
+"a [PhysicsBody2D] or a [TileMap]. [TileMap]s are detected if their [TileSet] "
+"has collision shapes configured. Requires [member monitoring] to be set to "
+"[code]true[/code]."
+msgstr ""
+"當接收到的 [param body] 進入這個區域時發出的。[param body] 可以是一個 "
+"[PhysicsBody2D] 或一個 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰撞形狀,"
+"就會被偵測到。需要將 [member monitoring] 設定為 [code]true[/code] 。"
+
+msgid ""
+"Emitted when the received [param body] exits this area. [param body] can be a "
+"[PhysicsBody2D] or a [TileMap]. [TileMap]s are detected if their [TileSet] "
+"has collision shapes configured. Requires [member monitoring] to be set to "
+"[code]true[/code]."
+msgstr ""
+"當接收到的 [param body] 離開這個區域時發出的。[param body] 可以是一個 "
+"[PhysicsBody2D] 或一個 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰撞形狀,"
+"就會被偵測到。要求 [member monitoring] 被設定為 [code]true[/code] 。"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param body] enters a shape of this "
+"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are "
+"detected if their [TileSet] has collision shapes configured. Requires [member "
+"monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param body_shape_index] contain indices of the "
+"interacting shapes from this area and the interacting body, respectively. "
+"[param body_rid] contains the [RID] of the body. These values can be used "
+"with the [PhysicsServer2D].\n"
+"[b]Example of getting the[/b] [CollisionShape2D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"當收到的 [param body] 的 [Shape2D] 進入這個區域的形狀時發出。[param body] 可以"
+"是一個 [PhysicsBody2D] 或一個 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰"
+"撞形狀,則會被偵測到。要求 [member monitoring] 被設定為 [code]true[/code] 。\n"
+"[param local_shape_index] 和 [param body_shape_index] 分別包含來自這個區域和互"
+"動體的互動形狀的指數。[param body_rid] 包含體的 [RID]。這些值可以與 "
+"[PhysicsServer2D] 一起使用。\n"
+"[b]從形狀索引中獲取[/b] [CollisionShape2D] [b]節點的例子。[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape2D] of the received [param body] exits a shape of this "
+"area. [param body] can be a [PhysicsBody2D] or a [TileMap]. [TileMap]s are "
+"detected if their [TileSet] has collision shapes configured. Requires [member "
+"monitoring] to be set to [code]true[/code].\n"
+"See also [signal body_shape_entered]."
+msgstr ""
+"當收到的 [param body] 的 [Shape2D] 退出這個區域的形狀時發出。[param body] 可以"
+"是一個 [PhysicsBody2D] 或一個 [TileMap]。如果 [TileMap] 的 [TileSet] 配置了碰"
+"撞形狀,則會被偵測到。要求 [member monitoring] 被設定為 [code]true[/code] 。\n"
+"另請參閱 [signal body_shape_entered]。"
+
+msgid "This area does not affect gravity/damping."
+msgstr "這個區域不影響重力/阻尼。"
+
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order)."
+msgstr ""
+"該區域將其重力/阻尼值加到迄今為止計算出的任何值上(按 [member priority] 排"
+"序)。"
+
+msgid ""
+"This area adds its gravity/damping values to whatever has been calculated so "
+"far (in [member priority] order), ignoring any lower priority areas."
+msgstr ""
+"該區域將其重力/阻尼值新增到到目前為止已計算的任何內容(按 [member priority] 順"
+"序),而忽略任何較低優先順序的區域。"
+
+msgid ""
+"This area replaces any gravity/damping, even the defaults, ignoring any lower "
+"priority areas."
+msgstr "該區域將替換所有重力/阻尼,甚至是預設值,而忽略任何較低優先順序的區域。"
+
+msgid ""
+"This area replaces any gravity/damping calculated so far (in [member "
+"priority] order), but keeps calculating the rest of the areas."
+msgstr ""
+"這個區域取代了到目前為止計算出的任何重力/阻尼(按 [member priority] 順序),但"
+"繼續計算其餘的區域。"
+
+msgid ""
+"A region of 3D space that detects other [CollisionObject3D]s entering or "
+"exiting it."
+msgstr "3D 空間中的一個區域,能夠偵測到其他 [CollisionObject3D] 的進入或退出。"
+
+msgid ""
+"[Area3D] is a region of 3D space defined by one or multiple "
+"[CollisionShape3D] or [CollisionPolygon3D] child nodes. It detects when other "
+"[CollisionObject3D]s enter or exit it, and it also keeps track of which "
+"collision objects haven't exited it yet (i.e. which one are overlapping it).\n"
+"This node can also locally alter or override physics parameters (gravity, "
+"damping) and route audio to custom audio buses.\n"
+"[b]Warning:[/b] Using a [ConcavePolygonShape3D] inside a [CollisionShape3D] "
+"child of this node (created e.g. by using the [b]Create Trimesh Collision "
+"Sibling[/b] option in the [b]Mesh[/b] menu that appears when selecting a "
+"[MeshInstance3D] node) may give unexpected results, since this collision "
+"shape is hollow. If this is not desired, it has to be split into multiple "
+"[ConvexPolygonShape3D]s or primitive shapes like [BoxShape3D], or in some "
+"cases it may be replaceable by a [CollisionPolygon3D]."
+msgstr ""
+"[Area3D] 是 3D 空間中的一個區域,由一個或多個 [CollisionShape3D] 或 "
+"[CollisionPolygon3D] 子節點定義,能夠偵測到其他 [CollisionObject3D] 進入或退出"
+"該區域,同時也會記錄哪些碰撞物件尚未退出(即哪些物件與其存在重疊)。\n"
+"這個節點也可以在局部修改或覆蓋物理參數(重力、阻尼),將音訊引導至自訂音訊匯流"
+"排。\n"
+"[b]警告:[/b]在這個節點的 [CollisionShape3D] 子節點中使用 "
+"[ConcavePolygonShape3D](建立方法是在選中 [MeshInstance3D] 節點後,在出現的 "
+"[b]Mesh[/b] 功能表中選擇[b]建立三角網格碰撞同級[/b]選項)可能得到意外的結果,"
+"因為碰撞形狀是空心的。如果不想要這種行為,則應該將其拆分為多個 "
+"[ConvexPolygonShape3D] 或 [BoxShape3D] 等基礎網格,有些情況下也可以用 "
+"[CollisionPolygon3D] 代替。"
+
+msgid "GUI in 3D Demo"
+msgstr "3D GUI 演示"
+
+msgid ""
+"Returns a list of intersecting [Area3D]s. The overlapping area's [member "
+"CollisionObject3D.collision_layer] must be part of this area's [member "
+"CollisionObject3D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+"返回相交的 [Area3D] 的列表。重疊區域的 [member CollisionObject3D."
+"collision_layer] 必須是該區域的 [member CollisionObject3D.collision_mask] 的一"
+"部分才能被偵測到。\n"
+"出於性能原因(同時處理所有碰撞),此列表在物理步驟期間修改一次,而不是在實體被"
+"移動後立即修改。可考慮改用訊號。"
+
+msgid ""
+"Returns a list of intersecting [PhysicsBody3D]s and [GridMap]s. The "
+"overlapping body's [member CollisionObject3D.collision_layer] must be part of "
+"this area's [member CollisionObject3D.collision_mask] in order to be "
+"detected.\n"
+"For performance reasons (collisions are all processed at the same time) this "
+"list is modified once during the physics step, not immediately after objects "
+"are moved. Consider using signals instead."
+msgstr ""
+"返回相交的 [PhysicsBody3D] 和 [GridMap]。重疊物體的 [member CollisionObject3D."
+"collision_layer] 必須是該區域 [member CollisionObject3D.collision_mask] 的一部"
+"分,才能被偵測到。\n"
+"出於性能原因(所有碰撞都是一起處理的),這個列表只會在每次物理反覆運算時發生一"
+"次更改,不會在物件移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [Area3D]s, otherwise returns "
+"[code]false[/code]. The overlapping area's [member CollisionObject3D."
+"collision_layer] must be part of this area's [member CollisionObject3D."
+"collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping areas is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"如果與其他 [Area3D] 相交,則返回 [code]true[/code],否則返回 [code]false[/"
+"code]。重疊區域的 [member CollisionObject3D.collision_layer] 必須是該區域 "
+"[member CollisionObject3D.collision_mask] 的一部分,才能被偵測到。\n"
+"出於性能原因(所有碰撞都是一起處理的),重疊區域的列表只會在每次物理反覆運算時"
+"發生一次更改,不會在對象移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if intersecting any [PhysicsBody3D]s or [GridMap]s, "
+"otherwise returns [code]false[/code]. The overlapping body's [member "
+"CollisionObject3D.collision_layer] must be part of this area's [member "
+"CollisionObject3D.collision_mask] in order to be detected.\n"
+"For performance reasons (collisions are all processed at the same time) the "
+"list of overlapping bodies is modified once during the physics step, not "
+"immediately after objects are moved. Consider using signals instead."
+msgstr ""
+"如果與其他 [PhysicsBody3D] 或 [GridMap] 相交,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。重疊物體的 [member CollisionObject3D.collision_layer] "
+"必須是該區域 [member CollisionObject3D.collision_mask] 的一部分,才能被偵測"
+"到。\n"
+"出於性能原因(所有碰撞都是一起處理的),重疊物體的列表只會在每次物理反覆運算時"
+"發生一次更改,不會在對象移動後立即更改。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if the given [Area3D] intersects or overlaps this "
+"[Area3D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead."
+msgstr ""
+"如果給定的 [Area3D] 與此 [Area3D] 相交或重疊,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。\n"
+"[b]注意:[/b]測試結果不反映物件移動後的即時狀態。出於性能原因,重疊列表每影格"
+"只會在物理反覆運算前更新一次。請考慮使用訊號。"
+
+msgid ""
+"Returns [code]true[/code] if the given physics body intersects or overlaps "
+"this [Area3D], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] The result of this test is not immediate after moving objects. "
+"For performance, list of overlaps is updated once per frame and before the "
+"physics step. Consider using signals instead.\n"
+"The [param body] argument can either be a [PhysicsBody3D] or a [GridMap] "
+"instance. While GridMaps are not physics body themselves, they register their "
+"tiles with collision shapes as a virtual physics body."
+msgstr ""
+"如果給定的物理物體與此 [Area3D] 相交或重疊,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。\n"
+"[b]注意:[/b]測試結果不反映物件移動後的即時狀態。出於性能原因,重疊列表每影格"
+"只會在物理反覆運算前更新一次。請考慮使用訊號。\n"
+"參數 [param body] 可以是 [PhysicsBody3D] 實例,也可以是 [GridMap] 實例。"
+"GridMap 雖然不是物理物體,但會把圖塊的碰撞形狀註冊為虛擬物理物體。"
+
+msgid ""
+"The rate at which objects stop spinning in this area. Represents the angular "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_angular_damp] for more details "
+"about damping."
+msgstr ""
+"物體在此區域停止旋轉的速度。代表每秒損失的角速度.\n"
+"關於阻尼的更多細節,見 [member ProjectSettings.physics/3d/"
+"default_angular_damp]。"
+
+msgid ""
+"The area's gravity intensity (in meters per second squared). This value "
+"multiplies the gravity direction. This is useful to alter the force of "
+"gravity without altering its direction."
+msgstr ""
+"該區域的重力強度(以米每平方秒為單位)。這個值是重力向量的倍數。這對於改變重力"
+"大小而不改變其方向很有用。"
+
+msgid ""
+"The distance at which the gravity strength is equal to [member gravity]. For "
+"example, on a planet 100 meters in radius with a surface gravity of 4.0 m/s², "
+"set the [member gravity] to 4.0 and the unit distance to 100.0. The gravity "
+"will have falloff according to the inverse square law, so in the example, at "
+"200 meters from the center the gravity will be 1.0 m/s² (twice the distance, "
+"1/4th the gravity), at 50 meters it will be 16.0 m/s² (half the distance, 4x "
+"the gravity), and so on.\n"
+"The above is true only when the unit distance is a positive number. When this "
+"is set to 0.0, the gravity will be constant regardless of distance."
+msgstr ""
+"重力強度等於 [member gravity] 的距離。例如,在一個半徑為 100 米、表面重力為 "
+"4.0 m/s² 的行星上,將 [member gravity] 設定為 4.0,將單位距離設定為 100.0。重"
+"力會根據平方反比定律衰減,因此在該範例中,距中心 200 米處的重力將為 1.0 m/s²"
+"(距離的兩倍,重力的 1/4),在 50 米處為 16.0 m/s²(距離的一半,重力的 4 "
+"倍),依此類推。\n"
+"僅當單位距離為正數時,上述情況才成立。當該屬性被設定為 0.0 時,無論距離如何,"
+"重力都將保持不變。"
+
+msgid ""
+"The rate at which objects stop moving in this area. Represents the linear "
+"velocity lost per second.\n"
+"See [member ProjectSettings.physics/3d/default_linear_damp] for more details "
+"about damping."
+msgstr ""
+"實體在此區域減速的速率。代表每秒損失的線速度。\n"
+"關於阻尼的更多細節,見[member ProjectSettings.physics/3d/"
+"default_linear_damp]。"
+
+msgid ""
+"The area's priority. Higher priority areas are processed first. The "
+"[World3D]'s physics is always processed last, after all areas."
+msgstr ""
+"該區域的優先順序。將優先處理優先順序較高的區域。[World3D] 的物理始終在所有區域"
+"之後處理。"
+
+msgid ""
+"The degree to which this area applies reverb to its associated audio. Ranges "
+"from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+"該區域對其相關音訊套用混響的程度。範圍從 [code]0[/code] 到 [code]1[/code],精"
+"度為 [code]0.1[/code]。"
+
+msgid "If [code]true[/code], the area applies reverb to its associated audio."
+msgstr "如果為 [code]true[/code],該區域會將混響套用於其關聯音訊。"
+
+msgid "The name of the reverb bus to use for this area's associated audio."
+msgstr "用於該區域關聯音訊的混響匯流排的名稱。"
+
+msgid ""
+"The degree to which this area's reverb is a uniform effect. Ranges from "
+"[code]0[/code] to [code]1[/code] with [code]0.1[/code] precision."
+msgstr ""
+"該區域的混響效果均勻的程度。範圍從 [code]0[/code] 到 [code]1[/code],精度為 "
+"[code]0.1[/code]。"
+
+msgid ""
+"The exponential rate at which wind force decreases with distance from its "
+"origin."
+msgstr "風力隨著距其原點的距離而衰減的指數速率。"
+
+msgid "The magnitude of area-specific wind force."
+msgstr "特定區域風力的大小。"
+
+msgid ""
+"The [Node3D] which is used to specify the direction and origin of an area-"
+"specific wind force. The direction is opposite to the z-axis of the "
+"[Node3D]'s local transform, and its origin is the origin of the [Node3D]'s "
+"local transform."
+msgstr ""
+"[Node3D] 用於指定特定區域風力的方向和原點。方向與 [Node3D] 局部變換的 z 軸相"
+"反,其原點為 [Node3D] 局部變換的原點。"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param area] enters a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param area_shape_index] contain indices of the "
+"interacting shapes from this area and the other area, respectively. [param "
+"area_rid] contains the [RID] of the other area. These values can be used with "
+"the [PhysicsServer3D].\n"
+"[b]Example of getting the[/b] [CollisionShape3D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner(area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"當收到的 [param area] 的 [Shape3D] 進入這個區域的形狀時發出。要求 [member "
+"monitoring] 被設定為 [code]true[/code] 。\n"
+"[param local_shape_index] 和 [param area_shape_index] 分別包含來自這個區域和另"
+"一個區域的互動形狀的索引。[param area_rid] 包含另一個區域的 [RID]。這些值可以"
+"與 [PhysicsServer3D] 一起使用。\n"
+"[b]從形狀索引中獲取[/b] [CollisionShape3D] [b]節點的例子。[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var other_shape_owner = area.shape_find_owner( area_shape_index)\n"
+"var other_shape_node = area.shape_owner_get_owner(other_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param area] exits a shape of this "
+"area. Requires [member monitoring] to be set to [code]true[/code].\n"
+"See also [signal area_shape_entered]."
+msgstr ""
+"當接收的 [param area] 的 [Shape3D] 退出此區域的形狀時發出。需要 [member "
+"monitoring] 被設定為 [code]true[/code]。\n"
+"另見 [signal area_shape_entered]。"
+
+msgid ""
+"Emitted when the received [param body] enters this area. [param body] can be "
+"a [PhysicsBody3D] or a [GridMap]. [GridMap]s are detected if their "
+"[MeshLibrary] has collision shapes configured. Requires [member monitoring] "
+"to be set to [code]true[/code]."
+msgstr ""
+"當接收到的 [param body] 進入這個區域時發出。[param body] 可以是一個 "
+"[PhysicsBody3D] 或一個 [GridMap]。如果 [GridMap] 的 [MeshLibrary] 配置了碰撞形"
+"狀就會被偵測到。需要將 [member monitoring] 設定為 [code]true[/code] 。"
+
+msgid ""
+"Emitted when the received [param body] exits this area. [param body] can be a "
+"[PhysicsBody3D] or a [GridMap]. [GridMap]s are detected if their "
+"[MeshLibrary] has collision shapes configured. Requires [member monitoring] "
+"to be set to [code]true[/code]."
+msgstr ""
+"當接收到的 [param body] 離開這個區域時發出的。[param body] 可以是一個 "
+"[PhysicsBody3D] 或一個 [GridMap]。如果 [GridMap] 的 [MeshLibrary] 配置了碰撞形"
+"狀,就會被偵測到。要求 [member monitoring] 被設定為 [code]true[/code] 。"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param body] enters a shape of this "
+"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are "
+"detected if their [MeshLibrary] has collision shapes configured. Requires "
+"[member monitoring] to be set to [code]true[/code].\n"
+"[param local_shape_index] and [param body_shape_index] contain indices of the "
+"interacting shapes from this area and the interacting body, respectively. "
+"[param body_rid] contains the [RID] of the body. These values can be used "
+"with the [PhysicsServer3D].\n"
+"[b]Example of getting the[/b] [CollisionShape3D] [b]node from the shape index:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+msgstr ""
+"當接收到的物體 [param body] 中的某個 [Shape3D] 進入此區域中的某個形狀時發出。"
+"[param body] 可以是 [PhysicsBody3D] 或 [GridMap]。[GridMap] 的 [MeshLibrary] "
+"配置有碰撞形狀時才能夠被偵測到。要求將 [member monitoring] 設定為 [code]true[/"
+"code]。\n"
+"[param local_shape_index] 和 [param body_shape_index] 分別對應此區域中以及交互"
+"物體中正在進行互動的形狀的索引。[param body_rid] 包含該物體的 [RID]。這些值可"
+"以在 [PhysicsServer3D] 中使用。\n"
+"[b]根據形狀索引獲取[/b] [CollisionShape3D] [b]節點的範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var body_shape_owner = body.shape_find_owner(body_shape_index)\n"
+"var body_shape_node = body.shape_owner_get_owner(body_shape_owner)\n"
+"\n"
+"var local_shape_owner = shape_find_owner(local_shape_index)\n"
+"var local_shape_node = shape_owner_get_owner(local_shape_owner)\n"
+"[/gdscript]\n"
+"[/codeblocks]"
+
+msgid ""
+"Emitted when a [Shape3D] of the received [param body] exits a shape of this "
+"area. [param body] can be a [PhysicsBody3D] or a [GridMap]. [GridMap]s are "
+"detected if their [MeshLibrary] has collision shapes configured. Requires "
+"[member monitoring] to be set to [code]true[/code].\n"
+"See also [signal body_shape_entered]."
+msgstr ""
+"當接收到的物體 [param body] 中的某個 [Shape3D] 離開此區域中的某個形狀時發出。"
+"[param body] 可以是 [PhysicsBody3D] 或 [GridMap]。[GridMap] 的 [MeshLibrary] "
+"配置有碰撞形狀時才能夠被偵測到。要求將 [member monitoring] 設定為 [code]true[/"
+"code]。\n"
+"另見 [signal body_shape_entered]。"
+
+msgid "A built-in data structure that holds a sequence of elements."
+msgstr "一種內建資料結構,包含一系列元素。"
+
+msgid ""
+"An array data structure that can contain a sequence of elements of any type. "
+"Elements are accessed by a numerical index starting at 0. Negative indices "
+"are used to count from the back (-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] 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]陣列總是通過引用來傳遞。要獲得一個可以獨立於原始陣列而被修改的數"
+"組的副本,請使用 [method duplicate]。\n"
+"[b]注意:[/b][b]不[/b]支援在走訪陣列時擦除元素,這將導致不可預知的行為。"
+
+msgid "Constructs an empty [Array]."
+msgstr "建構空的 [Array]。"
+
+msgid "Creates a typed array from the [param base] array."
+msgstr "從 [param base] 陣列建立具有型別的陣列。"
+
+msgid ""
+"Returns the same array as [param from]. If you need a copy of the array, use "
+"[method duplicate]."
+msgstr ""
+"返回與 [param from] 相同的陣列。如果你需要一個陣列的副本,請使用 [method "
+"duplicate]。"
+
+msgid "Constructs an array from a [PackedByteArray]."
+msgstr "從 [PackedByteArray] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedColorArray]."
+msgstr "從 [PackedColorArray] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedFloat32Array]."
+msgstr "從 [PackedFloat32Array] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedFloat64Array]."
+msgstr "從 [PackedFloat64Array] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedInt32Array]."
+msgstr "從 [PackedInt32Array] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedInt64Array]."
+msgstr "從 [PackedInt64Array] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedStringArray]."
+msgstr "從 [PackedStringArray] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedVector2Array]."
+msgstr "從 [PackedVector2Array] 建構一個陣列。"
+
+msgid "Constructs an array from a [PackedVector3Array]."
+msgstr "從 [PackedVector3Array] 建構一個陣列。"
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns "
+"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]all[/i] "
+"elements in the array. If the [Callable] returns [code]false[/code] for one "
+"array element or more, this method returns [code]false[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].all(greater_than_5)) # Prints True (3/3 elements "
+"evaluate to `true`).\n"
+" print([4, 10, 4].all(greater_than_5)) # Prints False (1/3 elements "
+"evaluate to `true`).\n"
+" print([4, 4, 4].all(greater_than_5)) # Prints False (0/3 elements "
+"evaluate to `true`).\n"
+" print([].all(greater_than_5)) # Prints True (0/0 elements evaluate to "
+"`true`).\n"
+"\n"
+" print([6, 10, 6].all(func(number): return number > 5)) # Prints True. "
+"Same as the first line above, but using lambda function.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"See also [method any], [method filter], [method map] and [method reduce].\n"
+"[b]Note:[/b] Unlike relying on the size of an array returned by [method "
+"filter], this method will return as early as possible to improve performance "
+"(especially with large arrays).\n"
+"[b]Note:[/b] For an empty array, this method [url=https://en.wikipedia.org/"
+"wiki/Vacuous_truth]always[/url] returns [code]true[/code]."
+msgstr ""
+"對陣列中的每個元素呼叫提供的 [Callable],如果 [Callable] 為陣列中的 [i]所有[/"
+"i] 元素返回 [code]true[/code],則返回 [code]true[/code]。如果 [Callable] 為一"
+"個或多個陣列元素返回 [code]false[/code],則此方法返回 [code]false[/code]。\n"
+"該可呼叫的方法應採用一個 [Variant] 參數(目前陣列元素)並返回一個布林值。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].all(greater_than_5)) # 輸出 True(3/3 元素評估為 "
+"`true`)。\n"
+" print([4, 10, 4].all(greater_than_5)) # 輸出 False(1/3 元素評估為 "
+"`true`)。\n"
+" print([4, 4, 4].all(greater_than_5)) # 輸出 False(0/3 元素評估為 "
+"`true`)。\n"
+" print([].all(greater_than_5)) # 輸出 True(0/0 元素評估為 `true`)。\n"
+"\n"
+" print([6, 10, 6].all(func(number): return number > 5)) # 輸出 True。與上"
+"面的第一行相同,但使用 lambda 函式。\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"另請參見 [method any]、[method filter]、[method map] 和 [method reduce]。\n"
+"[b]注意:[/b]與依賴 [method filter] 返回的陣列大小不同,此方法會盡可能早地返回"
+"以提高性能(尤其是對於大型陣列)。\n"
+"[b]注意:[/b]對於空陣列,此方法 [url=https://en.wikipedia.org/wiki/"
+"Vacuous_truth]總是[/url] 返回 [code]true[/code]。"
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns "
+"[code]true[/code] if the [Callable] returns [code]true[/code] for [i]one or "
+"more[/i] elements in the array. If the [Callable] returns [code]false[/code] "
+"for all elements in the array, this method returns [code]false[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].any(greater_than_5)) # Prints True (3 elements evaluate "
+"to `true`).\n"
+" print([4, 10, 4].any(greater_than_5)) # Prints True (1 elements evaluate "
+"to `true`).\n"
+" print([4, 4, 4].any(greater_than_5)) # Prints False (0 elements evaluate "
+"to `true`).\n"
+" print([].any(greater_than_5)) # Prints False (0 elements evaluate to "
+"`true`).\n"
+"\n"
+" print([6, 10, 6].any(func(number): return number > 5)) # Prints True. "
+"Same as the first line above, but using lambda function.\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"See also [method all], [method filter], [method map] and [method reduce].\n"
+"[b]Note:[/b] Unlike relying on the size of an array returned by [method "
+"filter], this method will return as early as possible to improve performance "
+"(especially with large arrays).\n"
+"[b]Note:[/b] For an empty array, this method always returns [code]false[/"
+"code]."
+msgstr ""
+"對陣列中的每個元素呼叫提供的 [Callable],如果 [Callable] 為陣列中的[i] 一個或"
+"多個[/i]元素返回 [code]true[/code],則返回 [code]true[/code]。如果 [Callable] "
+"為陣列中的所有元素返回 [code]false[/code],則此方法返回 [code]false[/code]。\n"
+"可呼叫體的方法應接受一個 [Variant] 參數(目前陣列元素)並返回一個布林值。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([6, 10, 6].any(greater_than_5)) # 輸出 True(3 個元素評估為 "
+"`true`)。\n"
+" print([4, 10, 4].any(greater_than_5)) # 輸出 True(1 個元素評估為 "
+"`true`)。\n"
+" print([4, 4, 4].any(greater_than_5)) # 輸出 False(0 個元素評估為 "
+"`true`)。\n"
+" print([].any(greater_than_5)) # 輸出 False(0 個元素評估為 `true`)。\n"
+"\n"
+" print([6, 10, 6].any(func(number): return number > 5)) # 輸出 True。與上"
+"面的第一行相同,但使用 lambda 函式。\n"
+"\n"
+"func greater_than_5(number):\n"
+" return number > 5\n"
+"[/codeblock]\n"
+"另請參閱 [method all]、[method filter]、[method map] 和 [method reduce]。\n"
+"[b]注意:[/b]與依賴 [method filter] 返回的陣列大小不同,此方法會盡可能早地返回"
+"以提高性能(尤其是對於大型陣列)。\n"
+"[b]注意:[/b]對於一個空陣列,這個方法總是返回 [code]false[/code]。"
+
+msgid ""
+"Appends an element at the end of the array (alias of [method push_back])."
+msgstr "向陣列末尾追加一個元素([method push_back] 的別名)。"
+
+msgid ""
+"Appends another array at the end of this array.\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # Prints [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+msgstr ""
+"在該陣列的末尾追加其他陣列。\n"
+"[codeblock]\n"
+"var array1 = [1, 2, 3]\n"
+"var array2 = [4, 5, 6]\n"
+"array1.append_array(array2)\n"
+"print(array1) # 輸出 [1, 2, 3, 4, 5, 6].\n"
+"[/codeblock]"
+
+msgid ""
+"Assigns elements of another [param array] into the array. Resizes the array "
+"to match [param array]. Performs type conversions if the array is typed."
+msgstr ""
+"將另一個 [param array] 的元素賦值到該陣列中。調整陣列大小以配對 [param "
+"array]。如果陣列是有型別的,則執行型別轉換。"
+
+msgid ""
+"Returns the last element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[-1]"
+"[/code]. If the array is empty, accessing by index will pause project "
+"execution when running from the editor."
+msgstr ""
+"返回陣列的最後一個元素。如果陣列為空,則列印一個錯誤並返回 [code]null[/"
+"code]。\n"
+"[b]注意:[/b]呼叫這個函式與寫入 [code]array[-1][/code] 不一樣,如果陣列是空"
+"的,當從編輯器運作時,按索引存取將暫停專案的執行。"
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search. Optionally, a [param before] specifier can be passed. If [code]false[/"
+"code], the returned index comes after all existing entries of the value in "
+"the array.\n"
+"[b]Note:[/b] Calling [method bsearch] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+"使用二進法搜尋已有值的索引(如果該值尚未存在於陣列中,則為保持排序順序的插入索"
+"引)。傳遞 [param before] 說明符是可選的。如果該參數為 [code]false[/code],則"
+"返回的索引位於陣列中該值的所有已有的條目之後。\n"
+"[b]注意:[/b]在未排序的陣列上呼叫 [method bsearch] 會產生預料之外的行為。"
+
+msgid ""
+"Finds the index of an existing value (or the insertion index that maintains "
+"sorting order, if the value is not yet present in the array) using binary "
+"search and a custom comparison method. Optionally, a [param before] specifier "
+"can be passed. If [code]false[/code], the returned index comes after all "
+"existing entries of the value in the array. The custom method receives two "
+"arguments (an element from the array and the value searched for) and must "
+"return [code]true[/code] if the first argument is less than the second, and "
+"return [code]false[/code] otherwise.\n"
+"[b]Note:[/b] Calling [method bsearch_custom] on an unsorted array results in "
+"unexpected behavior."
+msgstr ""
+"使用二分法和自訂比較方法搜尋已有值的索引(如果該值尚未存在於陣列中,則為保持排"
+"序順序的插入索引)。傳遞 [param before] 說明符是可選的。如果該參數為 "
+"[code]false[/code],則返回的索引位於陣列中該值的所有已有條目之後。自訂方法接收"
+"兩個參數(陣列中的一個元素和搜索到的值),如果第一個參數小於第二個參數,則必須"
+"返回 [code]true[/code],否則返回 [code]false[/code] .\n"
+"[b]注意:[/b]在未排序的陣列上呼叫 [method bsearch_custom] 會產生預料之外的行"
+"為。"
+
+msgid ""
+"Clears the array. This is equivalent to using [method resize] with a size of "
+"[code]0[/code]."
+msgstr "清空陣列。相當於呼叫 [method resize] 時指定大小為 [code]0[/code]。"
+
+msgid "Returns the number of times an element is in the array."
+msgstr "返回元素在陣列中出現的次數。"
+
+msgid ""
+"Returns a copy of the array.\n"
+"If [param deep] is [code]true[/code], a deep copy is performed: all nested "
+"arrays and dictionaries are duplicated and will not be shared with the "
+"original array. If [code]false[/code], a shallow copy is made and references "
+"to the original nested arrays and dictionaries are kept, so that modifying a "
+"sub-array or dictionary in the copy will also impact those referenced in the "
+"source array. Note that any [Object]-derived elements will be shallow copied "
+"regardless of the [param deep] setting."
+msgstr ""
+"返回該陣列的副本。\n"
+"[param deep] 為 [code]true[/code] 時會執行深拷貝:所有巢狀陣列和字典都將被覆"
+"制,且不會與原始陣列共用。為 [code]false[/code] 時則進行淺拷貝,並保留對原始巢"
+"狀陣列和字典的引用,因此修改副本中的子陣列或字典,也會影響源陣列中引用的子陣列"
+"或字典。請注意,無論 [param deep] 如何設定,任何 [Object] 衍生的元素都是淺拷貝"
+"的。"
+
+msgid ""
+"Removes the first occurrence of a value from the array. If the value does not "
+"exist in the array, nothing happens. To remove an element by index, use "
+"[method remove_at] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] Do not erase entries while iterating over the array."
+msgstr ""
+"從陣列中移除第一個配對的值。如果陣列中不存在該值,則什麼也不會發生。要通過索引"
+"移除元素,請改用 [method remove_at]。\n"
+"[b]注意:[/b]這個方法是就地操作的,不返回值。\n"
+"[b]注意:[/b]在大型陣列上,如果移除的元素靠近陣列的開頭(索引 0),則此方法會"
+"較慢。這是因為所有放置在移除元素之後的元素都必須重新索引。\n"
+"[b]注意:[/b]在走訪陣列時不要移除條目。"
+
+msgid ""
+"Assigns the given value to all elements in the array. This can typically be "
+"used together with [method resize] to create an array with a given size and "
+"initialized elements:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array = []\n"
+"array.resize(10)\n"
+"array.fill(0) # Initialize the 10 elements to 0.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array();\n"
+"array.Resize(10);\n"
+"array.Fill(0); // Initialize the 10 elements to 0.\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] If [param value] is of a reference type ([Object]-derived, "
+"[Array], [Dictionary], etc.) then the array is filled with the references to "
+"the same object, i.e. no duplicates are created."
+msgstr ""
+"將該陣列中的所有元素都設定為給定的值。通常與 [method resize] 一起使用,用於創"
+"建給定大小的陣列並對其元素進行初始化:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array = []\n"
+"array.resize(10)\n"
+"array.fill(0) # 將 10 個元素都初始化為 0。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array();\n"
+"array.Resize(10);\n"
+"array.Fill(0); // 將 10 個元素都初始化為 0。\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]如果 [param value] 為參考型別(衍生自 [Object]、[Array]、"
+"[Dictionary] 等),那麼會用同一個物件的引用填充該陣列,即不會建立副本。"
+
+msgid ""
+"Calls the provided [Callable] on each element in the array and returns a new "
+"array with the elements for which the method returned [code]true[/code].\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and return a boolean value.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].filter(remove_1)) # Prints [2, 3].\n"
+" print([1, 2, 3].filter(func(number): return number != 1)) # Same as "
+"above, but using lambda function.\n"
+"\n"
+"func remove_1(number):\n"
+" return number != 1\n"
+"[/codeblock]\n"
+"See also [method any], [method all], [method map] and [method reduce]."
+msgstr ""
+"在陣列中的每個元素上呼叫提供的 [Callable],並返回一個新陣列,其中包含呼叫方法"
+"後返回值為 [code]true[/code] 的元素。\n"
+"可呼叫的方法應該採用一個 [Variant] 參數(目前陣列元素)並返回一個布林值。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].filter(remove_1)) # 列印 [2, 3]。\n"
+" print([1, 2, 3].filter(func(number): return number != 1)) # 同上,但使用 "
+"lambda 函式。\n"
+"\n"
+"func remove_1(number):\n"
+" return number != 1\n"
+"[/codeblock]\n"
+"另請參見 [method any]、[method all]、[method map] 和 [method reduce]。"
+
+msgid ""
+"Searches the array for a value and returns its index or [code]-1[/code] if "
+"not found. Optionally, the initial search index can be passed."
+msgstr ""
+"在陣列中搜索值並返回其索引,如果未找到則返回 [code]-1[/code] 。可選地,可以傳"
+"遞起始搜索索引。"
+
+msgid ""
+"Returns the first element of the array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[b]Note:[/b] Calling this function is not the same as writing [code]array[0][/"
+"code]. If the array is empty, accessing by index will pause project execution "
+"when running from the editor."
+msgstr ""
+"返回陣列的第一個元素。如果陣列為空,則列印錯誤並返回 [code]null[/code]。\n"
+"[b]注意:[/b]呼叫這個函式和寫 [code]array[0][/code] 是不一樣的,如果陣列為空,"
+"從編輯器運作時按索引存取將暫停專案執行。"
+
+msgid ""
+"Returns the [enum Variant.Type] constant for a typed array. If the [Array] is "
+"not typed, returns [constant TYPE_NIL]."
+msgstr ""
+"返回型別化陣列的 [enum Variant.Type] 常數。如果該 [Array] 不是型別化的,則返"
+"回 [constant TYPE_NIL]。"
+
+msgid "Returns a class name of a typed [Array] of type [constant TYPE_OBJECT]."
+msgstr "返回型別為 [constant TYPE_OBJECT] 的 型別化 [Array] 的類別名稱。"
+
+msgid "Returns the script associated with a typed array tied to a class name."
+msgstr "返回與此型別化陣列綁定的類別名稱關聯的腳本。"
+
+msgid ""
+"Returns [code]true[/code] if the array contains the given value.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print([\"inside\", 7].has(\"inside\")) # True\n"
+"print([\"inside\", 7].has(\"outside\")) # False\n"
+"print([\"inside\", 7].has(7)) # True\n"
+"print([\"inside\", 7].has(\"7\")) # False\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var arr = new Godot.Collections.Array { \"inside\", 7 };\n"
+"// has is renamed to Contains\n"
+"GD.Print(arr.Contains(\"inside\")); // True\n"
+"GD.Print(arr.Contains(\"outside\")); // False\n"
+"GD.Print(arr.Contains(7)); // True\n"
+"GD.Print(arr.Contains(\"7\")); // False\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] This is equivalent to using the [code]in[/code] operator as "
+"follows:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# Will evaluate to `true`.\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" print(\"Contains!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// As there is no \"in\" keyword in C#, you have to use Contains\n"
+"var array = new Godot.Collections.Array { 2, 4, 6, 8 };\n"
+"if (array.Contains(2))\n"
+"{\n"
+" GD.Print(\"Contains!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"如果該陣列包含給定值,則返回 [code]true[/code]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"print([\"inside\", 7].has(\"inside\")) # 真\n"
+"print([\"inside\", 7].has(\"outside\")) # 假\n"
+"print([\"inside\", 7].has(7)) # 真\n"
+"print([\"inside\", 7].has(\"7\")) # 假\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var arr = new Godot.Collections.Array { \"inside\", 7 };\n"
+"// has 被改名為 Contains\n"
+"GD.Print(arr.Contains(\"inside\")); // 真\n"
+"GD.Print(arr.Contains(\"outside\")); // 假\n"
+"GD.Print(arr.Contains(7)); // 真\n"
+"GD.Print(arr.Contains(\"7\")); // 假\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b]這相當於使用 [code]in[/code] 運算子,如下所示:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 將評估為`true`。\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" print(\"包含!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 由於 C# 中沒有關鍵字“in”,因此必須使用 Contains\n"
+"var array = new Godot.Collections.Array { 2, 4, 6, 8 };\n"
+"if (array.Contains(2))\n"
+"{\n"
+" GD.Print(\"包含!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a hashed 32-bit integer value representing the array and its "
+"contents.\n"
+"[b]Note:[/b] [Array]s with equal content will always produce identical hash "
+"values. However, the reverse is not true. Returning identical hash values "
+"does [i]not[/i] imply the arrays are equal, because different arrays can have "
+"identical hash values due to hash collisions."
+msgstr ""
+"返回代表該陣列及其內容的 32 位元整數雜湊值。\n"
+"[b]注意:[/b]內容相同的 [Array] 會得到一致的雜湊值。然而,反之不然。返回一致的"
+"雜湊值[i]並不[/i]意味著陣列相等,因為不同的陣列可能因為雜湊碰撞而得到一致的雜"
+"湊值。"
+
+msgid ""
+"Inserts a new element at a given position in the array. The position must be "
+"valid, or at the end of the array ([code]pos == size()[/code]). Returns "
+"[constant OK] on success, or one of the other [enum Error] values if the "
+"operation failed.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the inserted "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the newly inserted element have to be reindexed."
+msgstr ""
+"在給定的陣列位置插入一個新值。位置必須合法,或者是在陣列末尾([code]pos == "
+"size()[/code])。\n"
+"[b]注意:[/b]該方法在原地執行,沒有返回值。\n"
+"[b]注意:[/b]在較大的陣列中,如果插入值的位置在陣列偏前的位置,這個方法的運作"
+"速度會比較慢,因為在插入值後面所有的元素都要被重新索引。"
+
+msgid "Returns [code]true[/code] if the array is empty."
+msgstr "該陣列為空時,返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the array is read-only. See [method "
+"make_read_only]. Arrays are automatically read-only if declared with "
+"[code]const[/code] keyword."
+msgstr ""
+"如果該陣列唯讀,則返回 [code]true[/code]。見 [method make_read_only]。如果數組"
+"是用 [code]const[/code] 關鍵字宣告的,則自動唯讀。"
+
+msgid ""
+"Returns [code]true[/code] if the array is typed the same as [param array]."
+msgstr "如果該陣列的型別與 [param array] 相同,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the array is typed. Typed arrays can only store "
+"elements of their associated type and provide type safety for the [code][][/"
+"code] operator. Methods of typed array still return [Variant]."
+msgstr ""
+"如果該陣列是型別化的,則返回 [code]true[/code]。型別化陣列只能儲存與其關聯類型"
+"的元素,能夠為其 [code][][/code] 運算子提供型別安全支援。型別化陣列的方法仍然"
+"返回 [Variant]。"
+
+msgid ""
+"Makes the array read-only, i.e. disabled modifying of the array's elements. "
+"Does not apply to nested content, e.g. content of nested arrays."
+msgstr ""
+"使該陣列唯讀,即禁止修改該陣列的元素。不適用於巢狀的內容,例如巢狀陣列的內容。"
+
+msgid ""
+"Calls the provided [Callable] for each element in the array and returns a new "
+"array filled with values returned by the method.\n"
+"The callable's method should take one [Variant] parameter (the current array "
+"element) and can return any [Variant].\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].map(negate)) # Prints [-1, -2, -3].\n"
+" print([1, 2, 3].map(func(number): return -number)) # Same as above, but "
+"using lambda function.\n"
+"\n"
+"func negate(number):\n"
+" return -number\n"
+"[/codeblock]\n"
+"See also [method filter], [method reduce], [method any] and [method all]."
+msgstr ""
+"為陣列中的每個元素呼叫提供的 [Callable] 並返回一個新陣列,其中填充了該呼叫方法"
+"返回的值。\n"
+"可呼叫的方法應該採用一個 [Variant] 參數(目前陣列元素)並且可以返回任意 "
+"[Variant]。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].map(negate)) # 列印 [-1, -2, -3].\n"
+" print([1, 2, 3].map(func(number): return -number)) # 同上,但使用 lambda "
+"函式。\n"
+"\n"
+"func negate(number):\n"
+" return -number\n"
+"[/codeblock]\n"
+"另請參見 [method filter]、[method reduce]、[method any] 和 [method all]。"
+
+msgid ""
+"Returns the maximum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned.\n"
+"To find the maximum value using a custom comparator, you can use [method "
+"reduce]. In this example every array element is checked and the first maximum "
+"value is returned:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), "
+"Vector2(0, 2)]\n"
+" # In this example we compare the lengths.\n"
+" print(arr.reduce(func(max, val): return val if is_length_greater(val, "
+"max) else max))\n"
+"\n"
+"func is_length_greater(a, b):\n"
+" return a.length() > b.length()\n"
+"[/codeblock]"
+msgstr ""
+"如果陣列中包含的所有元素都是可比較的型別,則返回其中的最大值。如果無法比較,則"
+"返回 [code]null[/code]。\n"
+"要使用自訂比較器來搜尋最大值,可以使用 [method reduce]。這個例子中會比較數組中"
+"的每個元素,並返回第一個最大值:\n"
+"[codeblock]\n"
+"func _ready():\n"
+" var arr = [Vector2(0, 1), Vector2(2, 0), Vector2(1, 1), Vector2(1, 0), "
+"Vector2(0, 2)]\n"
+" # 這個例子中我們比較的是長度。\n"
+" print(arr.reduce(func(max, val): return val if is_length_greater(val, "
+"max) else max))\n"
+"\n"
+"func is_length_greater(a, b):\n"
+" return a.length() > b.length()\n"
+"[/codeblock]"
+
+msgid ""
+"Returns the minimum value contained in the array if all elements are of "
+"comparable types. If the elements can't be compared, [code]null[/code] is "
+"returned.\n"
+"See also [method max] for an example of using a custom comparator."
+msgstr ""
+"如果陣列中包含的所有元素都是可比較的型別,則返回其中的最小值。如果無法比較,則"
+"返回 [code]null[/code]。\n"
+"使用自訂比較器的範例見 [method max]。"
+
+msgid ""
+"Returns a random value from the target array. Prints an error and returns "
+"[code]null[/code] if the array is empty.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # Prints either of the four numbers.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // Prints either of the four numbers.\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"從目標陣列中返回一個隨機值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var array: Array[int] = [1, 2, 3, 4]\n"
+"print(array.pick_random()) # 輸出四個數字中的任何一個。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var array = new Godot.Collections.Array { 1, 2, 3, 4 };\n"
+"GD.Print(array.PickRandom()); // 輸出四個數字中的任何一個。\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Removes and returns the element of the array at index [param position]. If "
+"negative, [param position] is considered relative to the end of the array. "
+"Leaves the array untouched and returns [code]null[/code] if the array is "
+"empty or if it's accessed out of bounds. An error message is printed when the "
+"array is accessed out of bounds, but not when the array is empty.\n"
+"[b]Note:[/b] On large arrays, this method can be slower than [method "
+"pop_back] as it will reindex the array's elements that are located after the "
+"removed element. The larger the array and the lower the index of the removed "
+"element, the slower [method pop_at] will be."
+msgstr ""
+"移除並返回陣列中位於 [param position] 索引處的元素。如果 [param position] 為負"
+"數,則認為是相對於該陣列末尾的值。如果該陣列為空,則返回 [code]null[/code],不"
+"會改動陣列。陣列存取越界時會輸出錯誤消息,但如果陣列為空時不會。\n"
+"[b]注意:[/b]在較大的陣列上,這個方法會比 [method pop_back] 慢,因為會對移除元"
+"素後的陣列元素重新進行索引。陣列越大,或者移除元素的索引越小,[method pop_at] "
+"就越慢。"
+
+msgid ""
+"Removes and returns the last element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_front]."
+msgstr ""
+"移除並返回陣列中的末尾元素。如果陣列為空,則返回 [code]null[/code],而不列印錯"
+"誤消息。另見[method pop_front]。"
+
+msgid ""
+"Removes and returns the first element of the array. Returns [code]null[/code] "
+"if the array is empty, without printing an error message. See also [method "
+"pop_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"pop_back] as it will reindex all the array's elements every time it's called. "
+"The larger the array, the slower [method pop_front] will be."
+msgstr ""
+"移除並返回陣列的第一個元素。如果陣列是空的,將不會輸出任何錯誤資訊並返回 "
+"[code]null[/code]。另請參閱 [method pop_back]。\n"
+"[b]注意:[/b]當陣列元素很多時,由於 [method pop_front] 每次呼叫時都要重新尋找"
+"陣列所有元素的索引,所以會比 [method pop_back] 慢很多。陣列越大,[method "
+"pop_front] 越慢。"
+
+msgid ""
+"Appends an element at the end of the array. See also [method push_front]."
+msgstr "在陣列的末端追加一個元素。另請參閱 [method push_front]。"
+
+msgid ""
+"Adds an element at the beginning of the array. See also [method push_back].\n"
+"[b]Note:[/b] On large arrays, this method is much slower than [method "
+"push_back] as it will reindex all the array's elements every time it's "
+"called. The larger the array, the slower [method push_front] will be."
+msgstr ""
+"在陣列的開頭新增一個元素。另請參閱 [method push_back]。\n"
+"[b]注意:[/b]在大陣列中,這個方法比 [method push_back] 慢得多,因為每次呼叫它"
+"都會重新索引所有陣列的元素。陣列越大,[method push_front] 的速度就越慢。"
+
+msgid ""
+"Calls the provided [Callable] for each element in array and accumulates the "
+"result in [param accum].\n"
+"The callable's method takes two arguments: the current value of [param accum] "
+"and the current array element. If [param accum] is [code]null[/code] (default "
+"value), the iteration will start from the second element, with the first one "
+"used as initial value of [param accum].\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].reduce(sum, 10)) # Prints 16.\n"
+" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10)) # "
+"Same as above, but using lambda function.\n"
+"\n"
+"func sum(accum, number):\n"
+" return accum + number\n"
+"[/codeblock]\n"
+"See also [method map], [method filter], [method any] and [method all]."
+msgstr ""
+"為陣列中的每個元素呼叫給定的 [Callable] 並將結果累積在 [param accum] 中。\n"
+"該可呼叫體的方法接受兩個參數:[param accum] 的目前值,以及目前的陣列元素。如"
+"果 [param accum] 為 [code]null[/code](預設值),則會從第二個元素開始反覆運"
+"算,將第一個元素作為 [param accum] 的初始值。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" print([1, 2, 3].reduce(sum, 10)) # 輸出 16.\n"
+" print([1, 2, 3].reduce(func(accum, number): return accum + number, 10)) # "
+"同上,但使用 lambda 函式。\n"
+"\n"
+"func sum(accum, number):\n"
+" return accum + number\n"
+"[/codeblock]\n"
+"另見 [method map]、[method filter]、[method any]、[method all]。"
+
+msgid ""
+"Removes an element from the array by index. If the index does not exist in "
+"the array, nothing happens. To remove an element by searching for its value, "
+"use [method erase] instead.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array.\n"
+"[b]Note:[/b] On large arrays, this method will be slower if the removed "
+"element is close to the beginning of the array (index 0). This is because all "
+"elements placed after the removed element have to be reindexed.\n"
+"[b]Note:[/b] [param position] cannot be negative. To remove an element "
+"relative to the end of the array, use [code]arr.remove_at(arr.size() - (i + "
+"1))[/code]. To remove the last element from the array without returning the "
+"value, use [code]arr.resize(arr.size() - 1)[/code]."
+msgstr ""
+"按索引從陣列中移除一個元素。如果索引在陣列中不存在,則什麼也不會發生。要通過搜"
+"索一個元素的值來移除它,請使用 [method erase] 來代替。\n"
+"[b]注意:[/b]這個方法是就地操作,不返回值。\n"
+"[b]注意:[/b]在大陣列中,如果被刪除的元素靠近陣列的開頭(索引 0),這個方法會"
+"比較慢。這是因為所有放置在被移除元素之後的元素都要被重新索引。\n"
+"[b]注意:[/b][param position] 不能為負。要移除陣列末尾的元素,請使用 "
+"[code]arr.remove_at(arr.size() - (i + 1))[/code]。要移除陣列末尾的元素並不返回"
+"值,請使用 [code]arr.resize(arr.size() - 1)[/code]。"
+
+msgid ""
+"Resizes the array to contain a different number of elements. If the array "
+"size is smaller, elements are cleared, if bigger, new elements are "
+"[code]null[/code]. Returns [constant OK] on success, or one of the other "
+"[enum Error] values if the operation failed.\n"
+"[b]Note:[/b] This method acts in-place and doesn't return a modified array."
+msgstr ""
+"調整陣列的大小,讓包含的元素數量發生變化。如果陣列變小則清除多餘元素,變大則新"
+"元素為 [code]null[/code]。"
+
+msgid "Reverses the order of the elements in the array."
+msgstr "將陣列中的元素逆序排列。"
+
+msgid ""
+"Searches the array in reverse order. Optionally, a start search index can be "
+"passed. If negative, the start index is considered relative to the end of the "
+"array."
+msgstr ""
+"逆序搜索陣列。還可以傳遞起始搜索位置索引。如果為負,則起始索引被視為相對於數組"
+"的結尾。"
+
+msgid ""
+"Shuffles the array such that the items will have a random order. This method "
+"uses the global random number generator common to methods such as [method "
+"@GlobalScope.randi]. Call [method @GlobalScope.randomize] to ensure that a "
+"new seed will be used each time if you want non-reproducible shuffling."
+msgstr ""
+"將陣列打亂,元素隨機排列。該方法使用全域亂數產生器,與 [method @GlobalScope."
+"randi] 等方法一致。如果你想每次都使用新的種子,讓打亂無法重現,則可以呼叫 "
+"[method @GlobalScope.randomize]。"
+
+msgid "Returns the number of elements in the array."
+msgstr "返回陣列中元素的個數。"
+
+msgid ""
+"Returns the slice of the [Array], from [param begin] (inclusive) to [param "
+"end] (exclusive), as a new [Array].\n"
+"The absolute value of [param begin] and [param end] will be clamped to the "
+"array size, so the default value for [param end] makes it slice to the size "
+"of the array by default (i.e. [code]arr.slice(1)[/code] is a shorthand for "
+"[code]arr.slice(1, arr.size())[/code]).\n"
+"If either [param begin] or [param end] are negative, they will be relative to "
+"the end of the array (i.e. [code]arr.slice(0, -2)[/code] is a shorthand for "
+"[code]arr.slice(0, arr.size() - 2)[/code]).\n"
+"If specified, [param step] is the relative index between source elements. It "
+"can be negative, then [param begin] must be higher than [param end]. For "
+"example, [code][0, 1, 2, 3, 4, 5].slice(5, 1, -2)[/code] returns [code][5, 3]"
+"[/code].\n"
+"If [param deep] is true, each element will be copied by value rather than by "
+"reference.\n"
+"[b]Note:[/b] To include the first element when [param step] is negative, use "
+"[code]arr.slice(begin, -arr.size() - 1, step)[/code] (i.e. [code][0, 1, 2]."
+"slice(1, -4, -1)[/code] returns [code][1, 0][/code])."
+msgstr ""
+"返回該 [Array] 的切片,是從 [param begin](含)到 [param end](不含)的全新 "
+"[Array]。\n"
+"[param begin] 和 [param end] 的絕對值會按陣列大小進行限制,所以 [param end] 的"
+"預設值會切到陣列大小為止(即 [code]arr.slice(1)[/code] 是 [code]arr.slice(1, "
+"arr.size())[/code] 的簡寫)。\n"
+"如果 [param begin] 或 [param end] 為負,則表示相對於陣列的末尾(即 [code]arr."
+"slice(0, -2)[/code] 是 [code]arr.slice(0, arr.size() - 2)[/code] 的簡寫)。\n"
+"如果指定了 [param step],則會用作原始元素的索引間距。這個參數可以為負,此時 "
+"[param begin] 必須大於 [param end]。例如,[code][0, 1, 2, 3, 4, 5].slice(5, "
+"1, -2)[/code] 會返回 [code][5, 3][/code]。\n"
+"如果 [param deep] 為 true,則每個元素都會按值複製,而不是按引用複製。\n"
+"[b]注意:[/b]要在 [param step] 為負時包含第一個元素,請使用 [code]arr."
+"slice(begin, -arr.size() - 1, step)[/code](即 [code][0, 1, 2].slice(1, -4, "
+"-1)[/code] 返回 [code][1, 0][/code])。"
+
+msgid ""
+"Sorts the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method sort].\n"
+"[b]Note:[/b] Strings are sorted in alphabetical order (as opposed to natural "
+"order). This may lead to unexpected behavior when sorting an array of strings "
+"ending with a sequence of numbers. Consider the following example:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort()\n"
+"print(strings) # Prints [string1, string10, string11, string2]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var strings = new Godot.Collections.Array { \"string1\", \"string2\", "
+"\"string10\", \"string11\" };\n"
+"strings.Sort();\n"
+"GD.Print(strings); // Prints [string1, string10, string11, string2]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"To perform natural order sorting, you can use [method sort_custom] with "
+"[method String.naturalnocasecmp_to] as follows:\n"
+"[codeblock]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort_custom(func(a, b): return a.naturalnocasecmp_to(b) < 0)\n"
+"print(strings) # Prints [string1, string2, string10, string11]\n"
+"[/codeblock]"
+msgstr ""
+"對陣列進行排序。\n"
+"[b]注意:[/b]排序所使用的演算法並不[url=https://zh.wikipedia.org/wiki/"
+"%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95#%E7%A9%A9%E5%AE%9A%E6%80%A7]穩定[/url]。"
+"也就是說,使用 [method sort] 時相等的值之間的順序可能會改變。\n"
+"[b]注意:[/b]字串按字母順序排序(與自然順序相反)。當對一個以數字序列結尾的字"
+"串陣列進行排序時,這可能會導致意外的行為。請看下面的例子:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort()\n"
+"print(strings) # 輸出 [string1, string10, string11, string2]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var strings = new Godot.Collections.Array { \"string1\", \"string2\", "
+"\"string10\", \"string11\" };\n"
+"strings.Sort();\n"
+"GD.Print(strings); // 輸出 [string1, string10, string11, string2]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"要執行自然順序排序,可以使用 [method sort_custom] 和 [method String."
+"naturalnocasecmp_to],如下所示:\n"
+"[codeblock]\n"
+"var strings = [\"string1\", \"string2\", \"string10\", \"string11\"]\n"
+"strings.sort_custom(func(a, b): return a.naturalnocasecmp_to(b) < 0)\n"
+"print(strings) # 輸出 [string1, string2, string10, string11]\n"
+"[/codeblock]"
+
+msgid ""
+"Sorts the array using a custom method. The custom method receives two "
+"arguments (a pair of elements from the array) and must return either "
+"[code]true[/code] or [code]false[/code]. For two elements [code]a[/code] and "
+"[code]b[/code], if the given method returns [code]true[/code], element "
+"[code]b[/code] will be after element [code]a[/code] in the array.\n"
+"[b]Note:[/b] The sorting algorithm used is not [url=https://en.wikipedia.org/"
+"wiki/Sorting_algorithm#Stability]stable[/url]. This means that values "
+"considered equal may have their order changed when using [method "
+"sort_custom].\n"
+"[b]Note:[/b] You cannot randomize the return value as the heapsort algorithm "
+"expects a deterministic result. Randomizing the return value will result in "
+"unexpected behavior.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func sort_ascending(a, b):\n"
+" if a[0] < b[0]:\n"
+" return true\n"
+" return false\n"
+"\n"
+"func _ready():\n"
+" var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
+" my_items.sort_custom(sort_ascending)\n"
+" print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].\n"
+"\n"
+" # Descending, lambda version.\n"
+" my_items.sort_custom(func(a, b): return a[0] > b[0])\n"
+" print(my_items) # Prints [[9, Rice], [5, Potato], [4, Tomato]].\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// There is no custom sort support for Godot.Collections.Array\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"使用自訂的方法對陣列進行排序。自訂方法接受兩個參數(陣列中的一對元素),並且必"
+"須返回 [code]true[/code] 或者 [code]false[/code]。對於兩個元素 [code]a[/code] "
+"和 [code]b[/code],如果給定的方法返回 [code]true[/code],陣列中的元素 "
+"[code]b[/code] 將排在元素 [code]a[/code] 之後。\n"
+"[b]注意:[/b]排序所使用的演算法並不[url=https://zh.wikipedia.org/wiki/"
+"%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95#%E7%A9%A9%E5%AE%9A%E6%80%A7]穩定[/url]。"
+"也就是說,使用 [method sort_custom] 時相等的值之間的順序可能會改變。\n"
+"[b]注意:[/b]你不能隨機化返回值,因為堆排序演算法期望確定的結果。隨機化返回值"
+"將導致意外行為。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func sort_ascending(a, b):\n"
+" if a[0] < b[0]:\n"
+" return true\n"
+" return false\n"
+"\n"
+"func _ready():\n"
+" var my_items = [[5, \"Potato\"], [9, \"Rice\"], [4, \"Tomato\"]]\n"
+" my_items.sort_custom(sort_ascending)\n"
+" print(my_items) # 輸出 [[4, Tomato], [5, Potato], [9, Rice]].\n"
+"\n"
+" # Descending, lambda version.\n"
+" my_items.sort_custom(func(a, b): return a[0] > b[0])\n"
+" print(my_items) # 輸出 [[9, Rice], [5, Potato], [4, Tomato]].\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Godot.Collections.Array 不支援自訂排序\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Compares the left operand [Array] against the [param right] [Array]. Returns "
+"[code]true[/code] if the sizes or contents of the arrays are [i]not[/i] "
+"equal, [code]false[/code] otherwise."
+msgstr ""
+"將左運算元 [Array] 與右運算元 [param right] [Array] 進行比較。如果大小或內容"
+"[i]不相等[/i],則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"Concatenates two [Array]s together, with the [param right] [Array] being "
+"added to the end of the [Array] specified in the left operand. For example, "
+"[code][1, 2] + [3, 4][/code] results in [code][1, 2, 3, 4][/code]."
+msgstr ""
+"連接兩個 [Array],右運算元 [param right] [Array] 加到左運算元指定的 [Array] 的"
+"末尾。例如,[code][1, 2] + [3, 4][/code] 的結果是 [code][1, 2, 3, 4][/code]。"
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is less, or [code]false[/code] if the element is greater. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]false[/code] if the left operand [Array] has fewer elements, otherwise "
+"it returns [code]true[/code]."
+msgstr ""
+"對左運算元 [Array] 和右運算元 [param right] [Array] 之間的各個索引進行比較,考"
+"慮兩個陣列的最高公共索引:遇到第一個不同的元素時,如果該元素較小則返回 "
+"[code]true[/code],如果該元素較大則返回 [code]false[/code]。請注意,部分型別的"
+"儲存資料可能導致本函式的遞迴呼叫。如果所有元素都相等,則比較兩個陣列的長度,如"
+"果左運算元 [Array] 元素較少則返回 [code]false[/code],否則返回 [code]true[/"
+"code]。"
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is less, or [code]false[/code] if the element is greater. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the left operand [Array] has the same number of elements "
+"or fewer, otherwise it returns [code]false[/code]."
+msgstr ""
+"對左運算元 [Array] 和右運算元 [param right] [Array] 之間的各個索引進行比較,考"
+"慮兩個陣列的最高公共索引:遇到第一個不同的元素時,如果該元素較小則返回 "
+"[code]true[/code],如果該元素較大則返回 [code]false[/code]。請注意,部分型別的"
+"儲存資料可能導致本函式的遞迴呼叫。如果所有元素都相等,則比較兩個陣列的長度,如"
+"果左運算元 [Array] 元素數量相等或較少則返回 [code]true[/code],否則返回 "
+"[code]false[/code]。"
+
+msgid ""
+"Compares the left operand [Array] against the [param right] [Array]. Returns "
+"[code]true[/code] if the sizes and contents of the arrays are equal, "
+"[code]false[/code] otherwise."
+msgstr ""
+"將左運算元 [Array] 與 [param right] [Array] 進行比較。如果陣列的大小和內容相"
+"等,則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is greater, or [code]false[/code] if the element is less. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the [param right] [Array] has more elements, otherwise "
+"it returns [code]false[/code]."
+msgstr ""
+"對左運算元 [Array] 和右運算元 [param right] [Array] 之間的各個索引進行比較,考"
+"慮兩個陣列的最高公共索引:遇到第一個不同的元素時,如果該元素較大則返回 "
+"[code]true[/code],如果該元素較小則返回 [code]false[/code]。請注意,部分型別的"
+"儲存資料可能導致本函式的遞迴呼叫。如果所有元素都相等,則比較兩個陣列的長度,如"
+"果左運算元 [Array] 元素較多則返回 [code]true[/code],否則返回 [code]false[/"
+"code]。"
+
+msgid ""
+"Performs a comparison for each index between the left operand [Array] and the "
+"[param right] [Array], considering the highest common index of both arrays "
+"for this comparison: Returns [code]true[/code] on the first occurrence of an "
+"element that is greater, or [code]false[/code] if the element is less. Note "
+"that depending on the type of data stored, this function may be recursive. If "
+"all elements are equal, it compares the length of both arrays and returns "
+"[code]true[/code] if the [param right] [Array] has more or the same number of "
+"elements, otherwise it returns [code]false[/code]."
+msgstr ""
+"對左運算元 [Array] 和右運算元 [param right] [Array] 之間的各個索引進行比較,考"
+"慮兩個陣列的最高公共索引:遇到第一個不同的元素時,如果該元素較大則返回 "
+"[code]true[/code],如果該元素較小則返回 [code]false[/code]。請注意,部分型別的"
+"儲存資料可能導致本函式的遞迴呼叫。如果所有元素都相等,則比較兩個陣列的長度,如"
+"果左運算元 [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] 網格型別,提供了用於從陣列建構表面的工具。"
+
+msgid ""
+"The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as "
+"arrays.\n"
+"The most basic example is the creation of a single triangle:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var vertices = PackedVector3Array()\n"
+"vertices.push_back(Vector3(0, 1, 0))\n"
+"vertices.push_back(Vector3(1, 0, 0))\n"
+"vertices.push_back(Vector3(0, 0, 1))\n"
+"\n"
+"# Initialize the ArrayMesh.\n"
+"var arr_mesh = ArrayMesh.new()\n"
+"var arrays = []\n"
+"arrays.resize(Mesh.ARRAY_MAX)\n"
+"arrays[Mesh.ARRAY_VERTEX] = vertices\n"
+"\n"
+"# Create the Mesh.\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
+"var m = MeshInstance3D.new()\n"
+"m.mesh = arr_mesh\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var vertices = new Vector3[]\n"
+"{\n"
+" new Vector3(0, 1, 0),\n"
+" new Vector3(1, 0, 0),\n"
+" new Vector3(0, 0, 1),\n"
+"};\n"
+"\n"
+"// Initialize the ArrayMesh.\n"
+"var arrMesh = new ArrayMesh();\n"
+"var arrays = new Godot.Collections.Array();\n"
+"arrays.Resize((int)Mesh.ArrayType.Max);\n"
+"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n"
+"\n"
+"// Create the Mesh.\n"
+"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n"
+"var m = new MeshInstance3D();\n"
+"m.Mesh = arrMesh;\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The [MeshInstance3D] is ready to be added to the [SceneTree] to be shown.\n"
+"See also [ImmediateMesh], [MeshDataTool] and [SurfaceTool] for procedural "
+"geometry generation.\n"
+"[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-"
+"OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive "
+"modes."
+msgstr ""
+"[ArrayMesh] 是用來建構 [Mesh] 的,其屬性指定為陣列。\n"
+"最基本的例子是建立單個三角形:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var vertices = PackedVector3Array()\n"
+"vertices.push_back(Vector3(0, 1, 0))\n"
+"vertices.push_back(Vector3(1, 0, 0))\n"
+"vertices.push_back(Vector3(0, 0, 1))\n"
+"\n"
+"# 初始化 ArrayMesh。\n"
+"var arr_mesh = ArrayMesh.new()\n"
+"var arrays = []\n"
+"arrays.resize(Mesh.ARRAY_MAX)\n"
+"arrays[Mesh.ARRAY_VERTEX] = vertices\n"
+"\n"
+"# 建立 Mesh。\n"
+"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n"
+"var m = MeshInstance3D.new()\n"
+"m.mesh = arr_mesh\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var vertices = new Vector3[]\n"
+"{\n"
+" new Vector3(0, 1, 0),\n"
+" new Vector3(1, 0, 0),\n"
+" new Vector3(0, 0, 1),\n"
+"};\n"
+"\n"
+"// 初始化 ArrayMesh。\n"
+"var arrMesh = new ArrayMesh();\n"
+"var arrays = new Godot.Collections.Array();\n"
+"arrays.Resize((int)Mesh.ArrayType.Max);\n"
+"arrays[(int)Mesh.ArrayType.Vertex] = vertices;\n"
+"\n"
+"// 建立 Mesh。\n"
+"arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);\n"
+"var m = new MeshInstance3D();\n"
+"m.Mesh = arrMesh;\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"這個 [MeshInstance3D] 就可以新增到要顯示的 [SceneTree] 中了。\n"
+"程式幾何體生成請參閱 [ImmediateMesh]、[MeshDataTool]、[SurfaceTool]。\n"
+"[b]注意:[/b]Godot 對三角形圖元模式的正面使用順時針[url=https://learnopengl-"
+"cn.github.io/04%20Advanced%20OpenGL/04%20Face%20culling/]環繞順序[/url]。"
+
+msgid "Procedural geometry using the ArrayMesh"
+msgstr "使用 ArrayMesh 的程式化幾何體"
+
+msgid ""
+"Adds name for a blend shape that will be added with [method "
+"add_surface_from_arrays]. Must be called before surface is added."
+msgstr ""
+"為混合形狀新增名稱,該形狀將用 [method add_surface_from_arrays] 新增。必須在新"
+"增面之前呼叫。"
+
+msgid ""
+"Creates a new surface. [method Mesh.get_surface_count] will become the "
+"[code]surf_idx[/code] for this new surface.\n"
+"Surfaces are created to be rendered using a [param primitive], which may be "
+"any of the values defined in [enum Mesh.PrimitiveType].\n"
+"The [param arrays] argument is an array of arrays. Each of the [constant Mesh."
+"ARRAY_MAX] elements contains an array with some of the mesh data for this "
+"surface as described by the corresponding member of [enum Mesh.ArrayType] or "
+"[code]null[/code] if it is not used by the surface. For example, "
+"[code]arrays[0][/code] is the array of vertices. That first vertex sub-array "
+"is always required; the others are optional. Adding an index array puts this "
+"surface into \"index mode\" where the vertex and other arrays become the "
+"sources of data and the index array defines the vertex order. All sub-arrays "
+"must have the same length as the vertex array (or be an exact multiple of the "
+"vertex array's length, when multiple elements of a sub-array correspond to a "
+"single vertex) or be empty, except for [constant Mesh.ARRAY_INDEX] if it is "
+"used.\n"
+"The [param blend_shapes] argument is an array of vertex data for each blend "
+"shape. Each element is an array of the same structure as [param arrays], but "
+"[constant Mesh.ARRAY_VERTEX], [constant Mesh.ARRAY_NORMAL], and [constant "
+"Mesh.ARRAY_TANGENT] are set if and only if they are set in [param arrays] and "
+"all other entries are [code]null[/code].\n"
+"The [param lods] argument is a dictionary with [float] keys and "
+"[PackedInt32Array] values. Each entry in the dictionary represents a LOD "
+"level of the surface, where the value is the [constant Mesh.ARRAY_INDEX] "
+"array to use for the LOD level and the key is roughly proportional to the "
+"distance at which the LOD stats being used. I.e., increasing the key of a LOD "
+"also increases the distance that the objects has to be from the camera before "
+"the LOD is used.\n"
+"The [param flags] argument is the bitwise or of, as required: One value of "
+"[enum Mesh.ArrayCustomFormat] left shifted by "
+"[code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code] for each custom channel in use, "
+"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE], [constant Mesh."
+"ARRAY_FLAG_USE_8_BONE_WEIGHTS], or [constant Mesh."
+"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY].\n"
+"[b]Note:[/b] When using indices, it is recommended to only use points, lines, "
+"or triangles."
+msgstr ""
+"建立一個新的表面。[method Mesh.get_surface_count] 將成為這個新表面的 "
+"[code]surf_idx[/code]。\n"
+"建立表面以使用 [param primitive] 進行渲染,它可以是 [enum Mesh.PrimitiveType] "
+"中定義的任何值。\n"
+"[param arrays] 參數是陣列的陣列。每個 [constant Mesh.ARRAY_MAX] 元素都包含一個"
+"陣列,其中包含此表面的一些網格資料,如 [enum Mesh.ArrayType] 的相應成員所描述"
+"的一樣;如果它未被使用,則為 [code]null[/code]。例如,[code]arrays[0][/code] "
+"是頂點陣列。始終需要第一個頂點子陣列;其他的是可選的。新增索引陣列會將此表面置"
+"於“索引模式”,其中頂點和其他陣列成為資料來源,索引陣列定義頂點順序。所有子陣列"
+"的長度必須與頂點陣列的長度相同(或者是頂點陣列長度的精確倍數,當子數組的多個元"
+"素對應於單個頂點時);或者為空,如果使用了 [constant Mesh.ARRAY_INDEX ] 則除"
+"外。\n"
+"[param blend_shapes] 參數是每個混合形狀的頂點資料陣列。 每個元素都是與 [param "
+"arrays] 具有相同結構的陣列,但是 [constant Mesh.ARRAY_VERTEX]、[constant Mesh."
+"ARRAY_NORMAL] 和 [constant Mesh.ARRAY_TANGENT] 這些條目,當且僅當在 [param "
+"arrays] 被設定且所有其他條目都是 [code]null[/code] 時,會被設置。\n"
+"[param lods] 參數是一個帶有 [float] 鍵和 [PackedInt32Array] 值的字典。字典中的"
+"每個條目代表了表面的一個 LOD 級別,其中值是用於 LOD 級別的 [constant Mesh."
+"ARRAY_INDEX] 陣列,鍵大致與使用 LOD 統計資訊的距離成正比。即,增加 LOD 的關鍵"
+"點也會增加在使用 LOD 之前物件必須與相機的距離。\n"
+"[param flags] 參數是根據需要按位元或的:[enum Mesh.ArrayCustomFormat] 的一個值"
+"左移 [code]ARRAY_FORMAT_CUSTOMn_SHIFT[/code],用於每個正在使用的自訂通道,"
+"[constant Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE]、[constant Mesh."
+"ARRAY_FLAG_USE_8_BONE_WEIGHTS]、或 [constant Mesh."
+"ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY]。\n"
+"[b]注意:[/b]使用索引時,建議只使用點、線或三角形。"
+
+msgid "Removes all blend shapes from this [ArrayMesh]."
+msgstr "移除此 [ArrayMesh] 的所有混合形狀。"
+
+msgid "Removes all surfaces from this [ArrayMesh]."
+msgstr "移除此 [ArrayMesh] 的所有表面。"
+
+msgid "Returns the number of blend shapes that the [ArrayMesh] holds."
+msgstr "返回 [ArrayMesh] 持有的混合形狀的數量。"
+
+msgid "Returns the name of the blend shape at this index."
+msgstr "返回此索引處的混合形狀的名稱。"
+
+msgid ""
+"Performs a UV unwrap on the [ArrayMesh] to prepare the mesh for lightmapping."
+msgstr "在 [ArrayMesh] 上執行 UV 展開,為光照貼圖準備該網格。"
+
+msgid "Regenerates tangents for each of the [ArrayMesh]'s surfaces."
+msgstr "為每個 [ArrayMesh] 的表面重新生成切線。"
+
+msgid "Sets the name of the blend shape at this index."
+msgstr "在此索引處設定混合形狀的名稱。"
+
+msgid ""
+"Returns the index of the first surface with this name held within this "
+"[ArrayMesh]. If none are found, -1 is returned."
+msgstr ""
+"返回此 [ArrayMesh] 中帶有此名稱的第一個曲面的索引。如果沒有找到,則返回 -1。"
+
+msgid ""
+"Returns the length in indices of the index array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+"返回所請求的面中索引陣列的索引長度(參見 [method add_surface_from_arrays])。"
+
+msgid ""
+"Returns the length in vertices of the vertex array in the requested surface "
+"(see [method add_surface_from_arrays])."
+msgstr ""
+"返回所請求曲面中頂點陣列的頂點長度(見 [method add_surface_from_arrays])。"
+
+msgid ""
+"Returns the format mask of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr "返回所請求表面的格式遮罩(見 [method add_surface_from_arrays])。"
+
+msgid "Gets the name assigned to this surface."
+msgstr "獲取分配給此表面的名稱。"
+
+msgid ""
+"Returns the primitive type of the requested surface (see [method "
+"add_surface_from_arrays])."
+msgstr "返回所請求曲面的圖元型別(見 [method add_surface_from_arrays])。"
+
+msgid "Sets a name for a given surface."
+msgstr "設定給定曲面的名稱。"
+
+msgid "Sets the blend shape mode to one of [enum Mesh.BlendShapeMode]."
+msgstr "將混合形狀模式設定為 [enum Mesh.BlendShapeMode] 之一。"
+
+msgid ""
+"Overrides the [AABB] with one defined by user for use with frustum culling. "
+"Especially useful to avoid unexpected culling when using a shader to offset "
+"vertices."
+msgstr ""
+"用使用者定義的用於使用視錐剔除的一種替代 [AABB]。在使用著色器偏移頂點時,避免"
+"非預期的剔除特別有用。"
+
+msgid ""
+"An optional mesh which is used for rendering shadows and can be used for the "
+"depth prepass. Can be used to increase performance of shadow rendering by "
+"using a mesh that only contains vertex position data (without normals, UVs, "
+"colors, etc.)."
+msgstr ""
+"用於渲染陰影並可用於深度預通道的可選網格。可用於通過使用僅包含頂點位置資料(不"
+"含法線、UV、顏色等)的網格來提高陰影渲染的性能。"
+
+msgid "3D polygon shape for use with occlusion culling in [OccluderInstance3D]."
+msgstr "用於與 [OccluderInstance3D] 中的遮擋剔除一起使用的 3D 多邊形形狀。"
+
+msgid ""
+"[ArrayOccluder3D] stores an arbitrary 3D polygon shape that can be used by "
+"the engine's occlusion culling system. This is analogous to [ArrayMesh], but "
+"for occluders.\n"
+"See [OccluderInstance3D]'s documentation for instructions on setting up "
+"occlusion culling."
+msgstr ""
+"[ArrayOccluder3D] 儲存一個任意的 3D 多邊形形狀,可供引擎的遮擋剔除系統使用。這"
+"類似於 [ArrayMesh],但適用於遮擋物。\n"
+"有關設定遮擋剔除的說明,請參閱 [OccluderInstance3D] 的文件。"
+
+msgid "Occlusion culling"
+msgstr "遮擋剔除"
+
+msgid ""
+"Sets [member indices] and [member vertices], while updating the final "
+"occluder only once after both values are set."
+msgstr ""
+"設定 [member indices] 和 [member vertices],同時會在兩個值都被設定後僅更新一次"
+"最終遮擋物。"
+
+msgid ""
+"The occluder's index position. Indices determine which points from the "
+"[member vertices] array should be drawn, and in which order.\n"
+"[b]Note:[/b] The occluder is always updated after setting this value. If "
+"creating occluders procedurally, consider using [method set_arrays] instead "
+"to avoid updating the occluder twice when it's created."
+msgstr ""
+"該遮擋物的索引位置。索引確定 [member vertices] 陣列中的哪些點應被繪製,以及以"
+"哪種順序繪製。\n"
+"[b]注意:[/b]該遮擋物總是在設定這個值後更新。如果程式化建立遮擋物,請考慮改用 "
+"[method set_arrays] 來避免在建立時更新遮擋物兩次。"
+
+msgid ""
+"The occluder's vertex positions in local 3D coordinates.\n"
+"[b]Note:[/b] The occluder is always updated after setting this value. If "
+"creating occluders procedurally, consider using [method set_arrays] instead "
+"to avoid updating the occluder twice when it's created."
+msgstr ""
+"該遮擋物在局部 3D 座標中的頂點位置。\n"
+"[b]注意:[/b]該遮擋物總是在設定這個值後更新。如果程式化建立遮擋物,請考慮改用 "
+"[method set_arrays] 來避免在建立時更新遮擋物兩次。"
+
+msgid "A container that preserves the proportions of its child controls."
+msgstr "保留子控制項長寬比的容器。"
+
+msgid ""
+"A container type that arranges its child controls in a way that preserves "
+"their proportions automatically when the container is resized. Useful when a "
+"container has a dynamic size and the child nodes must adjust their sizes "
+"accordingly without losing their aspect ratios."
+msgstr ""
+"一種容器型別,它以一種在調整容器大小時自動保持其比例的方式排列其子控制項。當容"
+"器具有動態大小,並且子節點必須相應地調整其大小而不丟失其長寬比時很有用。"
+
+msgid "Using Containers"
+msgstr "使用容器"
+
+msgid "Specifies the horizontal relative position of child controls."
+msgstr "指定子控制項的水平相對位置。"
+
+msgid "Specifies the vertical relative position of child controls."
+msgstr "指定子控制項的垂直相對位置。"
+
+msgid ""
+"The aspect ratio to enforce on child controls. This is the width divided by "
+"the height. The ratio depends on the [member stretch_mode]."
+msgstr ""
+"對子控制項強制實施的長寬比。這是寬度除以高度。這個比例取決於 [member "
+"stretch_mode]。"
+
+msgid "The stretch mode used to align child controls."
+msgstr "用來對齊子控制項的拉伸模式。"
+
+msgid ""
+"The height of child controls is automatically adjusted based on the width of "
+"the container."
+msgstr "子控制項的高度會根據容器的寬度自動調整。"
+
+msgid ""
+"The width of child controls is automatically adjusted based on the height of "
+"the container."
+msgstr "子控制項的寬度會根據容器的高度自動調整。"
+
+msgid ""
+"The bounding rectangle of child controls is automatically adjusted to fit "
+"inside the container while keeping the aspect ratio."
+msgstr "子控制項的邊界矩形會自動調整以適應容器,同時保持長寬比。"
+
+msgid ""
+"The width and height of child controls is automatically adjusted to make "
+"their bounding rectangle cover the entire area of the container while keeping "
+"the aspect ratio.\n"
+"When the bounding rectangle of child controls exceed the container's size and "
+"[member Control.clip_contents] is enabled, this allows to show only the "
+"container's area restricted by its own bounding rectangle."
+msgstr ""
+"子控制項的寬度和高度被自動調整,以使其邊框覆蓋容器的整個區域,同時保持長寬"
+"比。\n"
+"當子控制項的邊界矩形超過容器的大小,並且 [member Control.clip_contents] 被啟用"
+"時,這允許僅顯示受其自身邊界矩形限制的容器區域。"
+
+msgid "Aligns child controls with the beginning (left or top) of the container."
+msgstr "將子控制項與容器的開頭對齊(左側或頂部)。"
+
+msgid "Aligns child controls with the center of the container."
+msgstr "使子控制項與容器的中心對齊。"
+
+msgid "Aligns child controls with the end (right or bottom) of the container."
+msgstr "將子控制項與容器的末端對齊(右側或底部)。"
+
+msgid ""
+"An implementation of A* for finding the shortest path between two vertices on "
+"a connected graph in 2D space."
+msgstr "A* 的一種實作,用於搜尋 2D 空間中連通圖上兩個頂點之間的最短路徑。"
+
+msgid ""
+"An implementation of the A* algorithm, used to find the shortest path between "
+"two vertices on a connected graph in 2D space.\n"
+"See [AStar3D] for a more thorough explanation on how to use this class. "
+"[AStar2D] is a wrapper for [AStar3D] that enforces 2D coordinates."
+msgstr ""
+"A* 演算法的一種實作,用於在 2D 空間中的連通圖上找到兩個頂點之間的最短路徑。\n"
+"有關如何使用該類的更詳盡的解釋,請參閱 [AStar3D]。[AStar2D] 是 [AStar3D] 的包"
+"裝器,它強制執行 2D 座標。"
+
+msgid ""
+"Called when computing the cost between two connected points.\n"
+"Note that this function is hidden in the default [AStar2D] class."
+msgstr ""
+"計算兩個連接點之間的成本時呼叫。\n"
+"注意這個函式隱藏在預設的 [AStar2D] 類中。"
+
+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 [AStar2D] class."
+msgstr ""
+"估計一個點和路徑終點之間的成本時呼叫。\n"
+"注意這個函式隱藏在預設的 [AStar2D] 類中。"
+
+msgid ""
+"Adds a new point at the given position with the given identifier. The [param "
+"id] must be 0 or larger, and the [param weight_scale] must be 0.0 or "
+"greater.\n"
+"The [param weight_scale] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [param weight_scale]s to form a "
+"path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with "
+"weight_scale 4 and id 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 0), 4); // Adds the point (1, 0) with "
+"weight_scale 4 and id 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If there already exists a point for the given [param id], its position and "
+"weight scale are updated to the given values."
+msgstr ""
+"在具有給定識別字的給定位置新增一個新點。[param id] 必須為 0 或更大,[param "
+"weight_scale] 必須為 0.0 或更大。\n"
+"在確定從相鄰點到此點的一段路程的總成本時,[param weight_scale] 要乘以 [method "
+"_compute_cost] 的結果。因此,在其他條件相同的情況下,演算法優先選擇 [param "
+"weight_scale] 較低的點來形成路徑。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # 新增點 (1, 0)、權重為 4、ID 為 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 0), 4); // 新增點 (1, 0)、權重為 4、ID 為 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"如果已經存在一個給定 [param id] 的點,則它的位置和權重縮放將被更新為給定值。"
+
+msgid ""
+"Returns whether there is a connection/segment between the given points. If "
+"[param bidirectional] is [code]false[/code], returns whether movement from "
+"[param id] to [param to_id] is possible through this segment."
+msgstr ""
+"返回兩個給定點之間是否存在連接/線段。如果 [param bidirectional] 為 "
+"[code]false[/code],則返回是否可以通過此段從 [param id] 移動到 [param to_id]。"
+
+msgid "Clears all the points and segments."
+msgstr "清除所有點和線段。"
+
+msgid ""
+"Creates a segment between the given points. If [param bidirectional] is "
+"[code]false[/code], only movement from [param id] to [param to_id] is "
+"allowed, not the reverse direction.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 1))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 1));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"在給定的點之間建立一個線段。如果 [param bidirectional] 為 [code]false[/code],"
+"則只允許從 [param id] 到 [param to_id] 的移動,而不允許反向移動。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 1))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(1, 1));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Deletes the segment between the given points. If [param bidirectional] is "
+"[code]false[/code], only movement from [param id] to [param to_id] is "
+"prevented, and a unidirectional segment possibly remains."
+msgstr ""
+"刪除給定點之間的線段。如果 [param bidirectional] 為 [code]false[/code],則僅阻"
+"止從 [param id] 到 [param to_id] 的移動,並且可能會保留一個單向線段。"
+
+msgid "Returns the next available point ID with no point associated to it."
+msgstr "返回下一個沒有關聯點的可用點 ID。"
+
+msgid ""
+"Returns the ID of the closest point to [param to_position], optionally taking "
+"disabled points into account. Returns [code]-1[/code] if there are no points "
+"in the points pool.\n"
+"[b]Note:[/b] If several points are the closest to [param to_position], the "
+"one with the smallest ID will be returned, ensuring a deterministic result."
+msgstr ""
+"返回距離 [param to_position] 最近的點的 ID,可以選擇將禁用的點考慮在內。如果點"
+"池中沒有點,則返回 [code]-1[/code]。\n"
+"[b]注意:[/b]如果有多個點距離 [param to_position] 最近,則返回 ID 最小的那個"
+"點,以保證結果的確定性。"
+
+msgid ""
+"Returns the closest position to [param to_position] that resides inside a "
+"segment between two connected points.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Returns (0, "
+"3)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // "
+"Returns (0, 3)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+"返回最接近 [param to_position] 的位置,該位置位於兩個連接點之間的線段內。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 5))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # 返回 (0, 3)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 5));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // 返回 "
+"(0, 3)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"結果位於從 [code]y = 0[/code] 到 [code]y = 5[/code] 的線段中。它是線段中距給定"
+"點最近的位置。"
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar2D between the given points. The array is ordered from the starting "
+"point to the ending point of the path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+"返回一個陣列,其中包含構成由 AStar2D 在給定點之間找到的路徑的點的 ID。陣列從路"
+"徑的起點到終點進行排序。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1), 1) # 預設權重為 1\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # 返回 [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1), 1); // 預設權重為 1\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // 返回 [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"如果將第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"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1))\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1));\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回一個陣列,其中包含與給定點形成連接的點的 ID。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(0, 0))\n"
+"astar.add_point(2, Vector2(0, 1))\n"
+"astar.add_point(3, Vector2(1, 1))\n"
+"astar.add_point(4, Vector2(2, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # 返回 [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar2D();\n"
+"astar.AddPoint(1, new Vector2(0, 0));\n"
+"astar.AddPoint(2, new Vector2(0, 1));\n"
+"astar.AddPoint(3, new Vector2(1, 1));\n"
+"astar.AddPoint(4, new Vector2(2, 0));\n"
+"\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // 返回 [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Returns the number of points currently in the points pool."
+msgstr "返回點池中目前的點數。"
+
+msgid "Returns an array of all point IDs."
+msgstr "返回所有點 ID 的陣列。"
+
+msgid ""
+"Returns an array with the points that are in the path found by AStar2D "
+"between the given points. The array is ordered from the starting point to the "
+"ending point of the path.\n"
+"[b]Note:[/b] This method is not thread-safe. If called from a [Thread], it "
+"will return an empty [PackedVector2Array] and will print an error message."
+msgstr ""
+"返回一個陣列,其中包含 AStar2D 在給定點之間找到的路徑中的點。陣列從路徑的起點"
+"到終點進行排序。\n"
+"[b]注意:[/b]該方法不是執行緒安全的。如果從 [Thread] 呼叫,它將返回一個空的 "
+"[PackedVector2Array] 並列印一條錯誤消息。"
+
+msgid "Returns the position of the point associated with the given [param id]."
+msgstr "返回與給定 [param id] 相關聯的點的位置。"
+
+msgid ""
+"Returns the weight scale of the point associated with the given [param id]."
+msgstr "返回與給定 [param id] 關聯的點的權重比例。"
+
+msgid "Returns whether a point associated with the given [param id] exists."
+msgstr "返回與給定 [param id] 相關聯的點是否存在。"
+
+msgid ""
+"Returns whether a point is disabled or not for pathfinding. By default, all "
+"points are enabled."
+msgstr "返回用於尋路時點是否被禁用。預設情況下,所有點均被啟用。"
+
+msgid ""
+"Removes the point associated with the given [param id] from the points pool."
+msgstr "從點池中移除與給定 [param id] 關聯的點。"
+
+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 ""
+"Disables or enables the specified point for pathfinding. Useful for making a "
+"temporary obstacle."
+msgstr "用於尋路時禁用或啟用指定的點。適用於製作臨時障礙物。"
+
+msgid "Sets the [param position] for the point with the given [param id]."
+msgstr "為具有給定 [param id] 的點設定位置 [param position]。"
+
+msgid ""
+"Sets the [param weight_scale] for the point with the given [param id]. The "
+"[param weight_scale] is multiplied by the result of [method _compute_cost] "
+"when determining the overall cost of traveling across a segment from a "
+"neighboring point to this point."
+msgstr ""
+"為給定的 [param id] 的點設定 [param weight_scale]。在確定從鄰接點到這個點的一"
+"段路程的總成本時,[param weight_scale] 要乘以 [method _compute_cost] 的結果。"
+
+msgid ""
+"An implementation of A* for finding the shortest path between two vertices on "
+"a connected graph in 3D space."
+msgstr "A* 的一種實作,用於尋找 3D 空間中連接圖中的兩個頂點之間的最短路徑。"
+
+msgid ""
+"Adds a new point at the given position with the given identifier. The [param "
+"id] must be 0 or larger, and the [param weight_scale] must be 0.0 or "
+"greater.\n"
+"The [param weight_scale] is multiplied by the result of [method "
+"_compute_cost] when determining the overall cost of traveling across a "
+"segment from a neighboring point to this point. Thus, all else being equal, "
+"the algorithm prefers points with lower [param weight_scale]s to form a "
+"path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with "
+"weight_scale 4 and id 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Adds the point (1, 0, 0) with "
+"weight_scale 4 and id 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If there already exists a point for the given [param id], its position and "
+"weight scale are updated to the given values."
+msgstr ""
+"在給定的位置新增一個新的點,並使用給定的識別字。[param id] 必須大於等於 0,"
+"[param weight_scale] 必須大於等於 0.0。\n"
+"在確定從鄰點到此點的一段路程的總成本時,[param weight_scale] 要乘以 [method "
+"_compute_cost] 的結果。因此,在其他條件相同的情況下,演算法優先選擇 [param "
+"weight_scale] 較低的點來形成路徑。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # 新增點 (1, 0, 0),其 weight_scale "
+"為 4 且 id 為 1\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 0, 0), 4); // 新增點 (1, 0, 0),其 "
+"weight_scale 為 4 且 id 為 1\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"如果對於給定的 [param id] 已經存在一個點,它的位置和權重將被更新為給定的值。"
+
+msgid ""
+"Returns whether the two given points are directly connected by a segment. If "
+"[param bidirectional] is [code]false[/code], returns whether movement from "
+"[param id] to [param to_id] is possible through this segment."
+msgstr ""
+"返回兩個給定點是否通過線段直接連接。如果 [param bidirectional] 為 "
+"[code]false[/code],則返回是否可以通過該線段從 [param id] 移動到 [param "
+"to_id]。"
+
+msgid ""
+"Creates a segment between the given points. If [param bidirectional] is "
+"[code]false[/code], only movement from [param id] to [param to_id] is "
+"allowed, not the reverse direction.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 1, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"在給定的點之間建立一條線段。如果 [param bidirectional] 為 [code]false[/code],"
+"則只允許從 [param id] 到 [param to_id] 的移動,而不允許反向移動。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(1, 1, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2, false)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the closest position to [param to_position] that resides inside a "
+"segment between two connected points.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # Returns "
+"(0, 3, 0)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // "
+"Returns (0, 3, 0)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The result is in the segment that goes from [code]y = 0[/code] to [code]y = "
+"5[/code]. It's the closest position in the segment to the given point."
+msgstr ""
+"返回位於兩個連接點之間的線段中離 [param to_position] 最近的位置。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 5, 0))\n"
+"astar.connect_points(1, 2)\n"
+"var res = astar.get_closest_position_in_segment(Vector3(3, 3, 0)) # 返回 (0, "
+"3, 0)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 5, 0));\n"
+"astar.ConnectPoints(1, 2);\n"
+"Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // 返"
+"回 (0, 3, 0)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"結果是在從 [code]y = 0[/code] 到 [code]y = 5[/code] 的線段中。它是線段中距離給"
+"定點最近的位置。"
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar3D between the given points. The array is ordered from the starting "
+"point to the ending point of the path.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0), 1) # Default weight is 1\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # Returns [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"If you change the 2nd point's weight to 3, then the result will be [code][1, "
+"4, 3][/code] instead, because now even though the distance is longer, it's "
+"\"easier\" to get through point 4 than through point 2."
+msgstr ""
+"返回一個陣列,其中包含構成 AStar3D 在給定點之間找到的路徑中的點的 ID。陣列從路"
+"徑的起點到終點排序。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0), 1) # 預設權重為 1\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, false)\n"
+"astar.connect_points(2, 3, false)\n"
+"astar.connect_points(4, 3, false)\n"
+"astar.connect_points(1, 4, false)\n"
+"\n"
+"var res = astar.get_id_path(1, 3) # 返回 [1, 2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0), 1); // 預設權重為 1\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, false);\n"
+"astar.ConnectPoints(2, 3, false);\n"
+"astar.ConnectPoints(4, 3, false);\n"
+"astar.ConnectPoints(1, 4, false);\n"
+"int[] res = astar.GetIdPath(1, 3); // 返回 [1, 2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"如果將第2個點的權重更改為 3,則結果將改為 [code][1, 4, 3][/code],因為現在即使"
+"距離更長,但通過第 4 點也比通過第 2 點“更容易”。"
+
+msgid ""
+"Returns an array with the IDs of the points that form the connection with the "
+"given point.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0))\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # Returns [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0));\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回一個陣列,其中包含與給定點形成連接的點的 ID。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar = AStar3D.new()\n"
+"astar.add_point(1, Vector3(0, 0, 0))\n"
+"astar.add_point(2, Vector3(0, 1, 0))\n"
+"astar.add_point(3, Vector3(1, 1, 0))\n"
+"astar.add_point(4, Vector3(2, 0, 0))\n"
+"\n"
+"astar.connect_points(1, 2, true)\n"
+"astar.connect_points(1, 3, true)\n"
+"\n"
+"var neighbors = astar.get_point_connections(1) # 返回 [2, 3]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var astar = new AStar3D();\n"
+"astar.AddPoint(1, new Vector3(0, 0, 0));\n"
+"astar.AddPoint(2, new Vector3(0, 1, 0));\n"
+"astar.AddPoint(3, new Vector3(1, 1, 0));\n"
+"astar.AddPoint(4, new Vector3(2, 0, 0));\n"
+"astar.ConnectPoints(1, 2, true);\n"
+"astar.ConnectPoints(1, 3, true);\n"
+"\n"
+"int[] neighbors = astar.GetPointConnections(1); // 返回 [2, 3]\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns an array with the points that are in the path found by AStar3D "
+"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 ""
+"返回一個陣列,其中包含 AStar3D 在給定點之間找到的路徑中的點。陣列從路徑的起點"
+"到終點進行排序。\n"
+"[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 ""
+"An implementation of A* for finding the shortest path between two points on a "
+"partial 2D grid."
+msgstr "A* 的一種實作,用於尋找疏鬆 2D 網格中兩點之間的最短路徑。"
+
+msgid ""
+"[AStarGrid2D] is a variant of [AStar2D] that is specialized for partial 2D "
+"grids. It is simpler to use because it doesn't require you to manually create "
+"points and connect them together. This class also supports multiple types of "
+"heuristics, modes for diagonal movement, and a jumping mode to speed up "
+"calculations.\n"
+"To use [AStarGrid2D], you only need to set the [member region] 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.region = Rect2i(0, 0, 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.Region = new Rect2I(0, 0, 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]\n"
+"To remove a point from the pathfinding grid, it must be set as \"solid\" with "
+"[method set_point_solid]."
+msgstr ""
+"[AStarGrid2D] 是 [AStar2D] 的變種,針對疏鬆 2D 網格進行了優化。因為不需要手動"
+"建立點並進行連接,所以用起來更加簡單。這個類還支援使用不同的啟發方法、斜向移動"
+"模式、跳躍模式,從而加速運算。\n"
+"要使用 [AStarGrid2D],你只需要設定網格的 [member region],[member cell_size] "
+"可以不設定,最後呼叫 [method update] 方法即可:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var astar_grid = AStarGrid2D.new()\n"
+"astar_grid.region = Rect2i(0, 0, 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))) # 輸出 (0, 0), "
+"(1, 1), (2, 2), (3, 3), (3, 4)\n"
+"print(astar_grid.get_point_path(Vector2i(0, 0), Vector2i(3, 4))) # 輸出 (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))); // 輸出 (0, "
+"0), (1, 1), (2, 2), (3, 3), (3, 4)\n"
+"GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // 輸出 "
+"(0, 0), (16, 16), (32, 32), (48, 48), (48, 64)\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"要從尋路網格中移除某個點,必須使用 [method set_point_solid] 將其設定為“實心”。"
+
+msgid ""
+"Clears the grid and sets the [member region] to [code]Rect2i(0, 0, 0, 0)[/"
+"code]."
+msgstr "清空網格並將 [member region] 設定為 [code]Rect2i(0, 0, 0, 0)[/code]。"
+
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"solid flag.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"禁用或啟用指定的尋路點。用於製造障礙物。預設情況下,啟用所有點。\n"
+"[b]注意:[/b]呼叫該函式後不需要呼叫 [method update]。"
+
+msgid ""
+"Fills the given [param region] on the grid with the specified value for the "
+"weight scale.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"禁用或啟用指定的尋路點。用於製造障礙物。預設情況下,啟用所有點。\n"
+"[b]注意:[/b]呼叫該函式後不需要呼叫 [method update]。"
+
+msgid ""
+"Returns an array with the IDs of the points that form the path found by "
+"AStar2D between the given points. The array is ordered from the starting "
+"point to the ending point of the path."
+msgstr ""
+"返回一個陣列,其中包含形成 AStar2D 在給定點之間找到的路徑的點的 ID。該陣列從路"
+"徑的起點到終點排序。"
+
+msgid ""
+"Indicates that the grid parameters were changed and [method update] needs to "
+"be called."
+msgstr "表示網格參數發生改變,需要呼叫 [method update]。"
+
+msgid ""
+"Returns [code]true[/code] if a point is disabled for pathfinding. By default, "
+"all points are enabled."
+msgstr ""
+"如果尋路時會禁用某個點,則返回 [code]true[/code]。預設情況下,所有點均處於啟用"
+"狀態。"
+
+msgid ""
+"Disables or enables the specified point for pathfinding. Useful for making an "
+"obstacle. By default, all points are enabled.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"禁用或啟用指定的尋路點。用於製造障礙物。預設情況下,啟用所有點。\n"
+"[b]注意:[/b]呼叫該函式後不需要呼叫 [method update]。"
+
+msgid ""
+"Sets the [param weight_scale] for the point with the given [param id]. The "
+"[param weight_scale] is multiplied by the result of [method _compute_cost] "
+"when determining the overall cost of traveling across a segment from a "
+"neighboring point to this point.\n"
+"[b]Note:[/b] Calling [method update] is not needed after the call of this "
+"function."
+msgstr ""
+"為具有給定 [param id] 的點設定 [param weight_scale]。在確定從相鄰點到該點穿越"
+"路段的總成本時,[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 region], "
+"[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.\n"
+"[b]Note:[/b] All point data (solidity and weight scale) will be cleared."
+msgstr ""
+"根據參數更新網格的內部狀態,以準備搜索路徑。如果更改了 [member region]、"
+"[member cell_size] 或 [member offset] 等參數就需要呼叫它。如果是這種情況,則 "
+"[method is_dirty] 將返回 [code]true[/code],需要呼叫此方法。\n"
+"[b]注意:[/b]會清空所有點的資料(堅固以及權重比例)。"
+
+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 region of grid cells available for pathfinding. If changed, [method "
+"update] needs to be called before finding the next path."
+msgstr ""
+"柵格上用來尋路的區域。如果發生變化,需要在搜尋下一條路徑之前呼叫 [method "
+"update]。"
+
+msgid ""
+"The size of the grid (number of cells of size [member cell_size] on each "
+"axis). If changed, [method update] needs to be called before finding the next "
+"path.\n"
+"[i]Deprecated.[/i] Use [member region] instead."
+msgstr ""
+"柵格的大小(每個軸上大小為 [member cell_size] 的儲存格數)。如果發生變化,需要"
+"在搜尋下一條路徑之前呼叫 [method update]。\n"
+"[i]已放棄使用。[/i]請使用 [member region] 替代。"
+
+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]."
+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] 的區域。"
+
+msgid "Stores information about the audio buses."
+msgstr "儲存有關音訊匯流排的資訊。"
+
+msgid ""
+"Stores position, muting, solo, bypass, effects, effect position, volume, and "
+"the connections between buses. See [AudioServer] for usage."
+msgstr ""
+"儲存位置、靜音、獨奏、旁通、效果、效果位置、音量以及匯流排之間的連接。使用方法"
+"見 [AudioServer] 。"
+
+msgid "Audio effect for audio."
+msgstr "用於音訊的音訊效果。"
+
+msgid ""
+"Base resource for audio bus. Applies an audio effect on the bus that the "
+"resource is applied on."
+msgstr "音訊匯流排的基礎資源。在該資源所套用的匯流排上套用音訊效果。"
+
+msgid "Audio Mic Record Demo"
+msgstr "音訊麥克風錄音演示"
+
+msgid "Adds an amplifying audio effect to an audio bus."
+msgstr "向音訊匯流排新增一個放大的音訊效果。"
+
+msgid "Increases or decreases the volume being routed through the audio bus."
+msgstr "增加或減少通過音訊匯流排傳送的音量。"
+
+msgid "Audio buses"
+msgstr "音訊匯流排"
+
+msgid ""
+"Amount of amplification in decibels. Positive values make the sound louder, "
+"negative values make it quieter. Value can range from -80 to 24."
+msgstr ""
+"以分貝為單位的放大量。正值使聲音更響亮,負值使聲音更安靜。數值範圍從 -80 到 "
+"24。"
+
+msgid "Adds a band limit filter to the audio bus."
+msgstr "為音訊匯流排新增一個帶限濾波器。"
+
+msgid ""
+"Limits the frequencies in a range around the [member AudioEffectFilter."
+"cutoff_hz] and allows frequencies outside of this range to pass."
+msgstr ""
+"限制 [member AudioEffectFilter.cutoff_hz] 周圍範圍內的頻率,允許這個範圍外的頻"
+"率通過。"
+
+msgid "Adds a band pass filter to the audio bus."
+msgstr "為音訊匯流排新增一個帶通濾波器。"
+
+msgid ""
+"Attenuates the frequencies inside of a range around the [member "
+"AudioEffectFilter.cutoff_hz] and cuts frequencies outside of this band."
+msgstr ""
+"衰減 [member AudioEffectFilter.cutoff_hz] 周圍範圍內的頻率,並切斷這個頻段之外"
+"的頻率。"
+
+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."
+msgstr ""
+"如果內部環形緩衝區中至少有 [param frames] 個音訊影格可供讀取,則返回 "
+"[code]true[/code]。"
+
+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 "返回內部環形緩衝區的總大小,以影格為單位。"
+
+msgid ""
+"Returns the number of audio frames discarded from the audio bus due to full "
+"buffer."
+msgstr "返回由於緩衝區滿而從音訊匯流排上丟棄的音訊影格的數量。"
+
+msgid ""
+"Returns the number of frames available to read using [method get_buffer]."
+msgstr "返回可使用 [method get_buffer] 讀取的影格數。"
+
+msgid "Returns the number of audio frames inserted from the audio bus."
+msgstr "返回從音訊匯流排插入的音訊影格的數量。"
+
+msgid ""
+"Length of the internal ring buffer, in seconds. Setting the buffer length "
+"will have no effect if already initialized."
+msgstr ""
+"內部環形緩衝區的長度,單位為秒。如果已經初始化,設定緩衝區長度將沒有效果。"
+
+msgid "Adds a chorus audio effect."
+msgstr "新增合唱音訊效果。"
+
+msgid ""
+"Adds a chorus audio effect. The effect applies a filter with voices to "
+"duplicate the audio source and manipulate it through the filter."
+msgstr "新增一個合唱音訊效果。該效果複製音訊源,並套用聲音濾波器進行操作。"
+
+msgid "The effect's raw signal."
+msgstr "效果的原始訊號。"
+
+msgid "The voice's cutoff frequency."
+msgstr "聲音的截止頻率。"
+
+msgid "The voice's signal delay."
+msgstr "聲音的訊號延遲。"
+
+msgid "The voice filter's depth."
+msgstr "聲音篩檢程式的深度。"
+
+msgid "The voice's volume."
+msgstr "聲音的音量。"
+
+msgid "The voice's pan level."
+msgstr "聲音的聲像級別。"
+
+msgid "The voice's filter rate."
+msgstr "聲音篩選比率。"
+
+msgid "The number of voices in the effect."
+msgstr "該效果中的聲音數量。"
+
+msgid "The effect's processed signal."
+msgstr "效果的處理訊號。"
+
+msgid ""
+"Adds a compressor audio effect to an audio bus.\n"
+"Reduces sounds that exceed a certain threshold level, smooths out the "
+"dynamics and increases the overall volume."
+msgstr ""
+"為音訊匯流排新增壓縮音訊效果。\n"
+"減少超過一定閾值水平的聲音,平滑動態,增加整體音量。"
+
+msgid ""
+"Dynamic range compressor reduces the level of the sound when the amplitude "
+"goes over a certain threshold in Decibels. One of the main uses of a "
+"compressor is to increase the dynamic range by clipping as little as possible "
+"(when sound goes over 0dB).\n"
+"Compressor has many uses in the mix:\n"
+"- In the Master bus to compress the whole output (although an "
+"[AudioEffectLimiter] is probably better).\n"
+"- In voice channels to ensure they sound as balanced as possible.\n"
+"- Sidechained. This can reduce the sound level sidechained with another audio "
+"bus for threshold detection. This technique is common in video game mixing to "
+"the level of music and SFX while voices are being heard.\n"
+"- Accentuates transients by using a wider attack, making effects sound more "
+"punchy."
+msgstr ""
+"動態範圍壓縮器在振幅超過一定的閾值(以分貝為單位)時,降低聲音的電平。壓縮器的"
+"主要用途之一是通過盡可能少的削波(當聲音超過 0dB 時)來增加動態範圍。\n"
+"壓縮器在混音中的用途很多。\n"
+"- 在主匯流排上壓縮整個輸出(雖然 [AudioEffectLimiter] 可能更好些)。\n"
+"- 在聲音通道中,以確保它們聽起來盡可能的平衡。\n"
+"- 側鏈。這可以降低與另一條音訊匯流排側鏈的聲音級別,以進行閾值偵測。這種技術在"
+"影片遊戲混音中很常見,以音樂和SFX的級別,從而聲音被聽到。\n"
+"- 通過使用更寬的沖攻來突出瞬態,使效果聽起來更有衝擊力。"
+
+msgid ""
+"Compressor's reaction time when the signal exceeds the threshold, in "
+"microseconds. Value can range from 20 to 2000."
+msgstr ""
+"當訊號超過閾值時,壓縮器的反應時間,以微秒為單位。數值範圍從 20 到 2000。"
+
+msgid "Gain applied to the output signal."
+msgstr "套用於輸出訊號的增益。"
+
+msgid ""
+"Balance between original signal and effect signal. Value can range from 0 "
+"(totally dry) to 1 (totally wet)."
+msgstr ""
+"原始訊號和效果訊號之間的平衡。數值範圍從 0(完全乾燥)到 1(完全浸潤)。"
+
+msgid ""
+"Amount of compression applied to the audio once it passes the threshold "
+"level. The higher the ratio, the more the loud parts of the audio will be "
+"compressed. Value can range from 1 to 48."
+msgstr ""
+"音訊通過閾值級別後,套用於音訊的壓縮量。比率越高,音訊的大聲部分將被壓縮。數值"
+"範圍從 1 到 48。"
+
+msgid ""
+"Compressor's delay time to stop reducing the signal after the signal level "
+"falls below the threshold, in milliseconds. Value can range from 20 to 2000."
+msgstr ""
+"壓縮器在訊號電平低於閾值後,停止降低訊號的延遲時間,以毫秒為單位。取值範圍為 "
+"20 到 2000。"
+
+msgid "Reduce the sound level using another audio bus for threshold detection."
+msgstr "使用另一條音訊匯流排進行閾值偵測,降低聲音級別。"
+
+msgid ""
+"The level above which compression is applied to the audio. Value can range "
+"from -60 to 0."
+msgstr "超過該電平,壓縮將套用於音訊。值的範圍可以從 -60 到 0。"
+
+msgid ""
+"Adds a delay audio effect to an audio bus. Plays input signal back after a "
+"period of time.\n"
+"Two tap delay and feedback options."
+msgstr ""
+"為音訊匯流排新增延遲音訊效果。在一段時間後重播輸入訊號。\n"
+"兩個節拍延遲和回饋選項。"
+
+msgid ""
+"Plays input signal back after a period of time. The delayed signal may be "
+"played back multiple times to create the sound of a repeating, decaying echo. "
+"Delay effects range from a subtle echo effect to a pronounced blending of "
+"previous sounds with new sounds."
+msgstr ""
+"在一段時間後重播輸入訊號。延遲的訊號可以多次重播,以產生重複、衰減的回聲。延遲"
+"效果的範圍是從微弱回聲效果到明顯的以前聲音和新聲音的混合。"
+
+msgid ""
+"Output percent of original sound. At 0, only delayed sounds are output. Value "
+"can range from 0 to 1."
+msgstr "原始聲音的輸出百分比。為 0 時,只輸出延遲的聲音。取值範圍為 0 到 1。"
+
+msgid "If [code]true[/code], feedback is enabled."
+msgstr "如果為 [code]true[/code],則啟用回饋。"
+
+msgid "Feedback delay time in milliseconds."
+msgstr "回饋延遲時間,單位為毫秒。"
+
+msgid "Sound level for feedback."
+msgstr "回饋的聲級。"
+
+msgid ""
+"Low-pass filter for feedback, in Hz. Frequencies below this value are "
+"filtered out of the source signal."
+msgstr "回饋的低通濾波器,單位為 Hz。低於此值的頻率會被源訊號篩選掉。"
+
+msgid "If [code]true[/code], the first tap will be enabled."
+msgstr "如果為 [code]true[/code],將啟用第一拍。"
+
+msgid "First tap delay time in milliseconds."
+msgstr "第一拍延遲時間,單位為毫秒。"
+
+msgid "Sound level for the first tap."
+msgstr "第一拍的聲級。"
+
+msgid ""
+"Pan position for the first tap. Value can range from -1 (fully left) to 1 "
+"(fully right)."
+msgstr "第一拍的聲像位置。取值範圍為 -1(完全向左)到 1(完全向右)。"
+
+msgid "If [code]true[/code], the second tap will be enabled."
+msgstr "如果為 [code]true[/code],將啟用第二拍。"
+
+msgid "Second tap delay time in milliseconds."
+msgstr "第二拍的延遲時間,單位為毫秒。"
+
+msgid "Sound level for the second tap."
+msgstr "第二拍的聲級。"
+
+msgid ""
+"Pan position for the second tap. Value can range from -1 (fully left) to 1 "
+"(fully right)."
+msgstr "第二拍的聲像位置。取值範圍為 -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 之間。"
+
+msgid ""
+"High-pass filter, in Hz. Frequencies higher than this value will not be "
+"affected by the distortion. Value can range from 1 to 20000."
+msgstr ""
+"高通濾波器,單位為 Hz。高於此值的頻率不會受到失真的影響。該值的範圍為 1 至 "
+"20000。"
+
+msgid "Distortion type."
+msgstr "失真型別。"
+
+msgid ""
+"Increases or decreases the volume after the effect, in decibels. Value can "
+"range from -80 to 24."
+msgstr "在效果後增加或減少的音量,單位為分貝。取值範圍從 -80 到 24。"
+
+msgid ""
+"Increases or decreases the volume before the effect, in decibels. Value can "
+"range from -60 to 60."
+msgstr "在效果前增加或減少的音量,單位為分貝。取值範圍從 -60 到 60。"
+
+msgid ""
+"Digital distortion effect which cuts off peaks at the top and bottom of the "
+"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."
+msgstr "波形變形失真主要是電子音樂人為了獲得格外粗糙的聲音而使用的。"
+
+msgid ""
+"Base class for audio equalizers. Gives you control over frequencies.\n"
+"Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] or "
+"[AudioEffectEQ21] don't fit your needs."
+msgstr ""
+"音訊等化器的基底類別。讓你可以控制頻率。\n"
+"如果 [AudioEffectEQ6]、[AudioEffectEQ10] 或 [AudioEffectEQ21] 不符合你的需求,"
+"請用它來建立自訂等化器。"
+
+msgid ""
+"AudioEffectEQ gives you control over frequencies. Use it to compensate for "
+"existing deficiencies in audio. AudioEffectEQs are useful on the Master bus "
+"to completely master a mix and give it more character. They are also useful "
+"when a game is run on a mobile device, to adjust the mix to that kind of "
+"speakers (it can be added but disabled when headphones are plugged)."
+msgstr ""
+"AudioEffectEQ 可用於頻率控制。用它來彌補音訊中不足之處。AudioEffectEQ 在 "
+"Master 匯流排上很有用,可以完全掌控一個混音,並賦予它更多的功能。當遊戲在移動"
+"設備上運作時,它們也很有用,可以根據那種揚聲器來調整混音(可以被新增,但在插入"
+"耳機時禁用)。"
+
+msgid "Returns the number of bands of the equalizer."
+msgstr "返回等化器的頻段數。"
+
+msgid "Returns the band's gain at the specified index, in dB."
+msgstr "返回指定索引處的波段增益,單位為 dB。"
+
+msgid "Sets band's gain at the specified index, in dB."
+msgstr "設定指定索引處的波段增益,單位為 dB。"
+
+msgid ""
+"Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over "
+"frequencies from 31 Hz to 16000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"為音訊匯流排新增 10 段等化器音訊效果。讓你控制 31Hz 到 16000Hz 的頻率。\n"
+"每個頻率可以在 -60/+24 dB 之間進行調變。"
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 31 Hz\n"
+"Band 2: 62 Hz\n"
+"Band 3: 125 Hz\n"
+"Band 4: 250 Hz\n"
+"Band 5: 500 Hz\n"
+"Band 6: 1000 Hz\n"
+"Band 7: 2000 Hz\n"
+"Band 8: 4000 Hz\n"
+"Band 9: 8000 Hz\n"
+"Band 10: 16000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ21]."
+msgstr ""
+"頻段:\n"
+"頻段 1:31 Hz\n"
+"頻段 2:62 Hz\n"
+"頻段 3:125 Hz\n"
+"頻段 4:250 Hz\n"
+"頻段 5:500 Hz\n"
+"頻段 6:1000 Hz\n"
+"頻段 7:2000 Hz\n"
+"頻段 8:4000 Hz\n"
+"頻段 9:8000 Hz\n"
+"頻段 10:16000 Hz\n"
+"另請參閱 [AudioEffectEQ]、[AudioEffectEQ6]、[AudioEffectEQ21]。"
+
+msgid ""
+"Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over "
+"frequencies from 22 Hz to 22000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"向音訊匯流排新增一個 21 頻段等化器音訊效果。可以控制從 22 Hz 到 22000 Hz 的頻"
+"率。\n"
+"每個頻率都可以在 -60/+24 dB 之間進行調變。"
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 22 Hz\n"
+"Band 2: 32 Hz\n"
+"Band 3: 44 Hz\n"
+"Band 4: 63 Hz\n"
+"Band 5: 90 Hz\n"
+"Band 6: 125 Hz\n"
+"Band 7: 175 Hz\n"
+"Band 8: 250 Hz\n"
+"Band 9: 350 Hz\n"
+"Band 10: 500 Hz\n"
+"Band 11: 700 Hz\n"
+"Band 12: 1000 Hz\n"
+"Band 13: 1400 Hz\n"
+"Band 14: 2000 Hz\n"
+"Band 15: 2800 Hz\n"
+"Band 16: 4000 Hz\n"
+"Band 17: 5600 Hz\n"
+"Band 18: 8000 Hz\n"
+"Band 19: 11000 Hz\n"
+"Band 20: 16000 Hz\n"
+"Band 21: 22000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]."
+msgstr ""
+"頻段:\n"
+"頻段 1:22 Hz\n"
+"頻段 2:32 Hz\n"
+"頻段 3:44 Hz\n"
+"頻段 4:63 Hz\n"
+"頻段 5:90 Hz\n"
+"頻段 6:125 Hz\n"
+"頻段 7:175 Hz\n"
+"頻段 8:250 Hz\n"
+"頻段 9:350 Hz\n"
+"頻段 10:500 Hz\n"
+"頻段 11:700 Hz\n"
+"頻段 12:1000 Hz\n"
+"頻段 13:1400 Hz\n"
+"頻段 14:2000 Hz\n"
+"頻段 15:2800 Hz\n"
+"頻段 16:4000 Hz\n"
+"頻段 17:5600 Hz\n"
+"頻段 18:8000 Hz\n"
+"頻段 19:11000 Hz\n"
+"頻段 20:16000 Hz\n"
+"頻段 21:22000 Hz\n"
+"另請參閱 [AudioEffectEQ]、[AudioEffectEQ6]、[AudioEffectEQ10]。"
+
+msgid ""
+"Adds a 6-band equalizer audio effect to an audio bus. Gives you control over "
+"frequencies from 32 Hz to 10000 Hz.\n"
+"Each frequency can be modulated between -60/+24 dB."
+msgstr ""
+"向音訊匯流排新增一個 6 頻段等化器音訊效果。可以控制從 32 Hz 到 10000 Hz 的頻"
+"率。\n"
+"每個頻率都可以在 -60/+24 dB 之間進行調變。"
+
+msgid ""
+"Frequency bands:\n"
+"Band 1: 32 Hz\n"
+"Band 2: 100 Hz\n"
+"Band 3: 320 Hz\n"
+"Band 4: 1000 Hz\n"
+"Band 5: 3200 Hz\n"
+"Band 6: 10000 Hz\n"
+"See also [AudioEffectEQ], [AudioEffectEQ10], [AudioEffectEQ21]."
+msgstr ""
+"頻段:\n"
+"頻段 1:32 Hz\n"
+"頻段 2:100 Hz\n"
+"頻段 3:320 Hz\n"
+"頻段 4:1000 Hz\n"
+"頻段 5:3200 Hz\n"
+"頻段 6:10000 Hz\n"
+"另請參閱 [AudioEffectEQ]、[AudioEffectEQ10]、[AudioEffectEQ21]。"
+
+msgid "Adds a filter to the audio bus."
+msgstr "為音訊匯流排新增一個濾波器。"
+
+msgid "Allows frequencies other than the [member cutoff_hz] to pass."
+msgstr "允許通過 [member cutoff_hz] 以外的頻率。"
+
+msgid "Threshold frequency for the filter, in Hz."
+msgstr "濾波器的閾值頻率,單位為 Hz。"
+
+msgid "Gain amount of the frequencies after the filter."
+msgstr "濾波後頻率的增益量。"
+
+msgid "Amount of boost in the frequency range near the cutoff frequency."
+msgstr "在截斷頻率附近的頻率範圍內的提升量。"
+
+msgid "Adds a high-pass filter to the audio bus."
+msgstr "向音訊匯流排新增一個高通濾波器。"
+
+msgid ""
+"Cuts frequencies lower than the [member AudioEffectFilter.cutoff_hz] and "
+"allows higher frequencies to pass."
+msgstr ""
+"削減比 [member AudioEffectFilter.cutoff_hz] 更低的頻率,允許更高的頻率通過。"
+
+msgid "Adds a high-shelf filter to the audio bus."
+msgstr "向音訊匯流排新增一個高架濾波器。"
+
+msgid "Reduces all frequencies above the [member AudioEffectFilter.cutoff_hz]."
+msgstr "降低所有高於 [member AudioEffectFilter.cutoff_hz] 的頻率。"
+
+msgid "Adds a soft-clip limiter audio effect to an Audio bus."
+msgstr "為音訊匯流排新增一個軟剪輯限制器音訊效果。"
+
+msgid ""
+"A limiter is similar to a compressor, but it's less flexible and designed to "
+"disallow sound going over a given dB threshold. Adding one in the Master bus "
+"is always recommended to reduce the effects of clipping.\n"
+"Soft clipping starts to reduce the peaks a little below the threshold level "
+"and progressively increases its effect as the input level increases such that "
+"the threshold is never exceeded."
+msgstr ""
+"限制器類似於壓縮器,但靈活性較差,並且設計為不允許聲音超過給定的 dB 閾值。始終"
+"建議在主匯流排中新增一個以減少削波的影響。\n"
+"軟削波開始將峰值降低到略低於閾值水平,並隨著輸入水平的增加而逐漸增強其效果,從"
+"而永不超過閾值。"
+
+msgid ""
+"The waveform's maximum allowed value, in decibels. Value can range from -20 "
+"to -0.1."
+msgstr "波形的最大允許值,單位是分貝。數值範圍從 -20 到 -0.1。"
+
+msgid ""
+"Applies a gain to the limited waves, in decibels. Value can range from 0 to 6."
+msgstr "將增益套用於被限制的波,以分貝為單位。取值範圍是 0 到 6。"
+
+msgid ""
+"Threshold from which the limiter begins to be active, in decibels. Value can "
+"range from -30 to 0."
+msgstr "限制器開始生效的閾值,以分貝為單位。值的範圍可以從 -30 到 0。"
+
+msgid "Adds a low-pass filter to the audio bus."
+msgstr "向音訊匯流排新增一個低通濾波器。"
+
+msgid ""
+"Cuts frequencies higher than the [member AudioEffectFilter.cutoff_hz] and "
+"allows lower frequencies to pass."
+msgstr ""
+"削減比 [member AudioEffectFilter.cutoff_hz] 更低的頻率,允許更高的頻率通過。"
+
+msgid "Adds a low-shelf filter to the audio bus."
+msgstr "向音訊匯流排新增一個低架濾波器。"
+
+msgid "Reduces all frequencies below the [member AudioEffectFilter.cutoff_hz]."
+msgstr "降低 [member AudioEffectFilter.cutoff_hz] 以下的所有頻率。"
+
+msgid "Adds a notch filter to the Audio bus."
+msgstr "在音訊匯流排上新增一個陷波濾波器。"
+
+msgid ""
+"Attenuates frequencies in a narrow band around the [member AudioEffectFilter."
+"cutoff_hz] and cuts frequencies outside of this range."
+msgstr ""
+"衰減 [member AudioEffectFilter.cutoff_hz] 周圍窄帶的頻率,並切斷這個範圍以外的"
+"頻率。"
+
+msgid "Adds a panner audio effect to an audio bus. Pans sound left or right."
+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(完全右)。"
+
+msgid ""
+"Adds a phaser audio effect to an audio bus.\n"
+"Combines the original signal with a copy that is slightly out of phase with "
+"the original."
+msgstr ""
+"向音訊匯流排新增一個移相器音訊效果。\n"
+"將原始訊號和與原始訊號稍有相位偏差的副本組合在一起。"
+
+msgid ""
+"Combines phase-shifted signals with the original signal. The movement of the "
+"phase-shifted signals is controlled using a low-frequency oscillator."
+msgstr "將相移訊號與原始訊號相結合。使用低頻振盪器控制相移訊號的移動。"
+
+msgid ""
+"Governs how high the filter frequencies sweep. Low value will primarily "
+"affect bass frequencies. High value can sweep high into the treble. Value can "
+"range from 0.1 to 4."
+msgstr ""
+"控制濾波器頻率掃描的高度。較低的值將主要影響低音頻率。高值可以推高高音。值的範"
+"圍可以從 0.1 到 4。"
+
+msgid "Output percent of modified sound. Value can range from 0.1 to 0.9."
+msgstr "修改後聲音的輸出百分比。數值範圍從 0.1 到 0.9。"
+
+msgid ""
+"Determines the maximum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr "決定受 LFO 調變影響的最大頻率,單位為 Hz。數值範圍為 10-10000。"
+
+msgid ""
+"Determines the minimum frequency affected by the LFO modulations, in Hz. "
+"Value can range from 10 to 10000."
+msgstr "決定受 LFO 調變影響的最小頻率,單位為 Hz。數值範圍為 10-10000。"
+
+msgid ""
+"Adjusts the rate in Hz at which the effect sweeps up and down across the "
+"frequency range."
+msgstr "以 Hz 為單位調整效果在整個頻率範圍內上下掃描的速度。"
+
+msgid ""
+"Adds a pitch-shifting audio effect to an audio bus.\n"
+"Raises or lowers the pitch of original sound."
+msgstr ""
+"為音訊匯流排新增音高變換的音訊效果。\n"
+"升高或降低原始聲音的音高。"
+
+msgid ""
+"Allows modulation of pitch independently of tempo. All frequencies can be "
+"increased/decreased with minimal effect on transients."
+msgstr "允許獨立於速度調變音高。所有頻率都可以增加或減少,而對瞬態的影響最小。"
+
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the effect over time, but have greater latency. The effects of "
+"this higher latency are especially noticeable on sounds that have sudden "
+"amplitude changes."
+msgstr ""
+"[url=https://en.wikipedia.org/wiki/Fast_Fourier_transform]快速傅裡葉變換[/url]"
+"緩衝區的大小。較高的數值可以使效果隨時間平滑,但有較大的延遲。這種較高的延遲對"
+"有突然幅度變化的聲音的影響特別明顯。"
+
+msgid ""
+"The oversampling factor to use. Higher values result in better quality, but "
+"are more demanding on the CPU and may cause audio cracking if the CPU can't "
+"keep up."
+msgstr ""
+"要使用的過取樣係數。更高的值會帶來更好的品質,但對 CPU 的要求更高,如果 CPU 跟"
+"不上,可能會導致音訊破裂。"
+
+msgid ""
+"The pitch scale to use. [code]1.0[/code] is the default pitch and plays "
+"sounds unaltered. [member pitch_scale] can range from [code]0.0[/code] "
+"(infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than "
+"the initial pitch)."
+msgstr ""
+"要使用的音高縮放。[code]1.0[/code] 是預設的音高,聲音會按原樣播放。[member "
+"pitch_scale] 的範圍從 [code]0.0[/code](無限低的音高,聽不見)到 [code]16[/"
+"code](比初始音高要高 16 倍)。"
+
+msgid ""
+"Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, "
+"but least stable over time."
+msgstr ""
+"使用 256 個樣本的緩衝器進行快速傅裡葉變換。最低延遲,但隨著時間的推移最不穩"
+"定。"
+
+msgid ""
+"Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but "
+"less stable over time."
+msgstr ""
+"使用 512 個樣本的緩衝器進行快速傅裡葉變換。低延遲,但隨著時間的推移不太穩定。"
+
+msgid ""
+"Use a buffer of 1024 samples for the Fast Fourier transform. This is a "
+"compromise between latency and stability over time."
+msgstr ""
+"使用 1024 個樣本的緩衝器進行快速傅裡葉變換。這是延遲和隨著時間的推移的穩定性之"
+"間的折衷。"
+
+msgid ""
+"Use a buffer of 2048 samples for the Fast Fourier transform. High latency, "
+"but stable over time."
+msgstr ""
+"使用 2048 個樣本的緩衝器進行快速傅裡葉變換。高延遲,但隨著時間的推移穩定。"
+
+msgid ""
+"Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, "
+"but most stable over time."
+msgstr ""
+"使用 4096 個樣本的緩衝器進行快速傅裡葉變換。延遲最高,但隨著時間的推移最穩定。"
+
+msgid "Represents the size of the [enum FFTSize] enum."
+msgstr "代表 [enum FFTSize] 列舉的大小。"
+
+msgid "Audio effect used for recording the sound from an audio bus."
+msgstr "用於錄製來自音訊匯流排的聲音的音訊效果。"
+
+msgid ""
+"Allows the user to record the sound from an audio bus. This can include all "
+"audio output by Godot when used on the \"Master\" audio bus.\n"
+"Can be used (with an [AudioStreamMicrophone]) to record from a microphone.\n"
+"It sets and gets the format in which the audio file will be recorded (8-bit, "
+"16-bit, or compressed). It checks whether or not the recording is active, and "
+"if it is, records the sound. It then returns the recorded sample."
+msgstr ""
+"允許使用者錄製來自音訊匯流排的聲音。在“Master”音訊匯流排上使用時會包含所有 "
+"Godot 輸出的音訊。\n"
+"可以用於錄製麥克風(使用 [AudioStreamMicrophone])。\n"
+"它設定和獲取記錄音訊檔的格式(8位,16位或壓縮)。它檢查錄音是否處於活動狀態,"
+"如果是,則記錄聲音。然後返回記錄的樣本。"
+
+msgid "Recording with microphone"
+msgstr "使用麥克風錄音"
+
+msgid "Returns the recorded sample."
+msgstr "返回錄音的樣本。"
+
+msgid "Returns whether the recording is active or not."
+msgstr "返回錄音是否處於啟動狀態。"
+
+msgid ""
+"If [code]true[/code], the sound will be recorded. Note that restarting the "
+"recording will remove the previously recorded sample."
+msgstr ""
+"如果為 [code]true[/code],將錄製聲音。請注意,重新開始錄音將移除先前錄音的樣"
+"本。"
+
+msgid ""
+"Specifies the format in which the sample will be recorded. See [enum "
+"AudioStreamWAV.Format] for available formats."
+msgstr ""
+"指定樣本將被記錄的格式。有關可用格式,請參閱 [enum AudioStreamWAV.Format]。"
+
+msgid "Adds a reverberation audio effect to an Audio bus."
+msgstr "向音訊匯流排新增一個混響音訊效果。"
+
+msgid ""
+"Simulates the sound of acoustic environments such as rooms, concert halls, "
+"caverns, or an open spaces."
+msgstr "模擬房間、音樂廳、洞穴或開放空間等聲學環境的聲音。"
+
+msgid ""
+"Defines how reflective the imaginary room's walls are. Value can range from 0 "
+"to 1."
+msgstr "定義虛擬房間牆壁的反射程度。值的範圍是 0 到 1。"
+
+msgid ""
+"Output percent of original sound. At 0, only modified sound is outputted. "
+"Value can range from 0 to 1."
+msgstr "原始聲音的輸出百分比。為 0 時,只輸出修改後的聲音。取值範圍是 0 到 1。"
+
+msgid ""
+"High-pass filter passes signals with a frequency higher than a certain cutoff "
+"frequency and attenuates signals with frequencies lower than the cutoff "
+"frequency. Value can range from 0 to 1."
+msgstr ""
+"高通濾波器通過頻率高於某一截止頻率的訊號,衰減頻率低於截止頻率的訊號。數值範圍"
+"為 0 到 1。"
+
+msgid "Output percent of predelay. Value can range from 0 to 1."
+msgstr "預延遲的輸出百分比。數值範圍為 0 到 1。"
+
+msgid ""
+"Time between the original signal and the early reflections of the reverb "
+"signal, in milliseconds."
+msgstr "原始訊號與混響訊號早期反射之間的時間,以毫秒為單位。"
+
+msgid ""
+"Dimensions of simulated room. Bigger means more echoes. Value can range from "
+"0 to 1."
+msgstr "模擬房間的尺寸。越大表示回聲越多。值的範圍可以從 0 到 1。"
+
+msgid ""
+"Widens or narrows the stereo image of the reverb tail. 1 means fully widens. "
+"Value can range from 0 to 1."
+msgstr "擴大或縮小混響尾音的身歷聲圖像。1 表示完全擴大。值的範圍是 0 到 1。"
+
+msgid ""
+"Output percent of modified sound. At 0, only original sound is outputted. "
+"Value can range from 0 to 1."
+msgstr "修改後聲音的輸出百分比。為 0 時,只輸出原始聲音。取值範圍是 0 到 1。"
+
+msgid "Audio effect that can be used for real-time audio visualizations."
+msgstr "可用於即時音訊視覺化的音訊效果。"
+
+msgid ""
+"This audio effect does not affect sound output, but can be used for real-time "
+"audio visualizations.\n"
+"See also [AudioStreamGenerator] for procedurally generating sounds."
+msgstr ""
+"這種音訊效果不影響聲音輸出,但可以用於即時音訊視覺化。\n"
+"使用程式生成聲音請參閱 [AudioStreamGenerator]。"
+
+msgid "Audio Spectrum Demo"
+msgstr "音頻頻譜演示"
+
+msgid "Godot 3.2 will get new audio features"
+msgstr "Godot 3.2 將獲得新的音訊功能"
+
+msgid ""
+"The length of the buffer to keep (in seconds). Higher values keep data around "
+"for longer, but require more memory."
+msgstr ""
+"要保留的緩衝區長度(以秒為單位)。較高的值將資料保存的時間更長,但需要更多的記"
+"憶體。"
+
+msgid ""
+"The size of the [url=https://en.wikipedia.org/wiki/"
+"Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values "
+"smooth out the spectrum analysis over time, but have greater latency. The "
+"effects of this higher latency are especially noticeable with sudden "
+"amplitude changes."
+msgstr ""
+"[url=https://en.wikipedia.org/wiki/Fast_Fourier_transform]快速傅裡葉變換[/url]"
+"緩衝區的大小。較高的值可以使頻譜分析隨時間的推移而平滑,但有較大的延遲。這種較"
+"高延遲的影響在突然的振幅變化中特別明顯。"
+
+msgid "Use the average value as magnitude."
+msgstr "用平均值作為幅度。"
+
+msgid "Use the maximum value as magnitude."
+msgstr "用最大值作為幅度。"
+
+msgid ""
+"An audio effect that can be used to adjust the intensity of stereo panning."
+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 "覆蓋聽到聲音的位置。"
+
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. Only one "
+"[AudioListener2D] can be current. Using [method make_current] will disable "
+"the previous [AudioListener2D].\n"
+"If there is no active [AudioListener2D] in the current [Viewport], center of "
+"the screen will be used as a hearing point for the audio. [AudioListener2D] "
+"needs to be inside [SceneTree] to function."
+msgstr ""
+"一旦被新增到場景樹並使用 [method make_current] 啟用,此節點將覆蓋聽到聲音的位"
+"置。只有一個 [AudioListener2D] 可以是目前的。使用 [method make_current] 將禁用"
+"之前的 [AudioListener2D]。\n"
+"如果目前 [Viewport] 中沒有活動的 [AudioListener2D],則螢幕中心將用作音訊的聆聽"
+"點。[AudioListener2D] 需要在 [SceneTree] 內才能起作用。"
+
+msgid ""
+"Disables the [AudioListener2D]. If it's not set as current, this method will "
+"have no effect."
+msgstr "禁用 [AudioListener2D]。如果未設定為目前,則此方法無效。"
+
+msgid "Returns [code]true[/code] if this [AudioListener2D] is currently active."
+msgstr "如果該 [AudioListener2D] 目前處於啟動狀態,則返回 [code]true[/code]。"
+
+msgid ""
+"Makes the [AudioListener2D] active, setting it as the hearing point for the "
+"sounds. If there is already another active [AudioListener2D], it will be "
+"disabled.\n"
+"This method will have no effect if the [AudioListener2D] is not added to "
+"[SceneTree]."
+msgstr ""
+"啟動該 [AudioListener2D],將其設定為聲音的聆聽點。如果已經有另一個啟動的 "
+"[AudioListener2D],它將被禁用。\n"
+"如果 [AudioListener2D] 未新增到 [SceneTree],則該方法無效。"
+
+msgid ""
+"Once added to the scene tree and enabled using [method make_current], this "
+"node will override the location sounds are heard from. This can be used to "
+"listen from a location different from the [Camera3D]."
+msgstr ""
+"一旦新增到場景樹並使用 [method make_current] 啟用,該節點將覆蓋聽到聲音的位"
+"置。這可用於從與 [Camera3D] 不同的位置聆聽。"
+
+msgid "Disables the listener to use the current camera's listener instead."
+msgstr "禁用該監聽器,用目前相機的監聽器代替。"
+
+msgid "Returns the listener's global orthonormalized [Transform3D]."
+msgstr "返回該監聽器的全域正交正規化 [Transform3D]。"
+
+msgid ""
+"Returns [code]true[/code] if the listener was made current using [method "
+"make_current], [code]false[/code] otherwise.\n"
+"[b]Note:[/b] There may be more than one AudioListener3D marked as \"current\" "
+"in the scene tree, but only the one that was made current last will be used."
+msgstr ""
+"如果使用 [method make_current] 將監聽器設為目前,則返回 [code]true[/code],否"
+"則返回 [code]false[/code]。\n"
+"[b]注意:[/b]場景樹中標記為“目前”的 AudioListener3D 可能不止一個,但只會使用最"
+"後被設定為目前的那個。"
+
+msgid "Enables the listener. This will override the current camera's listener."
+msgstr "啟用該監聽器。將覆蓋目前相機的監聽器。"
+
+msgid "Server interface for low-level audio access."
+msgstr "低級音訊存取的伺服器介面。"
+
+msgid ""
+"[AudioServer] is a low-level server interface for audio access. It is in "
+"charge of creating sample data (playable audio) as well as its playback via a "
+"voice interface."
+msgstr ""
+"[AudioServer] 是用於音訊存取的底層伺服器介面。它負責建立樣本資料(可播放的音"
+"頻)以及通過語音介面進行播放。"
+
+msgid "Audio Device Changer Demo"
+msgstr "音訊裝置切換演示"
+
+msgid "Adds a bus at [param at_position]."
+msgstr "在 [param at_position] 處新增一條匯流排。"
+
+msgid ""
+"Adds an [AudioEffect] effect to the bus [param bus_idx] at [param "
+"at_position]."
+msgstr ""
+"為在 [param at_position] 處索引為 [param bus_idx] 的匯流排新增 [AudioEffect] "
+"效果。"
+
+msgid "Generates an [AudioBusLayout] using the available buses and effects."
+msgstr "使用可用的匯流排和效果來生成 [AudioBusLayout]。"
+
+msgid "Returns the number of channels of the bus at index [param bus_idx]."
+msgstr "返回索引為 [param bus_idx] 的匯流排的通道數。"
+
+msgid ""
+"Returns the [AudioEffect] at position [param effect_idx] in bus [param "
+"bus_idx]."
+msgstr ""
+"返回索引為 [param bus_idx] 的匯流排中位於 [param effect_idx] 的 "
+"[AudioEffect]。"
+
+msgid "Returns the number of effects on the bus at [param bus_idx]."
+msgstr "返回索引為 [param bus_idx] 的匯流排上的效果數。"
+
+msgid ""
+"Returns the [AudioEffectInstance] assigned to the given bus and effect "
+"indices (and optionally channel)."
+msgstr ""
+"返回分配給給定匯流排和效果索引(以及可選的通道)的[AudioEffectInstance]。"
+
+msgid ""
+"Returns the index of the bus with the name [param bus_name]. Returns "
+"[code]-1[/code] if no bus with the specified name exist."
+msgstr ""
+"返回名稱為 [param bus_name] 的匯流排的索引。如果不存在指定名稱的匯流排,則返"
+"回 [code]-1[/code]。"
+
+msgid "Returns the name of the bus with the index [param bus_idx]."
+msgstr "返回索引為 [param bus_idx] 的匯流排的名稱。"
+
+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] 的匯流排的發送目標匯流排的名稱。"
+
+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] 輸出的取樣速率。"
+
+msgid "Returns the names of all audio output devices detected on the system."
+msgstr "返回系統中偵測到的所有音訊輸出裝置的名稱。"
+
+msgid ""
+"Returns the audio driver's effective output latency. This is based on [member "
+"ProjectSettings.audio/driver/output_latency], but the exact returned value "
+"will differ depending on the operating system and audio driver.\n"
+"[b]Note:[/b] This can be expensive; it is not recommended to call [method "
+"get_output_latency] every frame."
+msgstr ""
+"傳回音訊驅動程式的有效輸出延遲。這是基於[成員ProjectSettings.audio/driver/"
+"output_latency],但確切的傳回值將根據作業系統和音訊驅動程式的不同而有所不"
+"同。\n"
+"[b]注意:[/b]這可能很昂貴;不建議每影格呼叫[method get_output_latency]。"
+
+msgid "Returns the speaker configuration."
+msgstr "返回揚聲器的配置。"
+
+msgid "Returns the relative time since the last mix occurred."
+msgstr "返回自上次混合以來的相對時間。"
+
+msgid "Returns the relative time until the next mix occurs."
+msgstr "返回下一次混合之前的相對時間。"
+
+msgid ""
+"If [code]true[/code], the bus at index [param bus_idx] is bypassing effects."
+msgstr "如果為 [code]true[/code],則索引為 [param bus_idx] 的匯流排會繞過效果。"
+
+msgid ""
+"If [code]true[/code], the effect at index [param effect_idx] on the bus at "
+"index [param bus_idx] is enabled."
+msgstr ""
+"如果為 [code]true[/code],則索引為 [param bus_idx] 的匯流排上啟用了索引為 "
+"[param effect_idx] 的效果。"
+
+msgid "If [code]true[/code], the bus at index [param bus_idx] is muted."
+msgstr "如果為 [code]true[/code],則索引為 [param bus_idx] 的匯流排已靜音。"
+
+msgid "If [code]true[/code], the bus at index [param bus_idx] is in solo mode."
+msgstr ""
+"如果為 [code]true[/code],則索引為 [param bus_idx] 的匯流排處於獨奏模式。"
+
+msgid ""
+"Locks the audio driver's main loop.\n"
+"[b]Note:[/b] Remember to unlock it afterwards."
+msgstr ""
+"鎖定音訊驅動程式的主迴圈。\n"
+"[b]注意:[/b]之後記得解鎖。"
+
+msgid "Moves the bus from index [param index] to index [param to_index]."
+msgstr "將匯流排從索引 [param index] 移動到索引 [param to_index]。"
+
+msgid "Removes the bus at index [param index]."
+msgstr "移除索引 [param index] 處的匯流排。"
+
+msgid ""
+"Removes the effect at index [param effect_idx] from the bus at index [param "
+"bus_idx]."
+msgstr "將索引 [param effect_idx] 的效果從索引 [param bus_idx] 的匯流排上移除。"
+
+msgid "Overwrites the currently used [AudioBusLayout]."
+msgstr "覆蓋目前使用的 [AudioBusLayout]。"
+
+msgid "Sets the name of the bus at index [param bus_idx] to [param name]."
+msgstr "將索引為 [param bus_idx] 的匯流排的名稱設為 [param name]。"
+
+msgid ""
+"Connects the output of the bus at [param bus_idx] to the bus named [param "
+"send]."
+msgstr ""
+"將索引為 [param bus_idx] 處的匯流排輸出連接到名為 [param send] 的匯流排。"
+
+msgid ""
+"Sets the volume of the bus at index [param bus_idx] to [param volume_db]."
+msgstr "將索引為 [param bus_idx] 的匯流排的音量設為 [param volume_db]。"
+
+msgid "Swaps the position of two effects in bus [param bus_idx]."
+msgstr "在索引為 [param bus_idx] 的匯流排中交換兩個效果的位置。"
+
+msgid ""
+"Unlocks the audio driver's main loop. (After locking it, you should always "
+"unlock it.)"
+msgstr "解鎖音訊驅動程式的主迴圈。(鎖定後,你始終需要手動解鎖它。)"
+
+msgid "Number of available audio buses."
+msgstr "可用音訊匯流排的數量。"
+
+msgid ""
+"Name of the current device for audio input (see [method "
+"get_input_device_list]). On systems with multiple audio inputs (such as "
+"analog, USB and HDMI audio), this can be used to select the audio input "
+"device. The value [code]\"Default\"[/code] will record audio on the system-"
+"wide default audio input. If an invalid device name is set, the value will be "
+"reverted back to [code]\"Default\"[/code].\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 ""
+"目前聲音輸入裝置的名稱(見 [method get_input_device_list])。在具有多個音訊輸"
+"入(例如模擬、USB、HDMI 音訊)的系統中,可用於選擇聲音輸入裝置。為 "
+"[code]\"Default\"[/code] 時會從系統預設的音訊輸入錄製音訊。如果設定了無效的設"
+"備名稱,該值會被恢復為 [code]\"Default\"[/code]。\n"
+"[b]注意:[/b][member ProjectSettings.audio/driver/enable_input] 必須為 "
+"[code]true[/code] 音訊輸入才能正常工作。另請參閱該設定項的描述,瞭解許可權和操"
+"作系統隱私設定相關的說明。"
+
+msgid ""
+"Name of the current device for audio output (see [method "
+"get_output_device_list]). On systems with multiple audio outputs (such as "
+"analog, USB and HDMI audio), this can be used to select the audio output "
+"device. The value [code]\"Default\"[/code] will play audio on the system-wide "
+"default audio output. If an invalid device name is set, the value will be "
+"reverted back to [code]\"Default\"[/code]."
+msgstr ""
+"目前音訊輸出裝置的名稱(見 [method get_output_device_list])。在具有多個音訊輸"
+"出(例如模擬、USB、HDMI 音訊)的系統中,可用於選擇音訊輸出裝置。為 "
+"[code]\"Default\"[/code] 時會從系統預設的音訊輸出播放音訊。如果設定了無效的設"
+"備名稱,該值會被恢復為 [code]\"Default\"[/code]。"
+
+msgid ""
+"Scales the rate at which audio is played (i.e. setting it to [code]0.5[/code] "
+"will make the audio be played at half its speed)."
+msgstr ""
+"音訊播放的縮放速率(即將其設定為 [code]0.5[/code] 將使音訊以其一半的速度播"
+"放)。"
+
+msgid "Emitted when an audio bus is added, deleted, or moved."
+msgstr "發生選單項的新增、修改、刪除時發出。"
+
+msgid ""
+"Emitted when the audio bus at [param bus_index] is renamed from [param "
+"old_name] to [param new_name]."
+msgstr "當 [Animation] 的鍵從 [param name] 更改為 [param to_name] 時發出。"
+
+msgid "Two or fewer speakers were detected."
+msgstr "偵測到兩個或更少的揚聲器。"
+
+msgid "A 3.1 channel surround setup was detected."
+msgstr "偵測到 3.1 聲道環繞聲設定。"
+
+msgid "A 5.1 channel surround setup was detected."
+msgstr "偵測到 5.1 聲道環繞聲設定。"
+
+msgid "A 7.1 channel surround setup was detected."
+msgstr "偵測到 7.1 聲道環繞聲設定。"
+
+msgid "Base class for audio streams."
+msgstr "音訊流的基底類別。"
+
+msgid ""
+"Base class for audio streams. Audio streams are used for sound effects and "
+"music playback, and support WAV (via [AudioStreamWAV]) and Ogg (via "
+"[AudioStreamOggVorbis]) file formats."
+msgstr ""
+"音訊流的基底類別。音訊流用於播放音效和音樂,支援 WAV(通過 [AudioStreamWAV])"
+"和 Ogg(通過 [AudioStreamOggVorbis])檔案格式。"
+
+msgid "Audio streams"
+msgstr "音訊流"
+
+msgid "Audio Generator Demo"
+msgstr "音訊生成器演示"
+
+msgid "Returns the length of the audio stream in seconds."
+msgstr "返回音訊流的長度,單位為秒。"
+
+msgid ""
+"Returns an AudioStreamPlayback. Useful for when you want to extend [method "
+"_instantiate_playback] but call [method instantiate_playback] from an "
+"internally held AudioStream subresource. An example of this can be found in "
+"the source files for [code]AudioStreamRandomPitch::instantiate_playback[/"
+"code]."
+msgstr ""
+"返回一個 AudioStreamPlayback。當想要擴充 [method _instantiate_playback],但從"
+"一個內部持有的 AudioStream 子資源呼叫 [method instantiate_playback] 時很有用。"
+"在 [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 "An audio stream with utilities for procedural sound generation."
+msgstr "提供程式式聲音生成工具的音訊流。"
+
+msgid ""
+"The length of the buffer to generate (in seconds). Lower values result in "
+"less latency, but require the script to generate audio data faster, resulting "
+"in increased CPU usage and more risk for audio cracking if the CPU can't keep "
+"up."
+msgstr ""
+"要生成的緩衝區的長度,以秒為單位。較低的值會帶來更少的延遲,但需要腳本更快地生"
+"成音訊資料,從而導致 CPU 使用率增加,如果 CPU 跟不上,則音訊破裂的風險更大。"
+
+msgid ""
+"The sample rate to use (in Hz). Higher values are more demanding for the CPU "
+"to generate, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/"
+"url], there is no quality difference to human hearing when going past 40,000 "
+"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"generating lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+"使用的取樣速率(單位:Hz)。更高的值對 CPU 要求更高,但會帶來更好的品質。\n"
+"在遊戲中,常用的取樣速率有 [code]11025[/code]、[code]16000[/code]、"
+"[code]22050[/code]、[code]32000[/code]、[code]44100[/code]、[code]48000[/"
+"code]。\n"
+"根據[url=https://zh.wikipedia.org/wiki/%E9%87%87%E6%A0%B7%E5%AE%9A%E7%90%86]奈"
+"奎斯特–香農取樣定理[/url],當超過 40000 赫茲時,人類的聽覺沒有品質上的差別(因"
+"為大多數人最多只能聽到 ~20000 赫茲,往往更少)。如果你要生成語音等音高較低的聲"
+"音,則可以使用 [code]32000[/code] 或 [code]22050[/code] 等較低的取樣率,不會降"
+"低品質。"
+
+msgid "Plays back audio generated using [AudioStreamGenerator]."
+msgstr "播放使用 [AudioStreamGenerator] 生成的音訊。"
+
+msgid ""
+"This class is meant to be used with [AudioStreamGenerator] to play back the "
+"generated audio in real-time."
+msgstr "此類旨在與 [AudioStreamGenerator] 一起使用以即時播放生成的音訊。"
+
+msgid ""
+"Returns [code]true[/code] if a buffer of the size [param amount] can be "
+"pushed to the audio sample data buffer without overflowing it, [code]false[/"
+"code] otherwise."
+msgstr ""
+"如果可以將大小為 [param amount] 的緩衝區推送到音訊取樣資料緩衝區而不會使其溢"
+"出,則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid "Clears the audio sample data buffer."
+msgstr "清除音訊樣本資料緩衝區。"
+
+msgid ""
+"Returns the number of frames that can be pushed to the audio sample data "
+"buffer without overflowing it. If the result is [code]0[/code], the buffer is "
+"full."
+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 音訊流驅動程式。"
+
+msgid ""
+"MP3 audio stream driver. See [member data] if you want to load an MP3 file at "
+"run-time."
+msgstr "MP3 音訊流驅動程式。如果要在運作時載入 MP3 檔,請參閱 [member data]。"
+
+msgid ""
+"Contains the audio data in bytes.\n"
+"You can load a file without having to import it beforehand using the code "
+"snippet below. Keep in mind that this snippet loads the whole file into "
+"memory and may not be ideal for huge files (hundreds of megabytes or more).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func load_mp3(path):\n"
+" var file = FileAccess.open(path, FileAccess.READ)\n"
+" var sound = AudioStreamMP3.new()\n"
+" sound.data = file.get_buffer(file.get_length())\n"
+" return sound\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public AudioStreamMP3 LoadMP3(string path)\n"
+"{\n"
+" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n"
+" var sound = new AudioStreamMP3();\n"
+" sound.Data = file.GetBuffer(file.GetLength());\n"
+" return sound;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"包含以位元組為單位的音訊資料。\n"
+"你可以使用下面的程式碼片段,載入檔而無需事先匯入它。請記住,此程式碼片段將整個"
+"文件載入到記憶體中,對於大檔(數百百萬位元組或更多)可能並不理想。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func load_mp3(path):\n"
+" var file = FileAccess.open(path, FileAccess.READ)\n"
+" var sound = AudioStreamMP3.new()\n"
+" sound.data = file.get_buffer(file.get_length())\n"
+" return sound\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public AudioStreamMP3 LoadMP3(string path)\n"
+"{\n"
+" using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);\n"
+" var sound = new AudioStreamMP3();\n"
+" sound.Data = file.GetBuffer(file.GetLength());\n"
+" return sound;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"If [code]true[/code], the stream will automatically loop when it reaches the "
+"end."
+msgstr "如果為 [code]true[/code],當流到達末尾時將自動迴圈。"
+
+msgid "Time in seconds at which the stream starts after being looped."
+msgstr "迴圈時,流開始的時間,單位為秒。"
+
+msgid "A class representing an Ogg Vorbis audio stream."
+msgstr "表示面向相機的正方形網格的類。"
+
+msgid ""
+"The AudioStreamOggVorbis class is a specialized [AudioStream] for handling "
+"Ogg Vorbis file formats. It offers functionality for loading and playing back "
+"Ogg Vorbis files, as well as managing looping and other playback properties. "
+"This class is part of the audio stream system, which also supports WAV files "
+"through the [AudioStreamWAV] class."
+msgstr ""
+"AudioStreamOggVorbis 類別是用於處理 Ogg Vorbis 檔案格式的專用 [AudioStream]。"
+"它提供載入和播放 Ogg Vorbis 檔案的功能,以及管理循環和其他播放屬性。該類別是音"
+"訊串流系統的一部分,它還透過 [AudioStreamWAV] 類別支援 WAV 檔案。"
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer "
+"must contain Ogg Vorbis data."
+msgstr ""
+"從給定緩衝區建立一個新的AudioStreamOggVorbis 實例。緩衝區必須包含Ogg Vorbis 資"
+"料。"
+
+msgid ""
+"Creates a new AudioStreamOggVorbis instance from the given file path. The "
+"file must be in Ogg Vorbis format."
+msgstr ""
+"從給定檔案路徑建立新的 AudioStreamOggVorbis 實例。該檔案必須採用 Ogg Vorbis 格"
+"式。"
+
+msgid ""
+"If [code]true[/code], the audio will play again from the specified [member "
+"loop_offset] once it is done playing. Useful for ambient sounds and "
+"background music."
+msgstr ""
+"如果[code]true[/code],音訊播放完畢後將從指定的[成員loop_offset]再次播放。對於"
+"環境聲音和背景音樂很有用。 ,“ “,““,“錯誤的”,”,”,”,”"
+
+msgid "Contains the raw Ogg data for this stream."
+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] 的播放實例。"
+
+msgid ""
+"Playback instance for [AudioStreamPolyphonic]. After setting the "
+"[code]stream[/code] property of [AudioStreamPlayer], [AudioStreamPlayer2D], "
+"or [AudioStreamPlayer3D], the playback instance can be obtained by calling "
+"[method AudioStreamPlayer.get_stream_playback], [method AudioStreamPlayer2D."
+"get_stream_playback] or [method AudioStreamPlayer3D.get_stream_playback] "
+"methods."
+msgstr ""
+"[AudioStreamPolyphonic] 的播放實例。設定 [AudioStreamPlayer]、"
+"[AudioStreamPlayer2D] 或 [AudioStreamPlayer3D] 的 [code]stream[/code] 屬性後,"
+"可以通過呼叫 [method AudioStreamPlayer.get_stream_playback]、[method "
+"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 a 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."
+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 "播放音訊,不考慮所處位置。"
+
+msgid ""
+"Plays an audio stream non-positionally.\n"
+"To play audio positionally, use [AudioStreamPlayer2D] or "
+"[AudioStreamPlayer3D] instead of [AudioStreamPlayer]."
+msgstr ""
+"以非位置方式支援播放音訊流。\n"
+"要在位置上播放音訊,請使用 [AudioStreamPlayer2D] 或 [AudioStreamPlayer3D] 而不"
+"是 [AudioStreamPlayer]。"
+
+msgid "Returns the position in the [AudioStream] in seconds."
+msgstr "返回 [AudioStream] 中的位置,單位為秒。"
+
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer]."
+msgstr "返回與此 [AudioStreamPlayer] 關聯的 [AudioStreamPlayback] 對象。"
+
+msgid ""
+"Returns whether the [AudioStreamPlayer] can return the [AudioStreamPlayback] "
+"object or not."
+msgstr "返回該 [AudioStreamPlayer] 是否能夠返回 [AudioStreamPlayback] 物件。"
+
+msgid "Plays the audio from the given [param from_position], in seconds."
+msgstr "從給定的位置 [param from_position] 播放音訊,以秒為單位。"
+
+msgid "Sets the position from which audio will be played, in seconds."
+msgstr "設定音訊的播放位置,以秒為單位。"
+
+msgid "Stops the audio."
+msgstr "停止音訊。"
+
+msgid "If [code]true[/code], audio plays when added to scene tree."
+msgstr "如果為 [code]true[/code],在新增到場景樹時將播放音訊。"
+
+msgid ""
+"Bus on which this audio is playing.\n"
+"[b]Note:[/b] When setting this property, keep in mind that no validation is "
+"performed to see if the given name matches an existing bus. This is because "
+"audio bus layouts might be loaded after this property is set. If this given "
+"name can't be resolved at runtime, it will fall back to [code]\"Master\"[/"
+"code]."
+msgstr ""
+"這個音訊在哪個匯流排上播放。\n"
+"[b]注意:[/b]設定這個屬性時,請記住它並不會對給定的名稱是否與現有匯流排配對進"
+"行校驗。這是因為音訊匯流排佈局可以在設定這個屬性後再載入。如果這個給定的名稱在"
+"運行時無法解析,就會退回到 [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."
+msgstr ""
+"如果音訊配置有兩個以上的揚聲器,則設定目標通道。見 [enum MixTarget] 常數。"
+
+msgid ""
+"The pitch and the tempo of the audio, as a multiplier of the audio sample's "
+"sample rate."
+msgstr "音訊的音高和節奏,作為音訊樣本的取樣速率的倍數。"
+
+msgid "If [code]true[/code], audio is playing."
+msgstr "如果為 [code]true[/code],則播放音訊。"
+
+msgid "The [AudioStream] object to be played."
+msgstr "要播放的 [AudioStream] 對象。"
+
+msgid ""
+"If [code]true[/code], the playback is paused. You can resume it by setting "
+"[member stream_paused] to [code]false[/code]."
+msgstr ""
+"如果為 [code]true[/code],則播放會暫停。你可以通過將 [member stream_paused] 設"
+"定為 [code]false[/code]來恢復它。"
+
+msgid "Volume of sound, in dB."
+msgstr "音量,單位為 dB。"
+
+msgid "Emitted when the audio stops playing."
+msgstr "當音訊停止播放時發出。"
+
+msgid "The audio will be played only on the first channel."
+msgstr "音訊將只在第一個聲道中播放。"
+
+msgid "The audio will be played on all surround channels."
+msgstr "音訊將在所有環繞聲聲道中播放。"
+
+msgid ""
+"The audio will be played on the second channel, which is usually the center."
+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] 中的位置。"
+
+msgid ""
+"Returns the [AudioStreamPlayback] object associated with this "
+"[AudioStreamPlayer2D]."
+msgstr "返回與該 [AudioStreamPlayer2D] 相關聯的 [AudioStreamPlayback] 對象。"
+
+msgid ""
+"Queues the audio to play on the next physics frame, from the given position "
+"[param from_position], in seconds."
+msgstr ""
+"將要播放的音訊入隊,將在下一物理影格從給定的位置 [param from_position] 開始播"
+"放,單位為秒。"
+
+msgid ""
+"Determines which [Area2D] 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 ""
+"決定對混響及音訊匯流排效果有影響的 [Area2D] 層。可使用區域對 [AudioStream] 進"
+"行重定向,使其在特定的音訊匯流排中播放。一個例子是可以用來製作“水域”,將水中播"
+"放的聲音重定向至單獨的音訊匯流排,讓聲音聽起來像是在水下播放。"
+
+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])."
+msgstr ""
+"如果為 [code]true[/code],則音訊正在播放,或者已加入播放佇列(見 [method "
+"play])。"
+
+msgid "Base volume before attenuation."
+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 "濾波器對響度的影響程度,以分貝為單位。"
+
+msgid ""
+"Decides if audio should get quieter with distance linearly, quadratically, "
+"logarithmically, or not be affected by distance, effectively disabling "
+"attenuation."
+msgstr ""
+"決定音訊是否應該隨著距離,以線性、二次、對數的方式變得更安靜,或者不受距離影"
+"響,有效地禁用衰減。"
+
+msgid ""
+"If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added "
+"to scene tree."
+msgstr ""
+"如果為 [code]true[/code],則在將 AudioStreamPlayer3D 節點新增到場景樹時播放音"
+"頻。"
+
+msgid ""
+"The bus on which this audio is playing.\n"
+"[b]Note:[/b] When setting this property, keep in mind that no validation is "
+"performed to see if the given name matches an existing bus. This is because "
+"audio bus layouts might be loaded after this property is set. If this given "
+"name can't be resolved at runtime, it will fall back to [code]\"Master\"[/"
+"code]."
+msgstr ""
+"播放音訊的匯流排。\n"
+"[b]注意:[/b]設定這個屬性時,請記住它並不會對給定的名稱是否與現有匯流排配對進"
+"行校驗。這是因為音訊匯流排佈局可以在設定這個屬性後再載入。如果這個給定的名稱在"
+"運行時無法解析,就會退回到 [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 sound level, 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] 資源。"
+
+msgid ""
+"The factor for the attenuation effect. Higher values make the sound audible "
+"over a larger distance."
+msgstr "衰減效果的係數。更高的值使聲音在更遠的距離可以聽到。"
+
+msgid "The base sound level before attenuation, in decibels."
+msgstr "不受衰減影響的基礎聲級,單位為分貝。"
+
+msgid "Attenuation of loudness according to linear distance."
+msgstr "根據距離對響度進行線性衰減。"
+
+msgid "Attenuation of loudness according to squared distance."
+msgstr "根據距離對響度進行平方衰減。"
+
+msgid "Attenuation of loudness according to logarithmic distance."
+msgstr "根據距離對響度進行對數衰減。"
+
+msgid ""
+"No attenuation of loudness according to distance. The sound will still be "
+"heard positionally, unlike an [AudioStreamPlayer]. [constant "
+"ATTENUATION_DISABLED] can be combined with a [member max_distance] value "
+"greater than [code]0.0[/code] to achieve linear attenuation clamped to a "
+"sphere of a defined size."
+msgstr ""
+"不根據距離衰減響度。與 [AudioStreamPlayer] 不同,聲音仍會在位置上被聽到。"
+"[constant ATTENUATION_DISABLED] 可以與大於 [code]0.0[/code] 的 [member "
+"max_distance] 值結合使用,以實作線性衰減,限制在定義的球體大小。"
+
+msgid "Disables doppler tracking."
+msgstr "禁用多普勒追蹤。"
+
+msgid ""
+"Executes doppler tracking during process frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PROCESS])."
+msgstr ""
+"在過程影格期間執行多普勒追蹤(請參閱 [constant Node."
+"NOTIFICATION_INTERNAL_PROCESS])。"
+
+msgid ""
+"Executes doppler tracking during physics frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])."
+msgstr ""
+"在物理影格期間執行多普勒追蹤(請參閱 [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])。"
+
+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 "將流從一個索引移動到另一個索引。"
+
+msgid "Remove the stream at the specified index."
+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 表示沒有變化。"
+
+msgid ""
+"The intensity of random volume variation. A value of 0 means no variation."
+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"
+"[b]Note:[/b] A [code].wav[/code] extension is automatically appended to "
+"[param path] if it is missing."
+msgstr ""
+"將 AudioStreamWAV 作為 WAV 檔保存到 [param path]。無法保存 IMA ADPCM 格式的樣"
+"本。\n"
+"[b]注意:[/b]如果缺少 [code].wav[/code] 副檔名,則會自動將其追加到 [param "
+"path]。"
+
+msgid ""
+"Contains the audio data in bytes.\n"
+"[b]Note:[/b] This property expects signed PCM8 data. To convert unsigned PCM8 "
+"to signed PCM8, subtract 128 from each byte."
+msgstr ""
+"包含以位元組為單位的音訊資料。\n"
+"[b]注意:[/b]此屬性需要有符號的 PCM8 資料。要將無符號的 PCM8 轉換為有符號的 "
+"PCM8,需要從每個位元組中減去 128。"
+
+msgid "Audio format. See [enum Format] constants for values."
+msgstr "音訊格式。取值見 [enum Format] 常數。"
+
+msgid ""
+"The loop start point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file if "
+"present."
+msgstr ""
+"迴圈起始點(相對於樣本開始的樣本數)。如果 WAV 檔中存在此資訊,則將自動導入。"
+
+msgid ""
+"The loop end point (in number of samples, relative to the beginning of the "
+"sample). This information will be imported automatically from the WAV file if "
+"present."
+msgstr ""
+"迴圈結束點(相對於樣本開始的樣本數)。如果 WAV 檔中存在此資訊,則將自動導入。"
+
+msgid ""
+"The loop mode. This information will be imported automatically from the WAV "
+"file if present. See [enum LoopMode] constants for values."
+msgstr ""
+"迴圈模式。如果 WAV 檔中存在此資訊,則將自動匯入。取值請參閱 [enum LoopMode] 常"
+"數。"
+
+msgid ""
+"The sample rate for mixing this audio. Higher values require more storage "
+"space, but result in better quality.\n"
+"In games, common sample rates in use are [code]11025[/code], [code]16000[/"
+"code], [code]22050[/code], [code]32000[/code], [code]44100[/code], and "
+"[code]48000[/code].\n"
+"According to the [url=https://en.wikipedia.org/wiki/"
+"Nyquist%E2%80%93Shannon_sampling_theorem]Nyquist-Shannon sampling theorem[/"
+"url], there is no quality difference to human hearing when going past 40,000 "
+"Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are "
+"using lower-pitched sounds such as voices, lower sample rates such as "
+"[code]32000[/code] or [code]22050[/code] may be usable with no loss in "
+"quality."
+msgstr ""
+"混合這個音訊的取樣速率。更高的數值需要更多的儲存空間,但會帶來更好的品質。\n"
+"在遊戲中,常用的取樣速率有 [code]11025[/code]、[code]16000[/code]、"
+"[code]22050[/code]、[code]32000[/code]、[code]44100[/code]、[code]48000[/"
+"code]。\n"
+"根據[url=https://zh.wikipedia.org/wiki/%E9%87%87%E6%A0%B7%E5%AE%9A%E7%90%86]奈"
+"奎斯特–香農取樣定理[/url],當超過 40000 赫茲時,人類的聽覺沒有品質上的差別(因"
+"為大多數人只能聽到 ~20000 赫茲,往往更少)。如果你要使用語音等音高較低的聲音,"
+"則可以使用 [code]32000[/code] 或 [code]22050[/code] 等較低的取樣速率,不會降低"
+"品質。"
+
+msgid "If [code]true[/code], audio is stereo."
+msgstr "如果為 [code]true[/code],則音訊為身歷聲。"
+
+msgid "8-bit audio codec."
+msgstr "8 位音訊轉碼器。"
+
+msgid "16-bit audio codec."
+msgstr "16 位音訊轉碼器。"
+
+msgid "Audio is compressed using IMA ADPCM."
+msgstr "音訊使用 IMA ADPCM 進行壓縮。"
+
+msgid "Audio does not loop."
+msgstr "音訊不迴圈。"
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing forward only."
+msgstr ""
+"音訊在 [member loop_begin] 和 [member loop_end] 之間迴圈資料,僅向前播放。"
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing back and forth."
+msgstr ""
+"音訊在 [member loop_begin] 和 [member loop_end] 之間迴圈資料,來回播放。"
+
+msgid ""
+"Audio loops the data between [member loop_begin] and [member loop_end], "
+"playing backward only."
+msgstr ""
+"音訊在 [member loop_begin] 和 [member loop_end] 之間迴圈資料,僅向後播放。"
+
+msgid ""
+"A node that copies a region of the screen to a buffer for access in shader "
+"code."
+msgstr "這種節點能夠將螢幕中的某個區域複製到緩衝中,方便從著色器程式碼中存取。"
+
+msgid ""
+"Node for back-buffering the currently-displayed screen. The region defined in "
+"the [BackBufferCopy] node is buffered with the content of the screen it "
+"covers, or the entire screen according to the [member copy_mode]. It can be "
+"accessed in shader scripts using the screen texture (i.e. a uniform sampler "
+"with [code]hint_screen_texture[/code]).\n"
+"[b]Note:[/b] Since this node inherits from [Node2D] (and not [Control]), "
+"anchors and margins won't apply to child [Control]-derived nodes. This can be "
+"problematic when resizing the window. To avoid this, add [Control]-derived "
+"nodes as [i]siblings[/i] to the [BackBufferCopy] node instead of adding them "
+"as children."
+msgstr ""
+"用於後臺緩衝目前顯示幕幕的節點。會根據 [member copy_mode] 對 [BackBufferCopy] "
+"節點中定義的區域所覆蓋的螢幕內容或整個螢幕進行緩衝。可以在著色器腳本中使用屏幕"
+"紋理來存取(即帶有 [code]hint_screen_texture[/code] 的 uniform 取樣器)。\n"
+"[b]注意:[/b]由於該節點繼承自 [Node2D](而非 [Control]),因此錨點和邊距不適用"
+"於子 [Control] 衍生節點。這在調整視窗大小時可能會出現問題。為避免這種情況,請"
+"將 [Control] 衍生節點新增為 [BackBufferCopy] 節點的[i]同級[/i]節點,而不是將它"
+"們新增為子節點。"
+
+msgid "Buffer mode. See [enum CopyMode] constants."
+msgstr "緩衝區模式。見 [enum CopyMode] 常數。"
+
+msgid ""
+"The area covered by the [BackBufferCopy]. Only used if [member copy_mode] is "
+"[constant COPY_MODE_RECT]."
+msgstr ""
+"該 [BackBufferCopy] 所覆蓋的區域。只有當 [member copy_mode] 為 [constant "
+"COPY_MODE_RECT] 時才使用。"
+
+msgid ""
+"Disables the buffering mode. This means the [BackBufferCopy] node will "
+"directly use the portion of screen it covers."
+msgstr ""
+"禁用緩衝模式。這意味著該 [BackBufferCopy] 節點將直接使用它所覆蓋的螢幕部分。"
+
+msgid "[BackBufferCopy] buffers a rectangular region."
+msgstr "[BackBufferCopy] 緩衝一個矩形區域。"
+
+msgid "[BackBufferCopy] buffers the entire screen."
+msgstr "[BackBufferCopy] 緩衝整個螢幕。"
+
+msgid "Abstract base class for GUI buttons."
+msgstr "GUI 按鈕的抽象基底類別。"
+
+msgid ""
+"[BaseButton] is an abstract base class for GUI buttons. It doesn't display "
+"anything by itself."
+msgstr "[BaseButton] 是 GUI 按鈕的抽象基底類別。本身不顯示任何東西。"
+
+msgid ""
+"Called when the button is pressed. If you need to know the button's pressed "
+"state (and [member toggle_mode] is active), use [method _toggled] instead."
+msgstr ""
+"當按鈕被按下時呼叫。如果你需要知道按鈕被按下的狀態(並且 [member toggle_mode] "
+"is active]是活動狀態),請使用[method _toggled]代替。"
+
+msgid ""
+"Called when the button is toggled (only if [member toggle_mode] is active)."
+msgstr "當按鈕被切換時呼叫(僅當 [member toggle_mode] 處於活動狀態時)。"
+
+msgid ""
+"Returns the visual state used to draw the button. This is useful mainly when "
+"implementing your own draw code by either overriding _draw() or connecting to "
+"\"draw\" signal. The visual state of the button is defined by the [enum "
+"DrawMode] enum."
+msgstr ""
+"返回用於繪製按鈕的視覺狀態。主要可以通過覆蓋 _draw() 或連接到“draw”訊號來實作"
+"你自己的繪製程式碼。按鈕的視覺狀態由 [enum DrawMode] 列舉定義。"
+
+msgid ""
+"Returns [code]true[/code] if the mouse has entered the button and has not "
+"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.\n"
+"[b]Note:[/b] The button will be configured as a radio button if a "
+"[ButtonGroup] is assigned to it."
+msgstr ""
+"與按鈕關聯的 [ButtonGroup]。不要與節點組混淆。\n"
+"[b]注意:[/b]如果按鈕被分配了 [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."
+msgstr "如果為 [code]true[/code],則該按鈕處於禁用狀態,無法點擊或切換。"
+
+msgid ""
+"If [code]true[/code], the button stays pressed when moving the cursor outside "
+"the button while pressing it.\n"
+"[b]Note:[/b] This property only affects the button's visual appearance. "
+"Signals will be emitted at the same moment regardless of this property's "
+"value."
+msgstr ""
+"如果為 [code]true[/code],當按下按鈕時將游標移到按鈕外時,按鈕會保持按下狀"
+"態。\n"
+"[b]注意:[/b]該屬性只影響按鈕的視覺表現。無論該屬性的值是多少,訊號都會在同一"
+"時刻發出。"
+
+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."
+msgstr "如果為 [code]true[/code],按鈕將在工具提示中新增其快捷方式的資訊。"
+
+msgid ""
+"If [code]true[/code], the button is in toggle mode. Makes the button flip "
+"state between pressed and unpressed each time its area is clicked."
+msgstr ""
+"如果為 [code]true[/code],則按鈕處於切換模式。使按鈕在每次點擊其區域時,在按下"
+"和未按下之間轉換狀態。"
+
+msgid "Emitted when the button starts being held down."
+msgstr "當按鈕開始被按下時發出。"
+
+msgid "Emitted when the button stops being held down."
+msgstr "當按鈕停止按下時發出。"
+
+msgid ""
+"Emitted when the button is toggled or pressed. This is on [signal "
+"button_down] if [member action_mode] is [constant ACTION_MODE_BUTTON_PRESS] "
+"and on [signal button_up] otherwise.\n"
+"If you need to know the button's pressed state (and [member toggle_mode] is "
+"active), use [signal toggled] instead."
+msgstr ""
+"當按鈕被切換或按下時發出。如果 [member action_mode] 為 [constant "
+"ACTION_MODE_BUTTON_PRESS],則在 [signal button_down] 時發出,否則當 [signal "
+"button_up] 時發出。\n"
+"如果需要知道按鈕的按下狀態(並且 [member toggle_mode] 處於活動狀態),請改用 "
+"[signal toggled]。"
+
+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 toggled_on] argument."
+msgstr ""
+"當按鈕剛剛在按下和正常狀態之間切換時發出(僅當 [member toggle_mode] 處於活動狀"
+"態時)。新狀態包含在 [param button_pressed] 參數中。"
+
+msgid ""
+"The normal state (i.e. not pressed, not hovered, not toggled and enabled) of "
+"buttons."
+msgstr "按鈕的正常狀態(即未按下、未懸停、未切換和啟用)。"
+
+msgid "The state of buttons are pressed."
+msgstr "按鈕被按下的狀態。"
+
+msgid "The state of buttons are hovered."
+msgstr "按鈕的狀態為懸停。"
+
+msgid "The state of buttons are disabled."
+msgstr "按鈕的狀態為禁用。"
+
+msgid "The state of buttons are both hovered and pressed."
+msgstr "按鈕的狀態既是懸停的,也是按下的。"
+
+msgid "Require just a press to consider the button clicked."
+msgstr "只需要按一下就可以認為按鈕被點擊了。"
+
+msgid ""
+"Require a press and a subsequent release before considering the button "
+"clicked."
+msgstr "要求按下後再釋放,才算點擊了按鈕。"
+
+msgid "Abstract base class for defining the 3D rendering properties of meshes."
+msgstr "用於為 UI 元素定義風格化方框的抽象基底類別。"
+
+msgid ""
+"This class serves as a default material with a wide variety of rendering "
+"features and properties without the need to write shader code. See the "
+"tutorial below for details."
+msgstr ""
+"這提供了一個預設的材質,具有多種渲染功能和屬性,無需編寫著色器程式碼。詳情請看"
+"下面的教學。"
+
+msgid "Standard Material 3D and ORM Material 3D"
+msgstr "標準 3D 材質與 ORM 3D 材質"
+
+msgid "Returns [code]true[/code], if the specified [enum Feature] is enabled."
+msgstr "如果指定的 [enum Feature] 被啟用,返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code], if the specified flag is enabled. See [enum Flags] "
+"enumerator for options."
+msgstr ""
+"如果指定的旗標被啟用,返回 [code]true[/code]。選項見 [enum Flags] 列舉值。"
+
+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 time with "
+"this function, the flag enumerators cannot be bit-masked together to enable "
+"or disable multiple flags at once. Flags can also be enabled by setting the "
+"corresponding member to [code]true[/code]. See [enum Flags] enumerator for "
+"options."
+msgstr ""
+"如果為 [code]true[/code],則啟用指定的旗標。旗標是可以打開和關閉的可選行為。使"
+"用該函式一次只能啟用一個旗標,不能將旗標列舉值像位元遮罩一樣進行合併,一次啟用"
+"或禁用多個旗標。也可以通過將相應成員設定為 [code]true[/code] 來啟用旗標。選項"
+"見 [enum Flags] 列舉值。"
+
+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 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 "
+"vertex_color_is_srgb].\n"
+"This should only be enabled when needed (typically when using a "
+"[ViewportTexture] as [member albedo_texture]). If [member "
+"albedo_texture_force_srgb] is [code]true[/code] when it shouldn't be, the "
+"texture will appear to be too dark. If [member albedo_texture_force_srgb] is "
+"[code]false[/code] when it shouldn't be, the texture will appear to be too "
+"bright."
+msgstr ""
+"如果為 [code]true[/code],則強制將 [member albedo_texture] 從 sRGB 顏色空間轉"
+"換為線性顏色空間。另見 [member vertex_color_is_srgb]。\n"
+"該屬性應該只在需要時啟用(通常在使用 [ViewportTexture] 作為 [member "
+"albedo_texture] 時)。如果 [member albedo_texture_force_srgb] 在不應該的情況下"
+"為 [code]true[/code],則紋理會顯得太暗。如果 [member "
+"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]。"
+
+msgid ""
+"The hashing scale for Alpha Hash. Recommended values between [code]0[/code] "
+"and [code]2[/code]."
+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 "
+"texture contains an alpha channel."
+msgstr ""
+"各向異性效果的強度。如果 [member anisotropy_flowmap] 是一張帶有 Alpha 通道的紋"
+"理,那麼這個值會與其 Alpha 通道相乘。"
+
+msgid ""
+"If [code]true[/code], anisotropy is enabled. Anisotropy changes the shape of "
+"the specular blob and aligns it to tangent space. This is useful for brushed "
+"aluminium and hair reflections.\n"
+"[b]Note:[/b] Mesh tangents are needed for anisotropy to work. If the mesh "
+"does not contain tangents, the anisotropy effect will appear broken.\n"
+"[b]Note:[/b] Material anisotropy should not to be confused with anisotropic "
+"texture filtering, which can be enabled by setting [member texture_filter] to "
+"[constant TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC]."
+msgstr ""
+"如果為 [code]true[/code],則啟用各向異性。各向異性會改變鏡面反射斑點的形狀並將"
+"其與切線空間對齊。可用於拉絲鋁材和毛髮反射。\n"
+"[b]注意:[/b]各向異性需要網格切線才能正常工作。如果網格中不包含切線,則各向異"
+"性效果會顯得破碎。\n"
+"[b]注意:[/b]材質的各向異性不應與各向異性紋理篩選相混淆,後者可以通過將 "
+"[member texture_filter] 設定為 [constant "
+"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC] 來啟用。"
+
+msgid ""
+"Texture that offsets the tangent map for anisotropy calculations and "
+"optionally controls the anisotropy effect (if an alpha channel is present). "
+"The flowmap texture is expected to be a derivative map, with the red channel "
+"representing distortion on the X axis and green channel representing "
+"distortion on the Y axis. Values below 0.5 will result in negative "
+"distortion, whereas values above 0.5 will result in positive distortion.\n"
+"If present, the texture's alpha channel will be used to multiply the strength "
+"of the [member anisotropy] effect. Fully opaque pixels will keep the "
+"anisotropy effect's original strength while fully transparent pixels will "
+"disable the anisotropy effect entirely. The flowmap texture's blue channel is "
+"ignored."
+msgstr ""
+"用於對切線圖進行偏移的紋理,用於各向異性的計算,(如果存在 Alpha 通道)還可以"
+"控制各向異性的效果。Flowmap 方向圖紋理應該是一張衍生圖,紅色通道表示 X 軸上的"
+"變形、綠色通道表示 Y 軸上的變形。小於 0.5 的值會朝負方向進行變形,而大於 0.5 "
+"的值則朝正方向變形。\n"
+"紋理的 Alpha 通道如果存在,則會用於與 [member anisotropy] 效果的強度相乘。完全"
+"不透明的圖元會保持原始強度,而完全透明的圖元則會完全禁用各向異性效果。方向圖紋"
+"理的藍色通道會被忽略。"
+
+msgid ""
+"If [code]true[/code], ambient occlusion is enabled. Ambient occlusion darkens "
+"areas based on the [member ao_texture]."
+msgstr ""
+"如果為 [code]true[/code],啟用環境遮擋。環境遮擋根據 [member ao_texture] 使區"
+"域變暗。"
+
+msgid ""
+"Amount that ambient occlusion affects lighting from lights. If [code]0[/"
+"code], ambient occlusion only affects ambient light. If [code]1[/code], "
+"ambient occlusion affects lights just as much as it affects ambient light. "
+"This can be used to impact the strength of the ambient occlusion effect, but "
+"typically looks unrealistic."
+msgstr ""
+"環境遮擋對燈光照明的影響程度。如果 [code]0[/code],環境遮擋只影響環境光。如果 "
+"[code]1[/code],環境遮擋對燈光的影響和對環境光的影響一樣大。這可以用來影響環境"
+"遮擋效果的強度,但通常看起來不真實。"
+
+msgid ""
+"If [code]true[/code], use [code]UV2[/code] coordinates to look up from the "
+"[member ao_texture]."
+msgstr ""
+"如果為 [code]true[/code],請使用 [code]UV2[/code] 座標從 [member ao_texture] "
+"中搜尋。"
+
+msgid ""
+"Texture that defines the amount of ambient occlusion for a given point on the "
+"object."
+msgstr "定義物體上給定點的環境遮擋量的紋理。"
+
+msgid ""
+"Specifies the channel of the [member ao_texture] in which the ambient "
+"occlusion information is stored. This is useful when you store the "
+"information for multiple effects in a single texture. For example if you "
+"stored metallic in the red channel, roughness in the blue, and ambient "
+"occlusion in the green you could reduce the number of textures you use."
+msgstr ""
+"指定 [member ao_texture] 的通道,其中儲存環境遮擋資訊。可以用來在一個紋理中存"
+"儲多個效果的資訊。例如,如果你將金屬效果儲存在 R 通道中,將粗糙度儲存在 B 通道"
+"中,將環境遮擋儲存在 G 通道中,就可以減少你使用的紋理數量。"
+
+msgid ""
+"The color used by the backlight effect. Represents the light passing through "
+"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 "
+"vector of the camera is not horizontal when the screen is attached to your "
+"head instead of on the table. See [url=https://github.com/godotengine/godot/"
+"issues/41567]GitHub issue #41567[/url] for details."
+msgstr ""
+"控制該物件如何面對相機。見 [enum BillboardMode]。\n"
+"[b]注意:[/b]公告板模式不適合 VR,因為當螢幕貼在你的頭上而不是在桌子上時,相機"
+"的左右向量不是水平的。詳見 [url=https://github.com/godotengine/godot/"
+"issues/41567]GitHub issue #41567[/url]。"
+
+msgid ""
+"The material's blend mode.\n"
+"[b]Note:[/b] Values other than [code]Mix[/code] force the object into the "
+"transparent pipeline. See [enum BlendMode]."
+msgstr ""
+"材質的混合模式。\n"
+"[b]注意:[/b]除 [code]Mix[/code] 以外的值會強制物件進入透明管道。見 [enum "
+"BlendMode]。"
+
+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] 看起來與禁用清漆效果相同。"
+
+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 "
+"of the clearcoat. Strength is specified in the red channel while glossiness "
+"is specified in the green channel."
+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]."
+msgstr ""
+"確定深度渲染發生的時間。參見 [enum DepthDrawMode]。另見 [member "
+"transparency]。"
+
+msgid ""
+"Texture that specifies the color of the detail overlay. [member "
+"detail_albedo]'s alpha channel is used as a mask, even when the material is "
+"opaque. To use a dedicated texture as a mask, see [member detail_mask].\n"
+"[b]Note:[/b] [member detail_albedo] is [i]not[/i] modulated by [member "
+"albedo_color]."
+msgstr ""
+"用於指定細節覆蓋層顏色的紋理。[member detail_albedo] 的 alpha 通道會被用作遮"
+"罩,即使該材質不透明。要將專用紋理用作遮罩,請參閱 [member detail_mask]。\n"
+"[b]注意:[/b][member detail_albedo] [i]不會[/i]被 [member albedo_color] 調制。"
+
+msgid ""
+"Specifies how the [member detail_albedo] should blend with the current "
+"[code]ALBEDO[/code]. See [enum BlendMode] for options."
+msgstr ""
+"指定 [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 blue "
+"and alpha channels are ignored. The normal read from [member detail_normal] "
+"is oriented around the surface normal provided by the [Mesh].\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a "
+"comparison of normal map coordinates expected by popular engines."
+msgstr ""
+"用於指定細節覆蓋層逐圖元法線的紋理。[member detail_normal] 紋理只使用紅色和綠"
+"色通道;會忽略藍色和 alpha 通道。從 [member detail_normal] 讀取的法線是圍繞 "
+"[Mesh] 所提供的表面法線的進行朝向的。\n"
+"[b]注意:[/b]Godot 期望法線貼圖使用 X+、Y+、Z+ 坐標系。比較流行的引擎所期望的"
+"法線貼圖坐標系見[url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]這個頁面[/url]。"
+
+msgid ""
+"Specifies whether to use [code]UV[/code] or [code]UV2[/code] for the detail "
+"layer. See [enum DetailUV] for options."
+msgstr ""
+"指定細節層是使用 [code]UV[/code] 還是 [code]UV2[/code]。選項請參閱 [enum "
+"DetailUV]。"
+
+msgid "The algorithm used for diffuse light scattering. See [enum DiffuseMode]."
+msgstr "用於漫反射光散射的演算法。見 [enum DiffuseMode]。"
+
+msgid "If [code]true[/code], the object receives no ambient light."
+msgstr "如果為 [code]true[/code],則物件不接收環境光。"
+
+msgid ""
+"If [code]true[/code], the object will not be affected by fog (neither "
+"volumetric nor depth fog). This is useful for unshaded or transparent "
+"materials (e.g. particles), which without this setting will be affected even "
+"if fully transparent."
+msgstr ""
+"如果[code]true[/code],物件將不會受到霧的影響(無論是體積霧或深度霧)。這對於"
+"無陰影或透明材質(例如粒子)很有用,如果沒有此設定,即使完全透明也會受到影響。"
+
+msgid ""
+"If [code]true[/code], the object receives no shadow that would otherwise be "
+"cast onto it."
+msgstr "如果為 [code]true[/code],則物件不會收到投射到其上的陰影。"
+
+msgid ""
+"Specifies which type of fade to use. Can be any of the [enum "
+"DistanceFadeMode]s."
+msgstr "指定要使用的淡入淡出型別。可以是任何一個 [enum DistanceFadeMode]。"
+
+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] 中讀取。"
+
+msgid ""
+"Sets how [member emission] interacts with [member emission_texture]. Can "
+"either add or multiply. See [enum EmissionOperator] for options."
+msgstr ""
+"設定 [member emission] 與 [member emission_texture] 的對話模式。可以是加法或乘"
+"法。可選值見 [enum EmissionOperator] 。"
+
+msgid "Texture that specifies how much surface emits light at a given point."
+msgstr "紋理,指定某點的表面發光的程度。"
+
+msgid ""
+"If [code]true[/code], the object is rendered at the same size regardless of "
+"distance."
+msgstr "如果為 [code]true[/code],則無論距離遠近,物件都以相同的大小渲染。"
+
+msgid ""
+"If [code]true[/code], enables the vertex grow setting. This can be used to "
+"create mesh-based outlines using a second material pass and its [member "
+"cull_mode] set to [constant CULL_FRONT]. See also [member grow_amount].\n"
+"[b]Note:[/b] Vertex growth cannot create new vertices, which means that "
+"visible gaps may occur in sharp corners. This can be alleviated by designing "
+"the mesh to use smooth normals exclusively using [url=https://wiki.polycount."
+"com/wiki/Face_weighted_normals]face weighted normals[/url] in the 3D "
+"authoring software. In this case, grow will be able to join every outline "
+"together, just like in the original mesh."
+msgstr ""
+"如果為 [code]true[/code],則啟用頂點增長設定。可用於建立基於網格的輪廓,請在第"
+"二個材質階段中使用,並將 [member cull_mode] 設定為 [constant CULL_FRONT]。另"
+"見 [member grow_amount]。\n"
+"[b]注意:[/b]頂點增長無法新建頂點,這意味著銳角可能會造成可見的缺口。緩解方法"
+"是在設計網格時就只用平滑的法線,在 3D 創作軟體中使用 [url=https://wiki."
+"polycount.com/wiki/Face_weighted_normals]面加權法線[/url]。這樣增長就能夠將所"
+"有輪廓連接到一起,和原始網格一致。"
+
+msgid ""
+"Grows object vertices in the direction of their normals. Only effective if "
+"[member grow] is [code]true[/code]."
+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 reflection. "
+"With non-metals, the reflection appears on top of the albedo color. Metals "
+"use their albedo as a multiplier to the specular reflection and set the "
+"diffuse color to black resulting in a tinted reflection. Materials work "
+"better when fully metal or fully non-metal, values between [code]0[/code] and "
+"[code]1[/code] should only be used for blending between metal and non-metal "
+"sections. To alter the amount of reflection use [member roughness]."
+msgstr ""
+"高值使材質看起來更像金屬。非金屬使用其反射率作為漫射色,並在鏡面反射上新增漫"
+"射。對於非金屬,反射出現在反照率顏色之上。金屬使用其反射率作為鏡面反射的倍數,"
+"並將漫射色設定為黑色,從而產生有色反射。材質在全金屬或全非金屬時效果更好,介"
+"於 [code]0[/code] 和 [code]1[/code] 之間的值只能用於金屬和非金屬部分之間的混"
+"合。要改變反射量,請使用[member roughness]。"
+
+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]."
+msgstr "用於指定物件的金屬質感。這個值會與 [member metallic] 相乘。"
+
+msgid ""
+"Specifies the channel of the [member metallic_texture] in which the metallic "
+"information is stored. This is useful when you store the information for "
+"multiple effects in a single texture. For example if you stored metallic in "
+"the red channel, roughness in the blue, and ambient occlusion in the green "
+"you could reduce the number of textures you use."
+msgstr ""
+"指定儲存金屬度資訊的 [member metallic_texture] 的通道。當將多個效果的資訊儲存"
+"在單個紋理中時,這很有用。例如,如果在紅色通道中儲存金屬度,在藍色通道中儲存粗"
+"糙度,在綠色通道中儲存環境遮擋,則可以減少使用的紋理數量。"
+
+msgid "The width of the shape outline."
+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."
+msgstr "如果為 [code]true[/code],深度測試被禁用,物件將按渲染順序繪製。"
+
+msgid ""
+"If [code]true[/code], normal mapping is enabled. This has a slight "
+"performance cost, especially on mobile GPUs."
+msgstr ""
+"如果為 [code]true[/code],則啟用法線對應。略微影響性能,尤其在移動 GPU 上。"
+
+msgid "The strength of the normal map's effect."
+msgstr "法線貼圖的效果強度。"
+
+msgid ""
+"Texture used to specify the normal at a given pixel. The [member "
+"normal_texture] only uses the red and green channels; the blue and alpha "
+"channels are ignored. The normal read from [member normal_texture] is "
+"oriented around the surface normal provided by the [Mesh].\n"
+"[b]Note:[/b] The mesh must have both normals and tangents defined in its "
+"vertex data. Otherwise, the normal map won't render correctly and will only "
+"appear to darken the whole surface. If creating geometry with [SurfaceTool], "
+"you can use [method SurfaceTool.generate_normals] and [method SurfaceTool."
+"generate_tangents] to automatically generate normals and tangents "
+"respectively.\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a "
+"comparison of normal map coordinates expected by popular engines.\n"
+"[b]Note:[/b] If [member detail_enabled] is [code]true[/code], the [member "
+"detail_albedo] texture is drawn [i]below[/i] the [member normal_texture]. To "
+"display a normal map [i]above[/i] the [member detail_albedo] texture, use "
+"[member detail_normal] instead."
+msgstr ""
+"用於指定給定圖元的法線的紋理。[member normal_texture] 只使用紅色和綠色通道;會"
+"忽略藍色和 alpha 通道。從 [member normal_texture] 讀取的法線是圍繞 [Mesh] 所提"
+"供的表面法線的進行朝向的。\n"
+"[b]注意:[/b]該網格必須在其頂點資料中同時定義法線和切線。否則法線貼圖將無法正"
+"確渲染,只會使整個表面變暗。如果使用 [SurfaceTool] 建立幾何體,可以使用 "
+"[method SurfaceTool.generate_normals] 和 [method SurfaceTool."
+"generate_tangents] 分別自動生成法線和切線。\n"
+"[b]注意:[/b]Godot 期望法線貼圖使用 X+、Y+、Z+ 坐標系。比較流行的引擎所期望的"
+"法線貼圖坐標系見[url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]這個頁面[/url]。\n"
+"[b]注意:[/b]如果 [member detail_enabled] 為 [code]true[/code],則 [member "
+"detail_albedo] 紋理將在 [member normal_texture] [i]下方[/i]繪製。要在 [member "
+"detail_albedo] 紋理[i]之上[/i]顯示法線貼圖,請改用 [member detail_normal]。"
+
+msgid ""
+"The 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]."
+msgstr ""
+"粒子精靈表中的水平影格數。僅在使用 [constant BILLBOARD_PARTICLES] 時啟用。見 "
+"[member billboard_mode]。"
+
+msgid ""
+"If [code]true[/code], particle animations are looped. Only enabled when using "
+"[constant BILLBOARD_PARTICLES]. See [member billboard_mode]."
+msgstr ""
+"如果為 [code]true[/code],則迴圈粒子動畫。僅在使用 [constant "
+"BILLBOARD_PARTICLES] 時啟用。見 [member billboard_mode]。"
+
+msgid ""
+"The number of vertical frames in the particle sprite sheet. Only enabled when "
+"using [constant BILLBOARD_PARTICLES]. See [member billboard_mode]."
+msgstr ""
+"粒子精靈表中的垂直影格數。僅在使用 [constant BILLBOARD_PARTICLES] 時啟用。見 "
+"[member billboard_mode]。"
+
+msgid "The point size in pixels. See [member use_point_size]."
+msgstr "點大小,單位為圖元。見 [member use_point_size]。"
+
+msgid ""
+"Distance over which the fade effect takes place. The larger the distance the "
+"longer it takes for an object to fade."
+msgstr "漸變效果發生的距離。距離越大,物體褪色的時間越長。"
+
+msgid ""
+"If [code]true[/code], the proximity fade effect is enabled. The proximity "
+"fade effect fades out each pixel based on its distance to another object."
+msgstr ""
+"如果為 [code]true[/code],則啟用接近淡出效果。鄰近淡出效果會根據每個圖元與另一"
+"個物件的距離淡出。"
+
+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]."
+msgstr "紋理用於設定每個圖元的邊緣光照效果的強度。會與 [member rim] 相乘。"
+
+msgid ""
+"The amount of to blend light and albedo color when rendering rim effect. If "
+"[code]0[/code] the light color is used, while [code]1[/code] means albedo "
+"color is used. An intermediate value generally works best."
+msgstr ""
+"渲染邊緣效果時,混合光照色和反射色的數量。如果 [code]0[/code] 表示使用光色,"
+"[code]1[/code] 表示使用反照色。一般來說,中間值的效果最好。"
+
+msgid ""
+"Surface reflection. A value of [code]0[/code] represents a perfect mirror "
+"while a value of [code]1[/code] completely blurs the reflection. See also "
+"[member metallic]."
+msgstr ""
+"表面反射。[code]0[/code] 值表示一面完美的鏡像,而 [code]1[/code] 值則完全模糊"
+"了反射。另請參閱 [member metallic]。"
+
+msgid ""
+"Texture used to control the roughness per-pixel. Multiplied by [member "
+"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 applications, "
+"however it looks considerably worse than per-pixel. Unshaded rendering is the "
+"fastest, but disables all interactions with lights.\n"
+"[b]Note:[/b] Setting the shading mode vertex shading currently has no effect, "
+"as vertex shading is not implemented yet."
+msgstr ""
+"設定是否發生著色,逐圖元、逐頂點或無陰影。逐頂點時照明速度更快,使其成為移動套"
+"用程式的最佳選擇,但它看起來比逐圖元時差很多。無陰影渲染是最快的,但會禁用與燈"
+"光的所有互動。\n"
+"[b]注意:[/b]設定著色模式為頂點著色時目前沒有效果,因為頂點著色還沒有實作。"
+
+msgid ""
+"If [code]true[/code], enables the \"shadow to opacity\" render mode where "
+"lighting modifies the alpha so shadowed areas are opaque and non-shadowed "
+"areas are transparent. Useful for overlaying shadows onto a camera feed in AR."
+msgstr ""
+"如果為 [code]true[/code],啟用“陰影到不透明度”的渲染模式,在該模式下,光照會修"
+"改 Alpha,使陰影區域不透明,非陰影區域透明。對於在 AR 中把陰影疊加到相機畫面上"
+"很有用。"
+
+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. Subsurface "
+"scattering quality is controlled by [member ProjectSettings.rendering/"
+"environment/subsurface_scattering/subsurface_scattering_quality]."
+msgstr ""
+"如果為 [code]true[/code],則啟用次表面散射。類比光線穿透物體表面,被散射,然後"
+"出現。次表面散射品質由 [member ProjectSettings.rendering/environment/"
+"subsurface_scattering/subsurface_scattering_quality] 控制。"
+
+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. The depth of the effect is "
+"also controlled by [member ProjectSettings.rendering/environment/"
+"subsurface_scattering/subsurface_scattering_scale], which is set globally."
+msgstr ""
+"次表面散射效果的強度。效果的深度也受到全域的 [member ProjectSettings."
+"rendering/environment/subsurface_scattering/subsurface_scattering_scale] 的控"
+"制。"
+
+msgid ""
+"Texture used to control the subsurface scattering strength. Stored in the red "
+"texture channel. Multiplied by [member subsurf_scatter_strength]."
+msgstr ""
+"用於控制次表面散射強度的紋理。儲存在紅色紋理通道中。會與 [member "
+"subsurf_scatter_strength] 相乘。"
+
+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 "
+"filtering, even if nearest-neighbor filtering is selected here. This is to "
+"ensure the heightmap effect looks as intended. If you need sharper height "
+"transitions between pixels, resize the heightmap texture in an image editor "
+"with nearest-neighbor filtering."
+msgstr ""
+"紋理的篩選旗標。有關選項,請參閱 [enum TextureFilter]。\n"
+"[b]注意:[/b]即便這裡選擇了最近鄰篩選,[member heightmap_texture] 也始終使用線"
+"性篩選取樣。這是為了確保高度圖效果看起來符合預期。如果需要圖元之間的高度過渡更"
+"加清晰,請在圖像編輯器中使用最近鄰篩選調整高度圖紋理的大小。"
+
+msgid "Repeat flags for the texture. See [enum TextureFilter] for options."
+msgstr "紋理的重複旗標。可選項見 [enum TextureFilter]。"
+
+msgid ""
+"The material's transparency mode. Some transparency modes will disable shadow "
+"casting. Any transparency mode other than [constant TRANSPARENCY_DISABLED] "
+"has a greater performance impact compared to opaque rendering. See also "
+"[member blend_mode]."
+msgstr ""
+"該材質的透明模式。一些透明模式將禁用陰影投射。除了 [constant "
+"TRANSPARENCY_DISABLED] 以外的任何透明模式都會對性能產生較大的影響。另見 "
+"[member blend_mode]。"
+
+msgid ""
+"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],則啟用 [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 added "
+"to [code]UV[/code] in the vertex function. This can be used to offset a "
+"texture. The Z component is used when [member uv1_triplanar] is enabled, but "
+"it is not used anywhere else."
+msgstr ""
+"[code]UV[/code] 座標的偏移量。這個量將被新增到頂點函式中的 [code]UV[/code] "
+"中。可以用來偏移紋理。Z 分量在啟用 [member uv1_triplanar] 時使用,在其他任何地"
+"方都不會被使用。"
+
+msgid ""
+"How much to scale the [code]UV[/code] coordinates. This is multiplied by "
+"[code]UV[/code] in the vertex function. The Z component is used when [member "
+"uv1_triplanar] is enabled, but it is not used anywhere else."
+msgstr ""
+"[code]UV[/code] 座標的縮放值。將與頂點函式中的 [code]UV[/code] 相乘。Z 分量在"
+"啟用 [member uv1_triplanar] 時使用,在其他任何地方都不會被使用。"
+
+msgid ""
+"If [code]true[/code], instead of using [code]UV[/code] textures will use a "
+"triplanar texture lookup to determine how to apply textures. Triplanar uses "
+"the orientation of the object's surface to blend between texture coordinates. "
+"It reads from the source texture 3 times, once for each axis and then blends "
+"between the results based on how closely the pixel aligns with each axis. "
+"This is often used for natural features to get a realistic blend of "
+"materials. Because triplanar texturing requires many more texture reads per-"
+"pixel it is much slower than normal UV texturing. Additionally, because it is "
+"blending the texture between the three axes, it is unsuitable when you are "
+"trying to achieve crisp texturing."
+msgstr ""
+"如果為 [code]true[/code],紋理將不使用 [code]UV[/code],而是使用三平面紋理查找"
+"來確定如何套用紋理。三平面紋理使用物件表面的方向來混合紋理座標之間。它從源紋理"
+"中讀取3次,每個軸一次,然後根據圖元與每個軸的緊密程度在結果之間進行混合。這通"
+"常用於自然特徵,以獲得真實的材質混合。由於三平面紋理處理每一個圖元需要更多的紋"
+"理讀取,所以它比普通的UV紋理處理要慢得多。此外,由於它是在三個軸之間混合紋理,"
+"所以當你試圖實作清晰的紋理時,它是不合適的。"
+
+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 "
+"the orientation of the object's surface to blend between texture coordinates. "
+"It reads from the source texture 3 times, once for each axis and then blends "
+"between the results based on how closely the pixel aligns with each axis. "
+"This is often used for natural features to get a realistic blend of "
+"materials. Because triplanar texturing requires many more texture reads per-"
+"pixel it is much slower than normal UV texturing. Additionally, because it is "
+"blending the texture between the three axes, it is unsuitable when you are "
+"trying to achieve crisp texturing."
+msgstr ""
+"如果為 [code]true[/code],紋理將不使用 [code]UV[/code],而是使用三平面紋理查找"
+"來確定如何套用紋理。三平面紋理使用物件表面的方向來混合紋理座標之間。它從源紋理"
+"中讀取 3 次,每個軸一次,然後根據圖元與每個軸的緊密程度在結果之間進行混合。這"
+"通常用於自然特徵,以獲得真實的材質混合。由於三平面紋理處理每一個圖元需要更多的"
+"紋理讀取,所以它比普通的 UV 紋理處理要慢得多。此外,由於它是在三個軸之間混合紋"
+"理,所以當你試圖實作清晰的紋理時,它是不合適的。"
+
+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],則使用頂點顏色作為反射率顏色。"
+
+msgid "Texture specifying per-pixel color."
+msgstr "指定每個圖元顏色的紋理。"
+
+msgid "Texture specifying per-pixel metallic value."
+msgstr "指定每個圖元金屬度值的紋理。"
+
+msgid "Texture specifying per-pixel roughness value."
+msgstr "指定每個圖元粗糙度值的紋理。"
+
+msgid "Texture specifying per-pixel emission color."
+msgstr "指定每個圖元自發光顏色的紋理。"
+
+msgid "Texture specifying per-pixel normal vector."
+msgstr "指定每個圖元法向量的紋理。"
+
+msgid "Texture specifying per-pixel rim value."
+msgstr "指定每個圖元邊緣值的紋理。"
+
+msgid "Texture specifying per-pixel clearcoat value."
+msgstr "指定每個圖元清漆值的紋理。"
+
+msgid ""
+"Texture specifying per-pixel flowmap direction for use with [member "
+"anisotropy]."
+msgstr "指定每個圖元流圖方向的紋理,用於 [member anisotropy]。"
+
+msgid "Texture specifying per-pixel ambient occlusion value."
+msgstr "指定每個圖元環境光遮蔽的紋理。"
+
+msgid "Texture specifying per-pixel height."
+msgstr "指定每個圖元高度的紋理。"
+
+msgid "Texture specifying per-pixel subsurface scattering."
+msgstr "指定每個圖元次表面散射的紋理。"
+
+msgid "Texture specifying per-pixel transmittance for subsurface scattering."
+msgstr "指定每個圖元用於次表面散射的透射率的紋理。"
+
+msgid "Texture specifying per-pixel backlight color."
+msgstr "指定每個圖元背光顏色的紋理。"
+
+msgid "Texture specifying per-pixel refraction strength."
+msgstr "指定每個圖元折射強度的紋理。"
+
+msgid "Texture specifying per-pixel detail mask blending value."
+msgstr "指定每個圖元細節蒙版混合值的紋理。"
+
+msgid "Texture specifying per-pixel detail color."
+msgstr "指定每個圖元細節顏色的紋理。"
+
+msgid "Texture specifying per-pixel detail normal."
+msgstr "指定每個圖元細節法線的紋理。"
+
+msgid "Texture holding ambient occlusion, roughness, and metallic."
+msgstr "保存環境光遮蔽、粗糙度和金屬度資訊的紋理。"
+
+msgid "Represents the size of the [enum TextureParam] enum."
+msgstr "代表 [enum TextureParam] 列舉的大小。"
+
+msgid ""
+"The texture filter reads from the nearest pixel only. The simplest and "
+"fastest method of filtering, but the texture will look pixelized."
+msgstr ""
+"紋理篩檢程式僅讀取最鄰近的圖元。最簡單快速的篩選方法,但紋理看起來會圖元化。"
+
+msgid ""
+"The texture filter blends between the nearest 4 pixels. Use this when you "
+"want to avoid a pixelated style, but do not want mipmaps."
+msgstr ""
+"紋理篩檢程式在最鄰近的 4 個圖元之間混合。如果你想要避免圖元化風格,但又不想使"
+"用 mipmap,那麼請使用這個選項。"
+
+msgid ""
+"The texture filter reads from the nearest pixel in the nearest mipmap. The "
+"fastest way to read from textures with mipmaps."
+msgstr ""
+"紋理篩檢程式讀取最鄰近的 mipmap 中的最鄰近的圖元。帶有 mipmap 的紋理的最快讀取"
+"方法。"
+
+msgid ""
+"The texture filter blends between the nearest 4 pixels and between the "
+"nearest 2 mipmaps. Use this for most cases as mipmaps are important to smooth "
+"out pixels that are far from the camera."
+msgstr ""
+"紋理篩檢程式在最鄰近的 4 個圖元和最鄰近的 2 個 mipmap 之間混合。請在大多數情況"
+"下使用,因為 mipmap 對於平滑遠離相機的圖元很重要。"
+
+msgid ""
+"The texture filter reads from the nearest pixel, but selects a mipmap based "
+"on the angle between the surface and the camera view. This reduces artifacts "
+"on surfaces that are almost in line with the camera. The anisotropic "
+"filtering level can be changed by adjusting [member ProjectSettings.rendering/"
+"textures/default_filters/anisotropic_filtering_level]."
+msgstr ""
+"紋理篩檢程式讀取最鄰近的圖元,但會根據表面和相機視圖之間的夾角選擇 mipmap。可"
+"以減少幾乎與相機成一直線的表面的不自然情況。各向異性篩選級別可以通過調整 "
+"[member ProjectSettings.rendering/textures/default_filters/"
+"anisotropic_filtering_level] 來改變。"
+
+msgid ""
+"The texture filter blends between the nearest 4 pixels and selects a mipmap "
+"based on the angle between the surface and the camera view. This reduces "
+"artifacts on surfaces that are almost in line with the camera. This is the "
+"slowest of the filtering options, but results in the highest quality "
+"texturing. The anisotropic filtering level can be changed by adjusting "
+"[member ProjectSettings.rendering/textures/default_filters/"
+"anisotropic_filtering_level]."
+msgstr ""
+"紋理篩檢程式在最鄰近的 4 個圖元之間進行混合,並會根據表面和相機視圖之間的夾角"
+"選擇 mipmap。可以減少幾乎與相機成一直線的表面的不自然情況。這是篩選選項中最慢"
+"的一個,但可以得到最高品質的紋理。各向異性篩選級別可以通過調整 [member "
+"ProjectSettings.rendering/textures/default_filters/"
+"anisotropic_filtering_level] 來改變。"
+
+msgid "Represents the size of the [enum TextureFilter] enum."
+msgstr "代表 [enum TextureFilter] 列舉的大小。"
+
+msgid "Use [code]UV[/code] with the detail texture."
+msgstr "使用 [code]UV[/code] 與細節紋理。"
+
+msgid "Use [code]UV2[/code] with the detail texture."
+msgstr "使用 [code]UV2[/code] 與細節紋理。"
+
+msgid "The material will not use transparency. This is the fastest to render."
+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 值作為透明度。渲染最慢,且會禁用陰影投射。"
+
+msgid ""
+"The material will cut off all values below a threshold, the rest will remain "
+"opaque. The opaque portions will be rendered in the depth prepass. This is "
+"faster to render than alpha blending, but slower than opaque rendering. This "
+"also supports casting shadows."
+msgstr ""
+"該材質會將所有低於閾值的值截斷,其餘部分將保持不透明。不透明部分將在深度預通道"
+"中渲染。這比 Alpha 混合的渲染速度更快,但比不透明渲染慢。支援投射陰影。"
+
+msgid ""
+"The material will cut off all values below a spatially-deterministic "
+"threshold, the rest will remain opaque. This is faster to render than alpha "
+"blending, but slower than opaque rendering. This also supports casting "
+"shadows. Alpha hashing is suited for hair rendering."
+msgstr ""
+"該材質會將所有低於空間確定性閾值的值截斷,其餘部分將保持不透明。這比 Alpha 混"
+"合的渲染速度更快,但比不透明渲染慢。支援投射陰影。Alpha 雜湊適合毛髮渲染。"
+
+msgid ""
+"The material will use the texture's alpha value for transparency, but will "
+"discard fragments with an alpha of less than 0.99 during the depth prepass "
+"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 的片段。支援投射陰影。"
+
+msgid "Represents the size of the [enum Transparency] enum."
+msgstr "代表 [enum Transparency] 列舉的大小。"
+
+msgid ""
+"The object will not receive shadows. This is the fastest to render, but it "
+"disables all interactions with lights."
+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] 列舉的大小。"
+
+msgid "Constant for setting [member emission_enabled]."
+msgstr "用於設定 [member emission_enabled] 的常數。"
+
+msgid "Constant for setting [member normal_enabled]."
+msgstr "用於設定 [member normal_enabled] 的常數。"
+
+msgid "Constant for setting [member rim_enabled]."
+msgstr "用於設定 [member rim_enabled] 的常數。"
+
+msgid "Constant for setting [member clearcoat_enabled]."
+msgstr "用於設定 [member clearcoat_enabled] 的常數。"
+
+msgid "Constant for setting [member anisotropy_enabled]."
+msgstr "用於設定 [member anisotropy_enabled] 的常數。"
+
+msgid "Constant for setting [member ao_enabled]."
+msgstr "用於設定 [member ao_enabled] 的常數。"
+
+msgid "Constant for setting [member heightmap_enabled]."
+msgstr "用於設定 [member heightmap_enabled] 的常數。"
+
+msgid "Constant for setting [member subsurf_scatter_enabled]."
+msgstr "用於設定 [member subsurf_scatter_enabled] 的常數。"
+
+msgid "Constant for setting [member subsurf_scatter_transmittance_enabled]."
+msgstr "用於設定 [member subsurf_scatter_transmittance_enabled] 的常數。"
+
+msgid "Constant for setting [member backlight_enabled]."
+msgstr "用於設定 [member backlight_enabled] 的常數。"
+
+msgid "Constant for setting [member refraction_enabled]."
+msgstr "用於設定 [member refraction_enabled] 的常數。"
+
+msgid "Constant for setting [member detail_enabled]."
+msgstr "用於設定 [member detail_enabled] 的常數。"
+
+msgid "Represents the size of the [enum Feature] enum."
+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 值,將物件的顏色混合到背景上。"
+
+msgid "The color of the object is added to the background."
+msgstr "物件的顏色被加到背景中。"
+
+msgid "The color of the object is subtracted from the background."
+msgstr "從背景中減去物件的顏色。"
+
+msgid "The color of the object is multiplied by the background."
+msgstr "物件的顏色與背景相乘。"
+
+msgid "Disables Alpha AntiAliasing for the material."
+msgstr "禁用該材質的 Alpha 抗鋸齒。"
+
+msgid ""
+"Enables AlphaToCoverage. Alpha values in the material are passed to the "
+"AntiAliasing sample mask."
+msgstr ""
+"啟用 AlphaToCoverage。材質中的 Alpha 值會被傳遞到 AntiAliasing 取樣遮罩。"
+
+msgid ""
+"Enables AlphaToCoverage and forces all non-zero alpha values to [code]1[/"
+"code]. Alpha values in the material are passed to the AntiAliasing sample "
+"mask."
+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 "不執行面剔除;正反面均可見。"
+
+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[/"
+"code]."
+msgstr ""
+"使用點大小來改變圖元點的大小。同時改變反射率紋理搜尋,使用 [code]POINT_COORD[/"
+"code] 而不是 [code]UV[/code]。"
+
+msgid ""
+"Object is scaled by depth so that it always appears the same size on screen."
+msgstr "按深度縮放物件,使其在螢幕上顯示的大小始終相同。"
+
+msgid ""
+"Shader will keep the scale set for the mesh. Otherwise the scale is lost when "
+"billboarding. Only applies when [member billboard_mode] is [constant "
+"BILLBOARD_ENABLED]."
+msgstr ""
+"著色器將保持網格的縮放設定。否則,在用作公告板時會丟失縮放。僅在 [member "
+"billboard_mode] 為 [constant BILLBOARD_ENABLED] 時適用。"
+
+msgid ""
+"Use triplanar texture lookup for all texture lookups that would normally use "
+"[code]UV[/code]."
+msgstr "對所有通常會使用 [code]UV[/code] 的紋理搜尋使用三平面紋理搜尋。"
+
+msgid ""
+"Use triplanar texture lookup for all texture lookups that would normally use "
+"[code]UV2[/code]."
+msgstr "對所有通常會使用 [code]UV2[/code] 的紋理搜尋使用三平面紋理搜尋。"
+
+msgid ""
+"Use [code]UV2[/code] coordinates to look up from the [member ao_texture]."
+msgstr "使用 [code]UV2[/code] 座標從 [member ao_texture] 中搜尋。"
+
+msgid ""
+"Use [code]UV2[/code] coordinates to look up from the [member "
+"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 "禁用從其他物件接收陰影。"
+
+msgid "Disables receiving ambient light."
+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 "啟用多通道有符號距離場渲染著色器。"
+
+msgid "Disables receiving depth-based or volumetric fog."
+msgstr "禁用從其他物件接收陰影。"
+
+msgid "Represents the size of the [enum Flags] enum."
+msgstr "代表 [enum Flags] 列舉的大小。"
+
+msgid "Default diffuse scattering algorithm."
+msgstr "預設的漫反射散射演算法。"
+
+msgid "Diffuse scattering ignores roughness."
+msgstr "漫散射忽略了粗糙度。"
+
+msgid "Extends Lambert to cover more than 90 degrees when roughness increases."
+msgstr "當粗糙度增加時,將 Lambert 延伸到 90 度以上。"
+
+msgid "Uses a hard cut for lighting, with smoothing affected by roughness."
+msgstr "使用硬切口進行照明,平滑度受粗糙度影響。"
+
+msgid "Default specular blob."
+msgstr "預設鏡面反射斑點。"
+
+msgid "Toon blob which changes size based on roughness."
+msgstr "基於粗糙度更改大小的 Toon 斑點。"
+
+msgid ""
+"No specular blob. This is slightly faster to render than other specular modes."
+msgstr "沒有鏡面反射斑點。這比其他鏡面反射模式渲染速度稍快。"
+
+msgid "Billboard mode is disabled."
+msgstr "公告板模式已禁用。"
+
+msgid "The object's Z axis will always face the camera."
+msgstr "物件的 Z 軸將始終面向相機。"
+
+msgid "The object's X axis will always face the camera."
+msgstr "物件的 X 軸將始終面向相機。"
+
+msgid "Used to read from the red channel of a texture."
+msgstr "用來讀取紋理的紅色通道。"
+
+msgid "Used to read from the green channel of a texture."
+msgstr "用來讀取紋理的綠色通道。"
+
+msgid "Used to read from the blue channel of a texture."
+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 "將自發光顏色加到自發光紋理的顏色上。"
+
+msgid "Multiplies the emission color by the color from the emission texture."
+msgstr "將自發光顏色乘以自發光紋理的顏色。"
+
+msgid "Do not use distance fade."
+msgstr "不使用距離淡化。"
+
+msgid ""
+"Smoothly fades the object out based on each pixel's distance from the camera "
+"using the alpha channel."
+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 "A 3×3 matrix for representing 3D rotation and scale."
+msgstr "用於表示 3D 旋轉和縮放的 3×3 矩陣。"
+
+msgid ""
+"A 3×3 matrix used for representing 3D rotation and scale. Usually used as an "
+"orthogonal basis for a [Transform3D].\n"
+"Contains 3 vector fields X, Y and Z as its columns, which are typically "
+"interpreted as the local basis vectors of a transformation. For such use, it "
+"is composed of a scaling and a rotation matrix, in that order (M = R.S).\n"
+"Basis can also be accessed as an array of 3D vectors. These vectors are "
+"usually orthogonal to each other, but are not necessarily normalized (due to "
+"scaling).\n"
+"For more information, read the \"Matrices and transforms\" documentation "
+"article."
+msgstr ""
+"用於表示 3D 旋轉和縮放的 3×3 矩陣。通常用作 [Transform3D] 的正交基。\n"
+"包含 3 個向量欄位 X、Y 和 Z 作為其列,它們通常被解釋為變換的局部基向量。對於這"
+"種用途,它由縮放和旋轉矩陣組成,順序為 (M = R.S)。\n"
+"基也可以作為 3D 向量的陣列存取。這些向量通常彼此正交,但(由於縮放)不一定是正"
+"規化的。\n"
+"更多資訊請閱讀文件文章《矩陣與變換》。"
+
+msgid "Matrices and transforms"
+msgstr "矩陣與變換"
+
+msgid "Using 3D transforms"
+msgstr "使用 3D 變換"
+
+msgid "Matrix Transform Demo"
+msgstr "矩陣變換演示"
+
+msgid "2.5D Demo"
+msgstr "2.5D 演示"
+
+msgid "Constructs a default-initialized [Basis] set to [constant IDENTITY]."
+msgstr "建構預設初始化為 [constant IDENTITY] 的 [Basis] 。"
+
+msgid "Constructs a [Basis] as a copy of the given [Basis]."
+msgstr "建構給定 [Basis] 的副本。"
+
+msgid ""
+"Constructs a pure rotation basis matrix, rotated around the given [param "
+"axis] by [param angle] (in radians). The axis must be a normalized vector."
+msgstr ""
+"建構純旋轉的基矩陣,圍繞給定的軸 [param axis] 旋轉 [param angle](單位為弧"
+"度)。該軸必須是正規化向量。"
+
+msgid "Constructs a pure rotation basis matrix from the given quaternion."
+msgstr "根據給定的四元數建構純旋轉的基矩陣。"
+
+msgid "Constructs a basis matrix from 3 axis vectors (matrix columns)."
+msgstr "從 3 個軸向量(矩陣列)建構一個基矩陣。"
+
+msgid ""
+"Returns the determinant of the basis matrix. If the basis is uniformly "
+"scaled, its determinant is the square of the scale.\n"
+"A negative determinant means the basis has a negative scale. A zero "
+"determinant means the basis isn't invertible, and is usually considered "
+"invalid."
+msgstr ""
+"返回基矩陣的行列式。如果基是均勻縮放的,它的行列式是縮放的平方。\n"
+"負的行列式意味著基的縮放是負的。負的行列式意味著基不可逆,通常被認為無效。"
+
+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 "
+"get_euler] if you need Euler angles, but keep in mind quaternions should "
+"generally be preferred to Euler angles."
+msgstr ""
+"以四元數的形式返回基的旋轉。如果你需要歐拉角,請參閱 [method get_euler] 方法,"
+"但通常首選四元數而不是歐拉角。"
+
+msgid ""
+"Assuming that the matrix is the combination of a rotation and scaling, return "
+"the absolute value of scaling factors along each axis."
+msgstr "假設矩陣是旋轉和縮放的組合,返回沿各軸縮放係數的絕對值。"
+
+msgid "Returns the inverse of the matrix."
+msgstr "返回矩陣的逆值。"
+
+msgid ""
+"Returns [code]true[/code] if the basis is conformal, meaning it preserves "
+"angles and distance ratios, and may only be composed of rotation and uniform "
+"scale. Returns [code]false[/code] if the basis has non-uniform scale or shear/"
+"skew. This can be used to validate if the basis is non-distorted, which is "
+"important for physics and other use cases."
+msgstr ""
+"如果基礎是共形的,則傳回[code]true[/code],這表示它保留角度和距離比率,並且只"
+"能由旋轉和均勻比例組成。返回[code]false [/code] 基礎是否具有不均勻的尺度或剪"
+"切/傾斜。這可用於驗證基礎是否不扭曲,這對於物理和其他用例很重要。"
+
+msgid ""
+"Returns [code]true[/code] if this basis and [param b] are approximately "
+"equal, by calling [method @GlobalScope.is_equal_approx] on all vector "
+"components."
+msgstr ""
+"如果該基和 [param b] 近似相等,則返回 [code]true[/code],判斷方法是在每個向量"
+"分量上呼叫 [method @GlobalScope.is_equal_approx]。"
+
+msgid ""
+"Returns [code]true[/code] if this basis is finite, by calling [method "
+"@GlobalScope.is_finite] on all vector components."
+msgstr ""
+"如果該基是有限的,則返回 [code]true[/code],判斷方法是在每個向量分量上呼叫 "
+"[method @GlobalScope.is_finite]。"
+
+msgid ""
+"Creates a Basis with a rotation such that the forward axis (-Z) points "
+"towards the [param target] position.\n"
+"The up axis (+Y) points as close to the [param up] vector as possible while "
+"staying perpendicular to the forward axis. The resulting Basis is "
+"orthonormalized. The [param target] and [param up] vectors cannot be zero, "
+"and cannot be parallel to each other.\n"
+"If [param use_model_front] is [code]true[/code], the +Z axis (asset front) is "
+"treated as forward (implies +X is left) and points toward the [param target] "
+"position. By default, the -Z axis (camera forward) is treated as forward "
+"(implies +X is right)."
+msgstr ""
+"建立旋轉 Basis,向前的軸(-Z)指向 [param target] 的位置。\n"
+"向上的軸(+Y)在保持與向前的軸垂直的前提下,盡可能接近 [param up] 向量。最終"
+"的 Basis 是標準正交基。 [param target] 和 [param up] 向量不能為零,不能互相平"
+"行。\n"
+"如果 [param use_model_front] 為 [code]true[/code],則會將 +Z 軸(素材正面)作"
+"為向前的軸(此時 +X 為左),指向 [param target] 的位置。預設情況下會將 -Z 軸"
+"(相機前方)作為向前的軸(此時 +X 為右)。"
+
+msgid ""
+"Returns the orthonormalized version of the matrix (useful to call from time "
+"to time to avoid rounding error for orthogonal matrices). This performs a "
+"Gram-Schmidt orthonormalization on the basis of the matrix."
+msgstr ""
+"返回矩陣的正交正規化版本(對於正交矩陣來說,偶爾呼叫以避免四捨五入錯誤是有用"
+"的)。這將在矩陣的基上執行 Gram-Schmidt 正交化。"
+
+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 縮放因數指定的附加縮放。"
+
+msgid ""
+"Assuming that the matrix is a proper rotation matrix, slerp performs a "
+"spherical-linear interpolation with another rotation matrix."
+msgstr ""
+"假設該矩陣是一個合適的旋轉矩陣,slerp 與另一個旋轉矩陣進行球面直線插值。"
+
+msgid "Transposed dot product with the X axis of the matrix."
+msgstr "與矩陣 X 軸的轉置點積。"
+
+msgid "Transposed dot product with the Y axis of the matrix."
+msgstr "與矩陣 Y 軸的轉置點積。"
+
+msgid "Transposed dot product with the Z axis of the matrix."
+msgstr "與矩陣 Z 軸的轉置點積。"
+
+msgid "Returns the transposed version of the matrix."
+msgstr "返回矩陣的轉置版本。"
+
+msgid ""
+"The basis matrix's X vector (column 0). Equivalent to array index [code]0[/"
+"code]."
+msgstr "基矩陣的 X 向量(第 0 列)。相當於陣列索引 [code]0[/code]。"
+
+msgid ""
+"The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/"
+"code]."
+msgstr "基矩陣的 Y 向量(第 1 列)。相當於陣列索引 [code]1[/code]。"
+
+msgid ""
+"The basis matrix's Z vector (column 2). Equivalent to array index [code]2[/"
+"code]."
+msgstr "基矩陣的 Z 向量(第 2 列)。相當於陣列索引 [code]2[/code]。"
+
+msgid ""
+"The basis that will flip something along the X axis when used in a "
+"transformation."
+msgstr "在變換中使用時,會沿 X 軸翻轉某物的基。"
+
+msgid ""
+"The basis that will flip something along the Y axis when used in a "
+"transformation."
+msgstr "在變換中使用時,會沿 Y 軸翻轉某物的基。"
+
+msgid ""
+"The basis that will flip something along the Z axis when used in a "
+"transformation."
+msgstr "在變換中使用時,會沿 Z 軸翻轉某物的基。"
+
+msgid ""
+"Returns [code]true[/code] if the [Basis] matrices 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 ""
+"如果 [Basis] 矩陣不相等,則返回 [code]true[/code]。\n"
+"[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]。"
+
+msgid ""
+"This operator multiplies all components of the [Basis], which scales it "
+"uniformly."
+msgstr "該運算子會對 [Basis] 的所有分量進行乘操作,達到均勻縮放的效果。"
+
+msgid ""
+"Returns [code]true[/code] if the [Basis] matrices are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"如果 [Basis] 矩陣完全相等,則返回 [code]true[/code]。\n"
+"[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 "布林矩陣。"
+
+msgid ""
+"A two-dimensional array of boolean values, can be used to efficiently store a "
+"binary matrix (every matrix element takes only one bit) and query the values "
+"using natural cartesian coordinates."
+msgstr ""
+"布林值二維陣列,可以用來高效儲存二進位矩陣(每個矩陣元素只占一個比特位),並使"
+"用自然的笛卡爾座標查詢數值。"
+
+msgid ""
+"Returns an image of the same size as the bitmap and with a [enum Image."
+"Format] of type [constant Image.FORMAT_L8]. [code]true[/code] bits of the "
+"bitmap are being converted into white pixels, and [code]false[/code] bits "
+"into black."
+msgstr ""
+"返回與該點陣圖大小相同且具有 [constant Image.FORMAT_L8] 型別的 [enum Image."
+"Format] 的圖像。該點陣圖中的 [code]true[/code] 位元被轉換為白色圖元,"
+"[code]false[/code] 位元被轉換為黑色圖元。"
+
+msgid ""
+"Creates a bitmap with the specified size, filled with [code]false[/code]."
+msgstr "建立一個指定尺寸的點陣圖,用 [code]false[/code] 填充。"
+
+msgid ""
+"Creates a bitmap that matches the given image dimensions, every element of "
+"the bitmap is set to [code]false[/code] if the alpha value of the image at "
+"that position is equal to [param threshold] or less, and [code]true[/code] in "
+"other case."
+msgstr ""
+"建立一個配對給定圖像大小的點陣圖,如果該點陣圖的 Alpha 值等於或小於 [param "
+"threshold],則點陣圖的每個元素都被設定為 [code]false[/code];否則被設定為 "
+"[code]true[/code]。"
+
+msgid "Returns bitmap's value at the specified position."
+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]。"
+
+msgid ""
+"Sets the bitmap's element at the specified position, to the specified value."
+msgstr "將點陣圖中指定位置的元素設定為指定值。"
+
+msgid "Sets a rectangular portion of the bitmap to the specified value."
+msgstr "將點陣圖的矩形部分設定為指定值。"
+
+msgid "A joint used with [Skeleton2D] to control and animate other nodes."
+msgstr "與 [Skeleton2D] 一起使用的關節,能夠控制並動畫其他節點。"
+
+msgid ""
+"A hierarchy of [Bone2D]s can be bound to a [Skeleton2D] to control and "
+"animate other [Node2D] nodes.\n"
+"You can use [Bone2D] and [Skeleton2D] nodes to animate 2D meshes created with "
+"the [Polygon2D] UV editor.\n"
+"Each bone has a [member rest] transform that you can reset to with [method "
+"apply_rest]. These rest poses are relative to the bone's parent.\n"
+"If in the editor, you can set the rest pose of an entire skeleton using a "
+"menu option, from the code, you need to iterate over the bones to set their "
+"individual rest poses."
+msgstr ""
+"[Bone2D] 層級結構可以綁定到 [Skeleton2D] 上,控制並動畫其他 [Node2D] 節點。\n"
+"你可以使用 [Bone2D] 和 [Skeleton2D] 節點對使用 [Polygon2D] UV 編輯器建立的 2D "
+"網格進行動畫。\n"
+"每個骨骼都有一個 [member rest] 變換,你可以用 [method apply_rest] 來重設到這個"
+"變換。這些放鬆姿勢是相對於骨骼的父節點而言的。\n"
+"如果在編輯器中,你可以使用功能表選項設定整個骨架的放鬆姿勢,從程式碼中,你需要"
+"遍曆骨骼來設定它們各自的放鬆姿勢。"
+
+msgid "Stores the node's current transforms in [member rest]."
+msgstr "將節點目前的變換儲存在 [member rest] 中。"
+
+msgid ""
+"Returns whether this [Bone2D] is going to autocalculate its length and bone "
+"angle using its first [Bone2D] child node, if one exists. If there are no "
+"[Bone2D] children, then it cannot autocalculate these values and will print a "
+"warning."
+msgstr ""
+"如果該 [Bone2D] 存在骨骼子節點,則返回是否要使用第一個 [Bone2D] 子節點自動計算"
+"其長度和骨骼角度。如果沒有 [Bone2D] 子節點,則無法自動計算這些值,會列印一條警"
+"告。"
+
+msgid ""
+"Returns the angle of the bone in the [Bone2D].\n"
+"[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle "
+"is the rotation of the bone shown by the gizmo, which is unaffected by the "
+"[Bone2D]'s [member Node2D.transform]."
+msgstr ""
+"返回 [Bone2D] 中骨骼的角度。\n"
+"[b]注意:[/b]這與 [Bone2D] 的旋轉不同。骨骼角度是小工具顯示的骨骼旋轉,不受 "
+"[Bone2D] 的 [member Node2D.transform] 的影響。"
+
+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 [Bone2D] node."
+msgstr "返回 [Bone2D] 節點中骨骼的長度。"
+
+msgid ""
+"When set to [code]true[/code], the [Bone2D] node will attempt to "
+"automatically calculate the bone angle and length using the first child "
+"[Bone2D] node, if one exists. If none exist, the [Bone2D] cannot "
+"automatically calculate these values and will print a warning."
+msgstr ""
+"當設定為 [code]true[/code] 時,該 [Bone2D] 節點將嘗試使用第一個子 [Bone2D] 節"
+"點(如果存在)自動計算骨骼角度和長度。如果不存在子節點,[Bone2D] 將無法自動計"
+"算這些值,並將輸出一條警告。"
+
+msgid ""
+"Sets the bone angle for the [Bone2D]. This is typically set to the rotation "
+"from the [Bone2D] to a child [Bone2D] node.\n"
+"[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle "
+"is the rotation of the bone shown by the gizmo, which is unaffected by the "
+"[Bone2D]'s [member Node2D.transform]."
+msgstr ""
+"設定 [Bone2D] 節點的骨骼角度。這通常設定為從 [Bone2D] 節點到子 [Bone2D] 節點的"
+"旋轉。\n"
+"[b]注意:[/b]這與 [Bone2D] 的旋轉不同。骨骼角度是 [Bone2D] 小工具顯示的骨骼旋"
+"轉,不受 [Bone2D] 的 [member Node2D.transform] 的影響。"
+
+msgid "Sets the length of the bone in the [Bone2D]."
+msgstr "設定該 [Bone2D] 中骨骼的長度。"
+
+msgid ""
+"Rest transform of the bone. You can reset the node's transforms to this value "
+"using [method apply_rest]."
+msgstr ""
+"骨骼的放鬆變換。你可以使用 [method apply_rest] 將節點的變換重設為這個值。"
+
+msgid ""
+"А node that dynamically copies or overrides the 3D transform of a bone in its "
+"parent [Skeleton3D]."
+msgstr "對父級 [Skeleton3D] 中某個骨骼的 3D 變換進行複製或覆蓋的節點。"
+
+msgid ""
+"This node selects a bone in a [Skeleton3D] and attaches to it. This means "
+"that the [BoneAttachment3D] node will either dynamically copy or override the "
+"3D transform of the selected bone."
+msgstr ""
+"這個節點能夠選中 [Skeleton3D] 中的某個骨骼並附加到這個骨骼上。這樣 "
+"[BoneAttachment3D] 節點就能夠動態複製或覆蓋所選骨骼的 3D 變換。"
+
+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 external [Skeleton3D] node "
+"rather than attempting to use its parent node as the [Skeleton3D]. When set "
+"to [code]true[/code], the BoneAttachment3D node will use the external "
+"[Skeleton3D] node set in [method set_external_skeleton]."
+msgstr ""
+"設定該 BoneAttachment3D 節點是否將使用外部 [Skeleton3D] 節點,而不是嘗試使用其"
+"父節點作為 [Skeleton3D]。當設定為 [code]true[/code] 時,BoneAttachment3D 節點"
+"將使用 [method set_external_skeleton] 中設定的外部 [Skeleton3D] 節點。"
+
+msgid "The index of the attached bone."
+msgstr "所附著骨骼的索引。"
+
+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 ""
+"Describes a mapping of bone names for retargeting [Skeleton3D] into common "
+"names defined by a [SkeletonProfile]."
+msgstr ""
+"描述骨骼名稱的對應,用於將 [Skeleton3D] 重定向至 [SkeletonProfile] 中定義的通"
+"用名稱。"
+
+msgid ""
+"This class contains a dictionary that uses a list of bone names in "
+"[SkeletonProfile] as key names.\n"
+"By assigning the actual [Skeleton3D] bone name as the key value, it maps the "
+"[Skeleton3D] to the [SkeletonProfile]."
+msgstr ""
+"這個類中有一個字典,使用 [SkeletonProfile] 中的骨骼名稱作為鍵名。\n"
+"將實際的 [Skeleton3D] 骨骼名稱賦為鍵值後,就會將 [Skeleton3D] 對應到 "
+"[SkeletonProfile]。"
+
+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 "
+"source skeleton."
+msgstr ""
+"返回與配置中的某個骨骼名稱 [param profile_bone_name] 對應的骨架中的骨骼名"
+"稱。\n"
+"在重定向過程中,設定的骨骼名稱是源骨架中骨骼的名稱。"
+
+msgid ""
+"Maps a skeleton bone name to [param profile_bone_name].\n"
+"In the retargeting process, the setting bone name is the bone name of the "
+"source skeleton."
+msgstr ""
+"將骨架中的某個骨骼名稱對應到配置中的骨骼名稱 [param profile_bone_name]。\n"
+"在重定向過程中,設定的骨骼名稱是源骨架中骨骼的名稱。"
+
+msgid ""
+"A [SkeletonProfile] of the mapping target. Key names in the [BoneMap] are "
+"synchronized with it."
+msgstr "對應目標的 [SkeletonProfile]。[BoneMap] 中的鍵名與此同步。"
+
+msgid ""
+"This signal is emitted when change the key value in the [BoneMap]. This is "
+"used to validate mapping and to update [BoneMap] editor."
+msgstr ""
+"[BoneMap] 中的鍵值發生改變時發出此訊號。用於驗證對應和更新 [BoneMap] 編輯器。"
+
+msgid ""
+"This signal is emitted when change the value in profile or change the "
+"reference of profile. This is used to update key names in the [BoneMap] and "
+"to redraw the [BoneMap] editor."
+msgstr ""
+"配置中的值發生改變或配置的引用發生改變時發出此訊號。用於更新 [BoneMap] 中的鍵"
+"名、重繪 [BoneMap] 編輯器。"
+
+msgid "A built-in boolean type."
+msgstr "內建布林型別。"
+
+msgid ""
+"The [bool] is a built-in [Variant] type that may only store one of two "
+"values: [code]true[/code] or [code]false[/code]. You can imagine it as a "
+"switch that can be either turned on or off, or as a binary digit that can "
+"either be 1 or 0.\n"
+"Booleans can be directly used in [code]if[/code], and other conditional "
+"statements:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var can_shoot = true\n"
+"if can_shoot:\n"
+" launch_bullet()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"bool canShoot = true;\n"
+"if (canShoot)\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"All comparison operators return booleans ([code]==[/code], [code]>[/code], "
+"[code]<=[/code], etc.). As such, it is not necessary to compare booleans "
+"themselves. You do not need to add [code]== true[/code] or [code]== false[/"
+"code].\n"
+"Booleans can be combined with the logical operators [code]and[/code], "
+"[code]or[/code], [code]not[/code] to create complex conditions:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"if bullets > 0 and not is_reloading():\n"
+" launch_bullet()\n"
+"\n"
+"if bullets == 0 or is_reloading():\n"
+" play_clack_sound()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"if (bullets > 0 && !IsReloading())\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"\n"
+"if (bullets == 0 || IsReloading())\n"
+"{\n"
+" PlayClackSound();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Note:[/b] In modern programming languages, logical operators are evaluated "
+"in order. All remaining conditions are skipped if their result would have no "
+"effect on the final value. This concept is known as [url=https://en.wikipedia."
+"org/wiki/Short-circuit_evaluation]short-circuit evaluation[/url] and can be "
+"useful to avoid evaluating expensive conditions in some performance-critical "
+"cases.\n"
+"[b]Note:[/b] By convention, built-in methods and properties that return "
+"booleans are usually defined as yes-no questions, single adjectives, or "
+"similar ([method String.is_empty], [method Node.can_process], [member "
+"Camera2D.enabled], etc.)."
+msgstr ""
+"[bool] 是內建 [Variant] 型別,只能儲存兩個值之一:[code]true[/code] 或 "
+"[code]false[/code]你可以把它想像成一個可以打開或關閉的開關,或者是一個可以是1"
+"或0的二進制數字。\n"
+"布林值可以直接用在[code]if[/code]和其他條件敘述:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var can_shoot = true\n"
+"if can_shoot:\n"
+" launch_bullet()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"bool canShoot = true;\n"
+"if (canShoot)\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]所有比較運算子都傳回布林值([code]==[/code]、[code]>[/code]、"
+"[code]<=[/code] 等) 。因此,沒有必要比較布林值本身。您不需要新增 [code]== "
+"true[/code] 或 [code]== false[/code]。\n"
+"布林值可以與邏輯運算子 [code]and[/code]、[code]or[/code]、[code]not[/code] 組"
+"合來建立複雜的條件:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"if bullets > 0 and not is_reloading():\n"
+" launch_bullet()\n"
+"\n"
+"if bullets == 0 or is_reloading():\n"
+" play_clack_sound()\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"if (bullets > 0 && !IsReloading())\n"
+"{\n"
+" LaunchBullet();\n"
+"}\n"
+"\n"
+"if (bullets == 0 || IsReloading())\n"
+"{\n"
+" PlayClackSound();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]注意:[/b] 在現代程式語言中,邏輯運算子依序求值。如果剩餘條件的結果對最終值"
+"沒有影響,則將跳過所有剩餘條件。這個概念被稱為[url=https://en.wikipedia.org/"
+"wiki/Short-Circuit_evaluation]短路評估[/url],可用於避免在某些性能關鍵的情況下"
+"評估昂貴的條件。\n"
+"[b]注意:[/b] 依照慣例,傳回布林值的內建方法和屬性通常定義為是非問題、單一形容"
+"詞或類似的([method String.is_empty]、[method Node.can_process]、 [成員"
+"Camera2D. enabled]等)。"
+
+msgid "Constructs a [bool] set to [code]false[/code]."
+msgstr "建構設為 [code]0[/code] 的 [int]。"
+
+msgid "Constructs a [bool] as a copy of the given [bool]."
+msgstr "建構給定 [bool] 的副本。"
+
+msgid ""
+"Cast a [float] value to a boolean value. Returns [code]false[/code] if [param "
+"from] is equal to [code]0.0[/code] (including [code]-0.0[/code]), and "
+"[code]true[/code] for all other values (including [constant @GDScript.INF] "
+"and [constant @GDScript.NAN])."
+msgstr ""
+"將 [float] 值轉換為布林值。如果傳入 [code]0.0[/code],本方法將返回 "
+"[code]false[/code],傳入其他值則返回 [code]true[/code]。"
+
+msgid ""
+"Cast an [int] value to a boolean value. Returns [code]false[/code] if [param "
+"from] is equal to [code]0[/code], and [code]true[/code] for all other values."
+msgstr ""
+"將 [int] 值轉換為布林值。如果傳入 [code]0[/code],本方法將返回 [code]false[/"
+"code],傳入其他值則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the two booleans are not equal. That is, one is "
+"[code]true[/code] and the other is [code]false[/code]. This operation can be "
+"seen as a logical XOR."
+msgstr ""
+"如果兩個布林值不同,即一個是 [code]true[/code],另一個是 [code]false[/code],"
+"則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the left operand is [code]false[/code] and the "
+"right operand is [code]true[/code]."
+msgstr ""
+"如果左運算元為 [code]false[/code] 且右運算元為 [code]true[/code],則返回 "
+"[code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the two booleans are equal. That is, both are "
+"[code]true[/code] or both are [code]false[/code]. This operation can be seen "
+"as a logical EQ or XNOR."
+msgstr ""
+"如果兩個布林值相等,即都為 [code]true[/code] 或都為 [code]false[/code],則返"
+"回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the left operand is [code]true[/code] and the "
+"right operand is [code]false[/code]."
+msgstr ""
+"如果左運算元為 [code]true[/code] 且右運算元為 [code]false[/code],則返回 "
+"[code]true[/code]。"
+
+msgid "A container that arranges its child controls horizontally or vertically."
+msgstr "將子控制項橫向或縱向排列的容器。"
+
+msgid ""
+"A container that arranges its child controls horizontally or vertically, "
+"rearranging them automatically when their minimum size changes."
+msgstr ""
+"將子控制項橫向或縱向排列的容器,會在這些控制項的最小尺寸發生改變時自動重排。"
+
+msgid ""
+"Adds a [Control] node to the box as a spacer. If [param begin] is [code]true[/"
+"code], it will insert the [Control] node in front of all other children."
+msgstr ""
+"新增 [Control] 節點作為間隔。如果 [param begin] 為 [code]true[/code],則會將"
+"該 [Control] 節點新增到所有其他節點之前。"
+
+msgid ""
+"The alignment of the container's children (must be one of [constant "
+"ALIGNMENT_BEGIN], [constant ALIGNMENT_CENTER], or [constant ALIGNMENT_END])."
+msgstr ""
+"該容器子節點的對齊方式(必須是 [constant ALIGNMENT_BEGIN]、[constant "
+"ALIGNMENT_CENTER]、[constant ALIGNMENT_END] 之一)。"
+
+msgid ""
+"If [code]true[/code], the [BoxContainer] will arrange its children "
+"vertically, rather than horizontally.\n"
+"Can't be changed when using [HBoxContainer] and [VBoxContainer]."
+msgstr ""
+"如果為 [code]true[/code],則該 [BoxContainer] 會將子節點垂直排列,否則會水平排"
+"列。\n"
+"使用 [HBoxContainer] 和 [VBoxContainer] 時無法改變。"
+
+msgid ""
+"The child controls will be arranged at the beginning of the container, i.e. "
+"top if orientation is vertical, left if orientation is horizontal (right for "
+"RTL layout)."
+msgstr ""
+"子控制項會被排列在該容器的開頭,如果是垂直朝向則為頂部,如果是水平朝向則為左側"
+"(RTL 佈局時為右側)。"
+
+msgid "The child controls will be centered in the container."
+msgstr "子控制項會在該容器裡居中。"
+
+msgid ""
+"The child controls will be arranged at the end of the container, i.e. bottom "
+"if orientation is vertical, right if orientation is horizontal (left for RTL "
+"layout)."
+msgstr ""
+"子控制項會被排列在該容器的末尾,如果是垂直朝向則為底部,如果是水平朝向則為右側"
+"(RTL 佈局時為左側)。"
+
+msgid "The space between the [BoxContainer]'s elements, in pixels."
+msgstr "[BoxContainer] 元素之間的距離,單位為圖元。"
+
+msgid "Generate an axis-aligned box [PrimitiveMesh]."
+msgstr "生成軸對齊盒 [PrimitiveMesh]。"
+
+msgid ""
+"Generate an axis-aligned box [PrimitiveMesh].\n"
+"The box's UV layout is arranged in a 3×2 layout that allows texturing each "
+"face individually. To apply the same texture on all faces, change the "
+"material's UV property to [code]Vector3(3, 2, 1)[/code]. This is equivalent "
+"to adding [code]UV *= vec2(3.0, 2.0)[/code] in a vertex shader.\n"
+"[b]Note:[/b] When using a large textured [BoxMesh] (e.g. as a floor), you may "
+"stumble upon UV jittering issues depending on the camera angle. To solve "
+"this, increase [member subdivide_depth], [member subdivide_height] and "
+"[member subdivide_width] until you no longer notice UV jittering."
+msgstr ""
+"生成軸對齊盒 [PrimitiveMesh]。\n"
+"這個盒子的 UV 佈局是以 3×2 的方式排列的,允許單獨對每個面進行貼圖。要在所有的"
+"面上套用相同的紋理,請將材質的 UV 屬性改為 [code]Vector3(3, 2, 1)[/code]。這樣"
+"做等價於在頂點著色器中新增 [code]UV *= vec2(3.0, 2.0)[/code]。\n"
+"[b]注意:[/b]當使用很大且有紋理的 [BoxMesh] 時(例如作為地板),你可能會發現 "
+"UV 偶爾抖動的問題,這取決於相機的角度。要解決此問題,請增加 [member "
+"subdivide_depth]、[member subdivide_height] 和 [member subdivide_width],直到"
+"你不再注意到 UV 抖動。"
+
+msgid "The box's width, height and depth."
+msgstr "該盒子的寬度、高度和深度。"
+
+msgid "Number of extra edge loops inserted along the Z axis."
+msgstr "沿 Z 軸插入的額外邊緣環的數量。"
+
+msgid "Number of extra edge loops inserted along the Y axis."
+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 "A 3D box shape used for physics collision."
+msgstr "用於物理碰撞的 3D 盒形資源。"
+
+msgid ""
+"A 3D box shape, intended for use in physics. Usually used to provide a shape "
+"for a [CollisionShape3D].\n"
+"[b]Performance:[/b] [BoxShape3D] is fast to check collisions against. It is "
+"faster than [CapsuleShape3D] and [CylinderShape3D], but slower than "
+"[SphereShape3D]."
+msgstr ""
+"3D 盒子形狀,旨在用於物理學。通常用於為 [CollisionShape3D] 提供形狀。\n"
+"[b]性能:[/b][BoxShape3D] 可以快速偵測碰撞,比 [CapsuleShape3D] 和 "
+"[CylinderShape3D] 快,但比 [SphereShape3D] 慢。"
+
+msgid "3D Kinematic Character Demo"
+msgstr "3D 動力學角色演示"
+
+msgid "A themed button that can contain text and an icon."
+msgstr "按鈕,支援主題,能夠包含文字和圖示。"
+
+msgid ""
+"[Button] is the standard themed button. It can contain text and an icon, and "
+"it will display them according to the current [Theme].\n"
+"[b]Example of creating a button and assigning an action when pressed by code:"
+"[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _ready():\n"
+" var button = Button.new()\n"
+" button.text = \"Click me\"\n"
+" button.pressed.connect(self._button_pressed)\n"
+" add_child(button)\n"
+"\n"
+"func _button_pressed():\n"
+" print(\"Hello world!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override void _Ready()\n"
+"{\n"
+" var button = new Button();\n"
+" button.Text = \"Click me\";\n"
+" button.Pressed += ButtonPressed;\n"
+" AddChild(button);\n"
+"}\n"
+"\n"
+"private void ButtonPressed()\n"
+"{\n"
+" GD.Print(\"Hello world!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"See also [BaseButton] which contains common properties and methods associated "
+"with this node.\n"
+"[b]Note:[/b] Buttons do not interpret touch input and therefore don't support "
+"multitouch, since mouse emulation can only press one button at a given time. "
+"Use [TouchScreenButton] for buttons that trigger gameplay movement or actions."
+msgstr ""
+"[Button] 是標準的主題按鈕,可以包含文字和圖示,顯示樣式會根據目前的 [Theme] 改"
+"變。\n"
+"[b]範例:通過程式碼建立按鈕並指定在按下時的動作[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _ready():\n"
+" var button = Button.new()\n"
+" button.text = \"Click me\"\n"
+" button.pressed.connect(self._button_pressed)\n"
+" add_child(button)\n"
+"\n"
+"func _button_pressed():\n"
+" print(\"Hello world!\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override void _Ready()\n"
+"{\n"
+" var button = new Button();\n"
+" button.Text = \"Click me\";\n"
+" button.Pressed += ButtonPressed;\n"
+" AddChild(button);\n"
+"}\n"
+"\n"
+"private void ButtonPressed()\n"
+"{\n"
+" GD.Print(\"Hello world!\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"另請參閱 [BaseButton],其中包含與此節點相關聯的通用屬性和方法。\n"
+"[b]注意:[/b]按鈕不處理觸摸輸入,因此不支援多點觸控,因為類比滑鼠在給定時間只"
+"能按下一個按鈕。請用 [TouchScreenButton] 製作觸發遊戲移動或動作的按鈕。"
+
+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 text."
+msgstr ""
+"當此屬性被啟用時,過大而無法容納按鈕的文字會被剪掉,當被禁用時,按鈕將始終有足"
+"夠的寬度來容納文字。"
+
+msgid ""
+"When enabled, the button's icon will expand/shrink to fit the button's size "
+"while keeping its aspect. See also [theme_item icon_max_width]."
+msgstr ""
+"啟用後,將在保持按鈕圖示長寬比的前提下對該圖示進行擴充/收縮,從而適應按鈕的大"
+"小。另見 [theme_item icon_max_width]。"
+
+msgid "Flat buttons don't display decoration."
+msgstr "平面按鈕不顯示裝飾。"
+
+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 horizontally to the left, right, or "
+"center of a button. Uses the same [enum HorizontalAlignment] constants as the "
+"text alignment. If centered horizontally and vertically, text will draw on "
+"top of the icon."
+msgstr ""
+"指定圖示在按鈕上水平對齊的方式應該為左對齊、右對齊還是居中對齊。請使用與文字對"
+"齊相同的 [enum HorizontalAlignment] 常數。如果水平居中並且垂直居中,則文字將被"
+"繪製在圖示之上。"
+
+msgid ""
+"Language code used for line-breaking and text shaping algorithms, if left "
+"empty current locale is used instead."
+msgstr "語言程式碼,用於斷行和文字塑形演算法,如果留空則使用目前區域設定。"
+
+msgid "The button's text that will be displayed inside the button's area."
+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 ""
+"Specifies if the icon should be aligned vertically to the top, bottom, or "
+"center of a button. Uses the same [enum VerticalAlignment] constants as the "
+"text alignment. If centered horizontally and vertically, text will draw on "
+"top of the icon."
+msgstr ""
+"指定圖示在按鈕上垂直對齊的方式應該為頂端對齊、底部對齊還是居中對齊。請使用與文"
+"字對齊相同的 [enum VerticalAlignment] 常數。如果水平居中並且垂直居中,則文本將"
+"被繪製在圖示之上。"
+
+msgid "Default text [Color] of the [Button]."
+msgstr "該 [Button] 的預設文字 [Color]。"
+
+msgid "Text [Color] used when the [Button] is disabled."
+msgstr "該 [Button] 處於禁用狀態時,使用的文字 [Color]。"
+
+msgid ""
+"Text [Color] used when the [Button] is focused. Only replaces the normal text "
+"color of the button. Disabled, hovered, and pressed states take precedence "
+"over this color."
+msgstr ""
+"該 [Button] 處於聚焦狀態時,使用的文字 [Color]。只替換該按鈕的正常文字顏色。禁"
+"用、懸停、按下狀態優先於這個顏色。"
+
+msgid "Text [Color] used when the [Button] is being hovered."
+msgstr "該 [Button] 處於懸停狀態時,使用的文字 [Color]。"
+
+msgid "Text [Color] used when the [Button] is being hovered and pressed."
+msgstr "該 [Button] 處於懸停並按下狀態時,使用的文字 [Color]。"
+
+msgid "The tint of text outline of the [Button]."
+msgstr "該 [Button] 的文字輪廓的色調。"
+
+msgid "Text [Color] used when the [Button] is being pressed."
+msgstr "該 [Button] 處於按下狀態時,使用的文字 [Color] 。"
+
+msgid "Icon modulate [Color] used when the [Button] is disabled."
+msgstr "該 [Button] 處於禁用狀態時,使用的圖示調變 [Color]。"
+
+msgid ""
+"Icon modulate [Color] used when the [Button] is focused. Only replaces the "
+"normal modulate color of the button. Disabled, hovered, and pressed states "
+"take precedence over this color."
+msgstr ""
+"該 [Button] 處於聚焦狀態時,使用的圖示調變 [Color]。僅替換該按鈕的正常調變顏"
+"色。禁用、懸停和按下狀態優先於這個顏色。"
+
+msgid "Icon modulate [Color] used when the [Button] is being hovered."
+msgstr "該 [Button] 處於懸停狀態時,使用的圖示調變[Color]。"
+
+msgid ""
+"Icon modulate [Color] used when the [Button] is being hovered and pressed."
+msgstr "該 [Button] 處於懸停並按下按下狀態時,使用的圖示調變 [Color]。"
+
+msgid "Default icon modulate [Color] of the [Button]."
+msgstr "該 [Button] 的預設圖示調變 [Color]。"
+
+msgid "Icon modulate [Color] used when the [Button] is being pressed."
+msgstr "該 [Button] 處於按下狀態時,使用的圖示調變 [Color]。"
+
+msgid ""
+"The horizontal space between [Button]'s icon and text. Negative values will "
+"be treated as [code]0[/code] when used."
+msgstr ""
+"[Button] 的圖示和文字之間的水平間距。使用時會將負值當作 [code]0[/code]。"
+
+msgid ""
+"The maximum allowed width of the [Button]'s icon. This limit is applied on "
+"top of the default size of the icon, or its expanded size if [member "
+"expand_icon] is [code]true[/code]. The height is adjusted according to the "
+"icon's ratio."
+msgstr ""
+"[Button] 圖示的最大允許寬度。如果 [member expand_icon] 為 [code]true[/code],"
+"則該限制適用於圖示的預設大小或擴充大小。高度將根據圖示的比例進行調整。"
+
+msgid ""
+"The size of the text outline.\n"
+"[b]Note:[/b] If using a font with [member FontFile."
+"multichannel_signed_distance_field] enabled, its [member FontFile."
+"msdf_pixel_range] must be set to at least [i]twice[/i] the value of "
+"[theme_item outline_size] for outline rendering to look correct. Otherwise, "
+"the outline may appear to be cut off earlier than intended."
+msgstr ""
+"文字輪廓的大小。\n"
+"[b]注意:[/b]如果使用啟用了 [member FontFile."
+"multichannel_signed_distance_field] 的字形,其 [member FontFile."
+"msdf_pixel_range] 必須至少設定為 [theme_item outline_size] 的[i]兩倍[/i],輪廓"
+"渲染才能看起來正確。否則,輪廓可能會比預期的更早被切斷。"
+
+msgid "[Font] of the [Button]'s text."
+msgstr "該 [Button] 文字的 [Font]。"
+
+msgid "Font size of the [Button]'s text."
+msgstr "該 [Button] 文字的字形大小。"
+
+msgid "[StyleBox] used when the [Button] is disabled."
+msgstr "該 [Button] 處於禁用狀態時使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the [Button] is disabled (for right-to-left layouts)."
+msgstr "該 [OptionButton] 處於禁用狀態時使用的 [StyleBox](用於從右至左佈局)。"
+
+msgid "[StyleBox] used when the [Button] is being hovered."
+msgstr "該 [Button] 處於懸停狀態時使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being hovered (for right-to-left "
+"layouts)."
+msgstr "該 [OptionButton] 處於懸停狀態時使用的 [StyleBox](用於從右至左佈局)。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being pressed and hovered at the same "
+"time."
+msgstr "該 [Button] 處於按下狀態時使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being pressed and hovered at the same "
+"time (for right-to-left layouts)."
+msgstr "該 [OptionButton] 處於按下狀態時使用的 [StyleBox](用於從右至左佈局)。"
+
+msgid "Default [StyleBox] for the [Button]."
+msgstr "該 [Button] 的預設 [StyleBox]。"
+
+msgid "Default [StyleBox] for the [Button] (for right-to-left layouts)."
+msgstr "該 [OptionButton] 的預設 [StyleBox](用於從右至左佈局)。"
+
+msgid "[StyleBox] used when the [Button] is being pressed."
+msgstr "該 [Button] 處於按下狀態時使用的 [StyleBox]。"
+
+msgid ""
+"[StyleBox] used when the [Button] is being pressed (for right-to-left "
+"layouts)."
+msgstr "該 [OptionButton] 處於按下狀態時使用的 [StyleBox](用於從右至左佈局)。"
+
+msgid ""
+"A group of buttons that doesn't allow more than one button to be pressed at a "
+"time."
+msgstr "不允許同時按下多個按鈕的按鈕的一個群組。"
+
+msgid ""
+"A group of [BaseButton]-derived buttons. The buttons in a [ButtonGroup] are "
+"treated like radio buttons: No more than one button can be pressed at a time. "
+"Some types of buttons (such as [CheckBox]) may have a special appearance in "
+"this state.\n"
+"Every member of a [ButtonGroup] should have [member BaseButton.toggle_mode] "
+"set to [code]true[/code]."
+msgstr ""
+"[BaseButton] 衍生按鈕的群組。[ButtonGroup] 中的按鈕被視為選項按鈕:同一時間最"
+"多只能按下一個按鈕。某些型別的按鈕(例如 [CheckBox])在該狀態下可能會有特殊的"
+"外觀。\n"
+"[ButtonGroup] 的每個成員都應該將 [member BaseButton.toggle_mode] 設定為 "
+"[code]true[/code]。"
+
+msgid ""
+"Returns an [Array] of [Button]s who have this as their [ButtonGroup] (see "
+"[member BaseButton.button_group])."
+msgstr ""
+"返回元素型別為 [Button] 的 [Array],這些 [Button] 將其作為 [ButtonGroup](見 "
+"[member BaseButton.button_group])。"
+
+msgid "Returns the current pressed button."
+msgstr "返回目前按下的按鈕。"
+
+msgid ""
+"If [code]true[/code], it is possible to unpress all buttons in this "
+"[ButtonGroup]."
+msgstr "如果為 [code]true[/code],則可以取消按下該 [ButtonGroup] 中的所有按鈕。"
+
+msgid "Emitted when one of the buttons of the group is pressed."
+msgstr "當該組中的某個按鈕被按下時發出。"
+
+msgid "A built-in type representing a method or a standalone function."
+msgstr "代表一個方法或一個獨立函式的內建型別。"
+
+msgid ""
+"[Callable] is a built-in [Variant] type that represents a function. It can "
+"either be a method within an [Object] instance, or a standalone function not "
+"related to any object, like a lambda function. Like all [Variant] types, it "
+"can be stored in variables and passed to other functions. It is most commonly "
+"used for signal callbacks.\n"
+"[b]Example:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func print_args(arg1, arg2, arg3 = \"\"):\n"
+" prints(arg1, arg2, arg3)\n"
+"\n"
+"func test():\n"
+" var callable = Callable(self, \"print_args\")\n"
+" callable.call(\"hello\", \"world\") # Prints \"hello world \".\n"
+" callable.call(Vector2.UP, 42, callable) # Prints \"(0, -1) 42 Node(node."
+"gd)::print_args\".\n"
+" callable.call(\"invalid\") # Invalid call, should have at least 2 "
+"arguments.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// Default parameter values are not supported.\n"
+"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = default)\n"
+"{\n"
+" GD.PrintS(arg1, arg2, arg3);\n"
+"}\n"
+"\n"
+"public void Test()\n"
+"{\n"
+" // Invalid calls fail silently.\n"
+" Callable callable = new Callable(this, MethodName.PrintArgs);\n"
+" callable.Call(\"hello\", \"world\"); // Default parameter values are not "
+"supported, should have 3 arguments.\n"
+" callable.Call(Vector2.Up, 42, callable); // Prints \"(0, -1) 42 Node(Node."
+"cs)::PrintArgs\".\n"
+" callable.Call(\"invalid\"); // Invalid call, should have 3 arguments.\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"In GDScript, it's possible to create lambda functions within a method. Lambda "
+"functions are custom callables that are not associated with an [Object] "
+"instance. Optionally, lambda functions can also be named. The name will be "
+"displayed in the debugger, or when calling [method get_method].\n"
+"[codeblock]\n"
+"func _init():\n"
+" var my_lambda = func (message):\n"
+" print(message)\n"
+"\n"
+" # Prints Hello everyone!\n"
+" my_lambda.call(\"Hello everyone!\")\n"
+"\n"
+" # Prints \"Attack!\", when the button_pressed signal is emitted.\n"
+" button_pressed.connect(func(): print(\"Attack!\"))\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Methods of native types such as [Signal], [Array], or "
+"[Dictionary] are not of type [Callable] in order to avoid unnecessary "
+"overhead. If you need to pass those methods as [Callable], use a lambda "
+"function as a wrapper.\n"
+"[codeblock]\n"
+"func _init():\n"
+" var my_dictionary = { \"hello\": \"world\" }\n"
+"\n"
+" # This will not work, `clear` is not a callable.\n"
+" create_tween().tween_callback(my_dictionary.clear)\n"
+"\n"
+" # This will work, as lambdas are custom callables.\n"
+" create_tween().tween_callback(func(): my_dictionary.clear())\n"
+"[/codeblock]"
+msgstr ""
+"可呼叫體 [Callable] 是內建的 [Variant] 型別,代表某個函式。可以是 [Object] 實"
+"例中的某個方法,也可以是與物件無關的獨立函式,比如 lambda 函式。和所有 "
+"[Variant] 型別一樣可以保存在變數裡,傳遞給其他函式。最常用於訊號回呼函式。\n"
+"[b]範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func print_args(arg1, arg2, arg3 = \"\"):\n"
+" prints(arg1, arg2, arg3)\n"
+"\n"
+"func test():\n"
+" var callable = Callable(self, \"print_args\")\n"
+" callable.call(\"hello\", \"world\") # 輸出 \"hello world \".\n"
+" callable.call(Vector2.UP, 42, callable) # 輸出 \"(0, -1) 42 Node(node."
+"gd)::print_args\".\n"
+" callable.call(\"invalid\") # 無效呼叫,應當至少有 2 個參數。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 不支援參數預設值。\n"
+"public void PrintArgs(Variant arg1, Variant arg2, Variant arg3 = default)\n"
+"{\n"
+" GD.PrintS(arg1, arg2, arg3);\n"
+"}\n"
+"\n"
+"public void Test()\n"
+"{\n"
+" // Invalid calls fail silently.\n"
+" Callable callable = new Callable(this, MethodName.PrintArgs);\n"
+" callable.Call(\"hello\", \"world\"); // 不支援參數預設值,應當有 3 個參"
+"數。\n"
+" callable.Call(Vector2.Up, 42, callable); // 輸出 \"(0, -1) 42 Node(Node."
+"cs)::PrintArgs\".\n"
+" callable.Call(\"invalid\"); // 無效呼叫,應當有 3 個參數。\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"GDScript 中可以在方法裡建立 lambda 函式。Lambda 函式是自訂的可呼叫體,不與 "
+"[Object] 實例關聯。也可以為 Lambda 函式命名。該名稱會顯示在除錯器中,也會在 "
+"[method get_method] 中使用。\n"
+"[codeblock]\n"
+"func _init():\n"
+" var my_lambda = func (message):\n"
+" print(message)\n"
+"\n"
+" # 輸出 大家好呀!\n"
+" my_lambda.call(\"大家好呀!\")\n"
+"\n"
+" # 發出 button_pressed 訊號時輸出 \"全軍出擊!\"。\n"
+" button_pressed.connect(func(): print(\"全軍出擊!\"))\n"
+"[/codeblock]\n"
+"[b]注意:[/b][Signal]、[Array]、[Dictionary] 等原生型別的方法不是 [Callable] "
+"型別,這是為了避免不必要的開銷。如果你需要將這些方法作為 [Callable] 傳遞,請使"
+"用 Lambda 函式進行封裝。\n"
+"[codeblock]\n"
+"func _init():\n"
+" var my_dictionary = { \"hello\": \"world\" }\n"
+"\n"
+" # 不可行,因為`clear` 不是可呼叫體。\n"
+" create_tween().tween_callback(my_dictionary.clear)\n"
+"\n"
+" # 可行,因為 Lambda 是自訂可呼叫體。\n"
+" create_tween().tween_callback(func(): my_dictionary.clear())\n"
+"[/codeblock]"
+
+msgid "Constructs an empty [Callable], with no object nor method bound."
+msgstr "建構空的 [Callable],沒有綁定物件和方法。"
+
+msgid "Constructs a [Callable] as a copy of the given [Callable]."
+msgstr "建構給定 [Callable] 的副本。"
+
+msgid ""
+"Creates a new [Callable] for the method named [param method] in the specified "
+"[param object]."
+msgstr ""
+"建立新的 [Callable],使用指定物件 [param object] 中名為 [param method] 的方"
+"法。"
+
+msgid ""
+"Returns a copy of this [Callable] with one or more arguments bound. When "
+"called, the bound arguments are passed [i]after[/i] the arguments supplied by "
+"[method call]. See also [method unbind].\n"
+"[b]Note:[/b] When this method is chained with other similar methods, the "
+"order in which the argument list is modified is read from right to left."
+msgstr ""
+"返回該 [Callable] 的副本,綁定其中的一個或多個參數。呼叫時,被綁定的參數在提供"
+"給 [method call] 的參數[i]之後[/i]傳遞。另見 [method unbind]。\n"
+"[b]注意:[/b]這個方法與其他類似方法鏈式呼叫時,參數列表的修改順序是從右至左"
+"的。"
+
+msgid ""
+"Returns a copy of this [Callable] with one or more arguments bound, reading "
+"them from an array. When called, the bound arguments are passed [i]after[/i] "
+"the arguments supplied by [method call]. See also [method unbind].\n"
+"[b]Note:[/b] When this method is chained with other similar methods, the "
+"order in which the argument list is modified is read from right to left."
+msgstr ""
+"返回該 [Callable] 的副本,綁定其中的一個或多個參數,參數從陣列中讀取。呼叫時,"
+"被綁定的參數在提供給 [method call] 的參數[i]之後[/i]傳遞。另見 [method "
+"unbind]。\n"
+"[b]注意:[/b]這個方法與其他類似方法鏈式呼叫時,參數列表的修改順序是從右至左"
+"的。"
+
+msgid ""
+"Calls the method represented by this [Callable]. Arguments can be passed and "
+"should match the method's signature."
+msgstr ""
+"呼叫該 [Callable] 所代表的方法。可以傳遞參數,必須與該方法的簽章相配對。"
+
+msgid ""
+"Calls the method represented by this [Callable] in deferred mode, i.e. at the "
+"end of the current frame. Arguments can be passed and should match the "
+"method's signature.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" grab_focus.call_deferred()\n"
+"[/codeblock]\n"
+"See also [method Object.call_deferred]."
+msgstr ""
+"使用延遲模式呼叫該 [Callable] 所代表的方法,即在目前影格的末尾呼叫。可以傳遞參"
+"數,必須與該方法的簽章相配對。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" grab_focus.call_deferred()\n"
+"[/codeblock]\n"
+"另見 [method Object.call_deferred]。"
+
+msgid ""
+"Calls the method represented by this [Callable]. Unlike [method call], this "
+"method expects all arguments to be contained inside the [param arguments] "
+"[Array]."
+msgstr ""
+"呼叫該 [Callable] 所代表的方法。與 [method call] 不同,這個方法需要所有參數都"
+"放在 [param arguments] [Array] 之中。"
+
+msgid ""
+"Return the bound arguments (as long as [method get_bound_arguments_count] is "
+"greater than zero), or empty (if [method get_bound_arguments_count] is less "
+"than or equal to zero)."
+msgstr ""
+"返回綁定的參數(只要 [method get_bound_arguments_count] 大於零)或者空陣列(如"
+"果 [method get_bound_arguments_count] 小於等於零)。"
+
+msgid ""
+"Returns the total amount of arguments bound (or unbound) via successive "
+"[method bind] or [method unbind] calls. If the amount of arguments unbound is "
+"greater than the ones bound, this function returns a value less than zero."
+msgstr ""
+"返回通過成功呼叫 [method bind] 或 [method unbind] 綁定(或解綁)參數的總數。如"
+"果解綁參數的總數比綁定參數大,則這個函式的返回值小於零。"
+
+msgid ""
+"Returns the name of the method represented by this [Callable]. If the "
+"callable is a GDScript lambda function, returns the function's name or "
+"[code]\"\"[/code]."
+msgstr ""
+"返回該 [Callable] 所代表的方法的名稱。如果該可呼叫體是 lambda 函式,則返回該函"
+"式的名稱。"
+
+msgid "Returns the object on which this [Callable] is called."
+msgstr "返回該 [Callable] 所呼叫的物件。"
+
+msgid ""
+"Returns the ID of this [Callable]'s object (see [method Object."
+"get_instance_id])."
+msgstr "返回該 [Callable] 中對象的 ID(見 [method Object.get_instance_id])。"
+
+msgid ""
+"Returns the 32-bit hash value of this [Callable]'s object.\n"
+"[b]Note:[/b] [Callable]s with equal content will always produce identical "
+"hash values. However, the reverse is not true. Returning identical hash "
+"values does [i]not[/i] imply the callables are equal, because different "
+"callables can have identical hash values due to hash collisions. The engine "
+"uses a 32-bit hash algorithm for [method hash]."
+msgstr ""
+"返回該 [Callable] 對象的 32 位元雜湊值。\n"
+"[b]注意:[/b]內容相同的 [Callable] 雜湊值始終相同。反之則不然,返回的雜湊值相"
+"同[i]並不[/i]意味著可呼叫體相等,因為不同的可呼叫體可能由於雜湊衝突而具有相同"
+"的雜湊值。引擎在 [method hash] 中使用 32 位雜湊演算法。"
+
+msgid ""
+"Returns [code]true[/code] if this [Callable] is a custom callable. Custom "
+"callables are created from [method bind] or [method unbind]. In GDScript, "
+"lambda functions are also custom callables."
+msgstr ""
+"如果該 [Callable] 為自訂可呼叫體,則返回 [code]true[/code]。自訂可呼叫體是由 "
+"[method bind] 或 [method unbind] 建立的。在 GDScript 中,lambda 函式也是自訂可"
+"呼叫體。"
+
+msgid ""
+"Returns [code]true[/code] if this [Callable] has no target to call the method "
+"on."
+msgstr "如果該 [Callable] 沒有呼叫方法的目標,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if this [Callable] is a standard callable. This "
+"method is the opposite of [method is_custom]. Returns [code]false[/code] if "
+"this callable is a lambda function."
+msgstr ""
+"如果該 [Callable] 為標準可呼叫體,則返回 [code]true[/code]。這個方法與 "
+"[method is_custom] 相對。如果該可呼叫體為 lambda 函式,則返回 [code]false[/"
+"code]。"
+
+msgid ""
+"Returns [code]true[/code] if the callable's object exists and has a valid "
+"method name assigned, or is a custom callable."
+msgstr ""
+"如果該可呼叫體的物件存在,且分配了有效的方法名,或者為自訂可呼叫體,則返回 "
+"[code]true[/code]。"
+
+msgid ""
+"Perform an RPC (Remote Procedure Call) on all connected peers. This is used "
+"for multiplayer and is normally not available, unless the function being "
+"called has been marked as [i]RPC[/i] (using [annotation @GDScript.@rpc] or "
+"[method Node.rpc_config]). Calling this method on unsupported functions will "
+"result in an error. See [method Node.rpc]."
+msgstr ""
+"在所有已連接的對等體上執行 RPC(Remote Procedure Call,遠端程式呼叫)。用於多"
+"人遊戲,一般不可用,除非所呼叫的函式有 [i]RPC[/i] 標記(使用 [annotation "
+"@GDScript.@rpc] 或 [method Node.rpc_config])。在不支援的方法上呼叫該方法會導"
+"致出錯。見 [method Node.rpc]。"
+
+msgid ""
+"Perform an RPC (Remote Procedure Call) on a specific peer ID (see multiplayer "
+"documentation for reference). This is used for multiplayer and is normally "
+"not available unless the function being called has been marked as [i]RPC[/i] "
+"(using [annotation @GDScript.@rpc] or [method Node.rpc_config]). Calling this "
+"method on unsupported functions will result in an error. See [method Node."
+"rpc_id]."
+msgstr ""
+"在指定的對等體 ID(請參閱多人遊戲文件)上執行 RPC(Remote Procedure Call,遠程"
+"程式呼叫)。用於多人遊戲,一般不可用,除非所呼叫的函式有 [i]RPC[/i] 標記(使"
+"用 [annotation @GDScript.@rpc] 或 [method Node.rpc_config])。在不支援的方法上"
+"呼叫該方法會導致出錯。見 [method Node.rpc_id]。"
+
+msgid ""
+"Returns a copy of this [Callable] with a number of arguments unbound. In "
+"other words, when the new callable is called the last few arguments supplied "
+"by the user are ignored, according to [param argcount]. The remaining "
+"arguments are passed to the callable. This allows to use the original "
+"callable in a context that attempts to pass more arguments than this callable "
+"can handle, e.g. a signal with a fixed number of arguments. See also [method "
+"bind].\n"
+"[b]Note:[/b] When this method is chained with other similar methods, the "
+"order in which the argument list is modified is read from right to left.\n"
+"[codeblock]\n"
+"func _ready():\n"
+" foo.unbind(1).call(1, 2) # Calls foo(1).\n"
+" foo.bind(3, 4).unbind(1).call(1, 2) # Calls foo(1, 3, 4), note that it "
+"does not change the arguments from bind.\n"
+"[/codeblock]"
+msgstr ""
+"返回這個 [Callable] 的副本,解綁了一些參數。換句話說,呼叫新的可呼叫體時,用戶"
+"提供的最後幾個參數會被忽略,忽略幾個由 [param argcount] 決定。剩餘的參數會被傳"
+"遞給該可呼叫體。這樣傳入的參數就能夠比原本可呼叫體所能處理的參數要多,例如帶有"
+"固定數量參數的訊號。另見 [method bind]。\n"
+"[b]注意:[/b]這個方法與其他類似方法鏈式呼叫時,參數列表的修改順序是從右至左"
+"的。\n"
+"[codeblock]\n"
+"func _ready():\n"
+" foo.unbind(1).call(1, 2) # 呼叫 foo(1).\n"
+" foo.bind(3, 4).unbind(1).call(1, 2) # 呼叫 foo(1, 3, 4),注意改動的不是 "
+"bind 中的參數。\n"
+"[/codeblock]"
+
+msgid "Returns [code]true[/code] if both [Callable]s invoke different targets."
+msgstr "如果兩個 [Callable] 呼叫的目標不同,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if both [Callable]s invoke the same custom target."
+msgstr "如果兩個 [Callable] 呼叫的自訂目標相同,則返回 [code]true[/code]。"
+
+msgid "Calls the specified method after optional delay."
+msgstr "在可選的延遲之後呼叫指定的方法。"
+
+msgid ""
+"[CallbackTweener] is used to call a method in a tweening sequence. See "
+"[method Tween.tween_callback] for more usage information.\n"
+"The tweener will finish automatically if the callback's target object is "
+"freed.\n"
+"[b]Note:[/b] [method Tween.tween_callback] is the only correct way to create "
+"[CallbackTweener]. Any [CallbackTweener] created manually will not function "
+"correctly."
+msgstr ""
+"[CallbackTweener] 可用於在補間序列中呼叫方法。更多用法資訊請參閱 [method "
+"Tween.tween_callback]。\n"
+"[b]注意:[/b]建立 [CallbackTweener] 的唯一正確方法是 [method Tween."
+"tween_callback]。任何手動建立的 [CallbackTweener] 都無法正常工作。"
+
+msgid ""
+"Makes the callback call delayed by given time in seconds.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"var tween = get_tree().create_tween()\n"
+"tween.tween_callback(queue_free).set_delay(2) #this will call queue_free() "
+"after 2 seconds\n"
+"[/codeblock]"
+msgstr ""
+"讓該回呼函式延遲給定的時間,單位為秒。\n"
+"[b]範例:[/b]\n"
+"[codeblock]\n"
+"var tween = get_tree().create_tween()\n"
+"tween.tween_callback(queue_free).set_delay(2) # 會在 2 秒後呼叫 queue_free()\n"
+"[/codeblock]"
+
+msgid "Camera node for 2D scenes."
+msgstr "2D 場景的相機節點。"
+
+msgid ""
+"Camera node for 2D scenes. It forces the screen (current layer) to scroll "
+"following this node. This makes it easier (and faster) to program scrollable "
+"scenes than manually changing the position of [CanvasItem]-based nodes.\n"
+"Cameras register themselves in the nearest [Viewport] node (when ascending "
+"the tree). Only one camera can be active per viewport. If no viewport is "
+"available ascending the tree, the camera will register in the global "
+"viewport.\n"
+"This node is intended to be a simple helper to get things going quickly, but "
+"more functionality may be desired to change how the camera works. To make "
+"your own custom camera node, inherit it from [Node2D] and change the "
+"transform of the canvas by setting [member Viewport.canvas_transform] in "
+"[Viewport] (you can obtain the current [Viewport] by using [method Node."
+"get_viewport]).\n"
+"Note that the [Camera2D] node's [code]position[/code] doesn't represent the "
+"actual position of the screen, which may differ due to applied smoothing or "
+"limits. You can use [method get_screen_center_position] to get the real "
+"position."
+msgstr ""
+"用於 2D 場景的相機節點。它強制螢幕(目前層)跟隨該節點滾動。與手動改變基於 "
+"[CanvasItem] 節點的座標相比,這使得對可滾動場景進行程式設計更加容易和快捷。\n"
+"相機會在最近的 [Viewport](在上層樹時)節點中註冊自己。每個視口只能啟動一個相"
+"機。如果樹上沒有可用的視口,相機將在全域視口中註冊。\n"
+"這個節點旨在成為簡單的輔助工具,讓事情便捷,但可能需要更多的功能來改變相機的工"
+"作方式。要製作自訂相機節點,則從 [Node2D] 繼承,並通過設定 [Viewport] 中的 "
+"[member Viewport.canvas_transform] 來改變畫布的變換(你可以通過使用 [method "
+"Node.get_viewport] 獲得目前的 [Viewport])。\n"
+"請注意,[Camera2D] 節點的 [code]position[/code] 並不代表螢幕的實際位置,這可能"
+"會因套用的平滑或限制而有所不同。可以使用 [method get_screen_center_position] "
+"獲取真實位置。"
+
+msgid "2D Isometric Demo"
+msgstr "2D 等軸演示"
+
+msgid "2D HDR Demo"
+msgstr "2D HDR 演示"
+
+msgid "Aligns the camera to the tracked node."
+msgstr "將相機與追蹤的節點對齊。"
+
+msgid "Forces the camera to update scroll immediately."
+msgstr "強制相機立即更新滾動。"
+
+msgid ""
+"Returns the specified [enum Side]'s margin. See also [member "
+"drag_bottom_margin], [member drag_top_margin], [member drag_left_margin], and "
+"[member drag_right_margin]."
+msgstr ""
+"返回指定邊 [enum Side] 的邊距。另見 [member drag_bottom_margin]、[member "
+"drag_top_margin]、[member drag_left_margin] 和 [member drag_right_margin]。"
+
+msgid ""
+"Returns the camera limit for the specified [enum Side]. See also [member "
+"limit_bottom], [member limit_top], [member limit_left], and [member "
+"limit_right]."
+msgstr ""
+"返回指定邊 [enum Side] 的相機極限。另見 [member limit_bottom]、[member "
+"limit_top]、[member limit_left] 和 [member limit_right]。"
+
+msgid ""
+"Returns the center of the screen from this camera's point of view, in global "
+"coordinates.\n"
+"[b]Note:[/b] The exact targeted position of the camera may be different. See "
+"[method get_target_position]."
+msgstr ""
+"返回該 [Camera2D] 視角下的螢幕中心位置,使用全域座標。\n"
+"[b]注意:[/b]相機實際的目標位置可能與此不同。見 [method get_target_position]。"
+
+msgid ""
+"Returns this camera's target position, in global coordinates.\n"
+"[b]Note:[/b] The returned value is not the same as [member Node2D."
+"global_position], as it is affected by the drag properties. It is also not "
+"the same as the current position if [member position_smoothing_enabled] is "
+"[code]true[/code] (see [method get_screen_center_position])."
+msgstr ""
+"返回該相機的目標位置,使用全域座標。\n"
+"[b]注意:[/b]返回值與 [member Node2D.global_position] 不同,因為會受到拖動屬性"
+"的影響。如果 [member position_smoothing_enabled] 為 [code]true[/code] ,也不等"
+"同於目前位置(見 [method get_screen_center_position])。"
+
+msgid ""
+"Returns [code]true[/code] if this [Camera2D] is the active camera (see "
+"[method Viewport.get_camera_2d])."
+msgstr ""
+"如果該 [Camera2D] 為活動相機,則返回 [code]true[/code](見 [method Viewport."
+"get_camera_2d])。"
+
+msgid ""
+"Forces this [Camera2D] to become the current active one. [member enabled] "
+"must be [code]true[/code]."
+msgstr ""
+"強制該 [Camera2D] 成為目前的活動相機。[member enabled] 必須為 [code]true[/"
+"code]。"
+
+msgid ""
+"Sets the camera's position immediately to its current smoothing destination.\n"
+"This method has no effect if [member position_smoothing_enabled] is "
+"[code]false[/code]."
+msgstr ""
+"將相機的位置立即設定為其目前平滑的目標位置。\n"
+"當 [member position_smoothing_enabled] 為 [code]false[/code] 時,本方法無效。"
+
+msgid ""
+"Sets the specified [enum Side]'s margin. See also [member "
+"drag_bottom_margin], [member drag_top_margin], [member drag_left_margin], and "
+"[member drag_right_margin]."
+msgstr ""
+"設定指定邊 [enum Side] 的邊距。另見 [member drag_bottom_margin]、[member "
+"drag_top_margin]、[member drag_left_margin] 和 [member drag_right_margin]。"
+
+msgid ""
+"Sets the camera limit for the specified [enum Side]. See also [member "
+"limit_bottom], [member limit_top], [member limit_left], and [member "
+"limit_right]."
+msgstr ""
+"設定指定邊 [enum Side] 的相機極限。另見 [member limit_bottom]、[member "
+"limit_top]、[member limit_left] 和 [member limit_right]。"
+
+msgid "The Camera2D's anchor point. See [enum AnchorMode] constants."
+msgstr "Camera2D 的錨點。見 [enum AnchorMode] 常數。"
+
+msgid ""
+"The custom [Viewport] node attached to the [Camera2D]. If [code]null[/code] "
+"or not a [Viewport], uses the default viewport instead."
+msgstr ""
+"連接到 [Camera2D] 的自訂 [Viewport] 節點。如果為 [code]null[/code] 或者不是 "
+"[Viewport],則使用預設的視口。"
+
+msgid ""
+"Bottom margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the bottom edge of the screen."
+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."
+msgstr ""
+"拖動相機所需的左邊距。值為 [code]1[/code] 時,相機僅在到達螢幕左側邊緣時移動。"
+
+msgid ""
+"Right margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the right edge of the screen."
+msgstr ""
+"拖動相機所需的右邊距。值為 [code]1[/code] 時,相機僅在到達螢幕右側邊緣時移動。"
+
+msgid ""
+"Top margin needed to drag the camera. A value of [code]1[/code] makes the "
+"camera move only when reaching the top edge of the screen."
+msgstr ""
+"拖動相機所需的上邊距。值為 [code]1[/code] 時,相機僅在到達螢幕頂部邊緣時移動。"
+
+msgid ""
+"If [code]true[/code], the camera only moves when reaching the vertical (top "
+"and bottom) drag margins. If [code]false[/code], the camera moves vertically "
+"regardless of the drag margins."
+msgstr ""
+"如果為 [code]true[/code],相機僅在達到垂直(頂部及底部)拖動邊距時才移動。如果"
+"為 [code]false[/code],相機會垂直移動而不管邊距。"
+
+msgid ""
+"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],在編輯器中繪製相機的拖動邊距矩形。"
+
+msgid "If [code]true[/code], draws the camera's limits rectangle in the editor."
+msgstr "如果為 [code]true[/code],在編輯器中繪製相機的極限矩形。"
+
+msgid "If [code]true[/code], draws the camera's screen rectangle in the editor."
+msgstr "如果為 [code]true[/code],在編輯器中繪製相機的畫面矩形。"
+
+msgid ""
+"Controls whether the camera can be active or not. If [code]true[/code], the "
+"[Camera2D] will become the main camera when it enters the scene tree and "
+"there is no active camera currently (see [method Viewport.get_camera_2d]).\n"
+"When the camera is currently active and [member enabled] is set to "
+"[code]false[/code], the next enabled [Camera2D] in the scene tree will become "
+"active."
+msgstr ""
+"控制該相機是否可以啟動。如果為 [code]true[/code],當該 [Camera2D] 進入場景樹並"
+"且目前沒有活動的相機時,它將成為主相機(參見 [method Viewport."
+"get_camera_2d])。\n"
+"當該相機目前處於活動狀態且 [member enabled] 被設定為 [code]false[/code] 時,則"
+"場景樹中下一個啟用的 [Camera2D] 將變為活動狀態。"
+
+msgid ""
+"If [code]true[/code], the camera's rendered view is not affected by its "
+"[member Node2D.rotation] and [member Node2D.global_rotation]."
+msgstr ""
+"如果為 [code]true[/code] ,相機的渲染視圖不會受到其 [member Node2D.rotation] "
+"和 [member Node2D.global_rotation] 的影響。"
+
+msgid ""
+"Bottom scroll limit in pixels. The camera stops moving when reaching this "
+"value, but [member offset] can push the view past the limit."
+msgstr ""
+"底部滾動極限,單位為圖元。相機會在抵達該值時停止移動,但是 [member offset] 可"
+"以把視圖推過該極限。"
+
+msgid ""
+"Left scroll limit in pixels. The camera stops moving when reaching this "
+"value, but [member offset] can push the view past the limit."
+msgstr ""
+"左側滾動極限,單位為圖元。相機會在抵達該值時停止移動,但是 [member offset] 可"
+"以把視圖推過該極限。"
+
+msgid ""
+"Right scroll limit in pixels. The camera stops moving when reaching this "
+"value, but [member offset] can push the view past the limit."
+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."
+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 seen "
+"in the viewport.\n"
+"[b]Note:[/b] [member FontFile.oversampling] does [i]not[/i] take [Camera2D] "
+"zoom into account. This means that zooming in/out will cause bitmap fonts and "
+"rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated unless the "
+"font is part of a [CanvasLayer] that makes it ignore camera zoom. To ensure "
+"text remains crisp regardless of zoom, you can enable MSDF font rendering by "
+"enabling [member ProjectSettings.gui/theme/"
+"default_font_multichannel_signed_distance_field] (applies to the default "
+"project font only), or enabling [b]Multichannel Signed Distance Field[/b] in "
+"the import options of a DynamicFont for custom fonts. On system fonts, "
+"[member SystemFont.multichannel_signed_distance_field] can be enabled in the "
+"inspector."
+msgstr ""
+"相機的縮放。 設定為 [code]Vector(2, 2)[/code] 的縮放值會使通過視口看到的尺寸翻"
+"倍。設定為 [code]Vector(0.5, 0.5)[/code]的縮放值會使會使通過視口看到的尺寸減"
+"半。\n"
+"[b]注意:[/b][member FontFile.oversampling] [i]不會[/i]考慮 [Camera2D] 的縮放"
+"值。這意味著放大/縮小將導致點陣字型和光柵化(非 MSDF)動態字形看起來模糊或像素"
+"化,除非字形是[CanvasLayer]的一部分從而使其忽略相機縮放。為了確保文字無論如何"
+"縮放都保持清晰,你可以通過啟用 [member ProjectSettings.gui/theme/"
+"default_font_multichannel_signed_distance_field] (僅適用於預設專案字形)來啟"
+"用 MSDF 字形渲染,或在自訂字形的動態字形匯入選項中啟用[b]多通道帶符號距離場[/"
+"b]。對於系統字形,可以在屬性面板中啟用 [member SystemFont."
+"multichannel_signed_distance_field] 。"
+
+msgid ""
+"The camera's position is fixed so that the top-left corner is always at the "
+"origin."
+msgstr "相機的位置是固定的,所以左上角總是在原點。"
+
+msgid ""
+"The camera's position takes into account vertical/horizontal offsets and the "
+"screen size."
+msgstr "相機的位置要考慮垂直/水平偏移和螢幕尺寸。"
+
+msgid ""
+"The camera updates during physics frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])."
+msgstr ""
+"相機在物理影格期間更新(見 [constant Node."
+"NOTIFICATION_INTERNAL_PHYSICS_PROCESS])。"
+
+msgid ""
+"The camera updates during process frames (see [constant Node."
+"NOTIFICATION_INTERNAL_PROCESS])."
+msgstr ""
+"相機在程序影格期間更新(見 [constant Node.NOTIFICATION_INTERNAL_PROCESS])。"
+
+msgid "Camera node, displays from a point of view."
+msgstr "相機節點,會從某個角度進行顯示。"
+
+msgid ""
+"[Camera3D] is a special node that displays what is visible from its current "
+"location. Cameras register themselves in the nearest [Viewport] node (when "
+"ascending the tree). Only one camera can be active per viewport. If no "
+"viewport is available ascending the tree, the camera will register in the "
+"global viewport. In other words, a camera just provides 3D display "
+"capabilities to a [Viewport], and, without one, a scene registered in that "
+"[Viewport] (or higher viewports) can't be displayed."
+msgstr ""
+"[Camera3D] 是一個特殊節點,用於顯示從其目前位置可見的內容。相機在最近的 "
+"[Viewport] 節點中註冊自己(當樹上行)。每個視口中只能有一個啟動的相機。如果在"
+"樹上沒有可用的視口,相機將在全域視口中註冊。換句話說,相機只是用來為 "
+"[Viewport] 提供 3D 顯示能力的,如果沒有,則在該 [Viewport](或更高層視口)中註"
+"冊的場景無法顯示。"
+
+msgid ""
+"If this is the current camera, remove it from being current. If [param "
+"enable_next] is [code]true[/code], request to make the next camera current, "
+"if any."
+msgstr ""
+"如果這是目前相機,則將其從目前相機中移除。如果 [param enable_next] 為 "
+"[code]true[/code],則請求使下一個相機(如果有)成為目前相機。"
+
+msgid ""
+"Returns the projection matrix that this camera uses to render to its "
+"associated viewport. The camera must be part of the scene tree to function."
+msgstr ""
+"返回該相機用於渲染至關聯視口的投影矩陣。相機必須是場景樹的一部分才能正常工作。"
+
+msgid "Returns the camera's RID from the [RenderingServer]."
+msgstr "從 [RenderingServer] 返回該相機的 RID。"
+
+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 "
+"be confused with [member frustum_offset]."
+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/4.1/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/4.1/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 "
+"to become current once it's added."
+msgstr ""
+"使此相機成為 [Viewport] 的目前相機(見類的說明)。如果相機節點在場景樹之外,一"
+"旦新增,它將嘗試成為目前相機。"
+
+msgid ""
+"Returns a normal vector from the screen point location directed along the "
+"camera. Orthogonal cameras are normalized. Perspective cameras account for "
+"perspective, screen width/height, etc."
+msgstr ""
+"返回從螢幕點位置沿相機方向的法向量。正交相機會被正規化。透視相機考慮到透視、螢"
+"幕寬度/高度等因素。"
+
+msgid ""
+"Returns the 3D point in world space that maps to the given 2D coordinate in "
+"the [Viewport] rectangle on a plane that is the given [param z_depth] "
+"distance into the scene away from the camera."
+msgstr ""
+"返回世界空間中的 3D 點,該點對應到平面上 [Viewport] 矩形中的給定 2D 座標,該平"
+"面是距相機到場景的給定 [param z_depth] 距離。"
+
+msgid ""
+"Returns a normal vector in world space, that is the result of projecting a "
+"point on the [Viewport] rectangle by the inverse camera projection. This is "
+"useful for casting rays in the form of (origin, normal) for object "
+"intersection or picking."
+msgstr ""
+"返回世界空間中的法線向量,即通過逆相機投影將點投影到 [Viewport] 矩形上的結果。"
+"這對於以(原點,法線)的形式投射光線,以進行物件相交或拾取很有用。"
+
+msgid ""
+"Returns a 3D position in world space, that is the result of projecting a "
+"point on the [Viewport] rectangle by the inverse camera projection. This is "
+"useful for casting rays in the form of (origin, normal) for object "
+"intersection or picking."
+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]。"
+
+msgid ""
+"The culling mask that describes which [member VisualInstance3D.layers] are "
+"rendered by this camera. By default, all 20 user-visible layers are "
+"rendered.\n"
+"[b]Note:[/b] Since the [member cull_mask] allows for 32 layers to be stored "
+"in total, there are an additional 12 layers that are only used internally by "
+"the engine and aren't exposed in the editor. Setting [member cull_mask] using "
+"a script allows you to toggle those reserved layers, which can be useful for "
+"editor plugins.\n"
+"To adjust [member cull_mask] more easily using a script, use [method "
+"get_cull_mask_value] and [method set_cull_mask_value].\n"
+"[b]Note:[/b] [VoxelGI], SDFGI and [LightmapGI] will always take all layers "
+"into account to determine what contributes to global illumination. If this is "
+"an issue, set [member GeometryInstance3D.gi_mode] to [constant "
+"GeometryInstance3D.GI_MODE_DISABLED] for meshes and [member Light3D."
+"light_bake_mode] to [constant Light3D.BAKE_DISABLED] for lights to exclude "
+"them from global illumination."
+msgstr ""
+"剔除遮罩,描述該相機渲染了哪些 [member VisualInstance3D.layers]。預設情況下,"
+"20 個使用者可見層全都被渲染。\n"
+"[b]注意:[/b]由於 [member cull_mask] 允許總共儲存 32 個層,因此另外 12 個層僅"
+"供引擎內部使用,不會在編輯器中公開。使用腳本設定 [member cull_mask] 允許你切換"
+"那些保留層,這對編輯器外掛程式很有用。\n"
+"要使用腳本更輕鬆地調整 [member cull_mask],請使用 [method "
+"get_cull_mask_value] 和 [method set_cull_mask_value]。\n"
+"[b]注意:[/b][VoxelGI]、SDFGI 和 [LightmapGI] 將始終考慮所有層以確定對全域光照"
+"有貢獻的內容。如果這是一個問題,請將網格的 [member GeometryInstance3D."
+"gi_mode] 設定為 [constant GeometryInstance3D.GI_MODE_DISABLED],並將燈光的 "
+"[member Light3D.light_bake_mode] 設定為 [constant Light3D.BAKE_DISABLED],以將"
+"它們從全域光照中排除。"
+
+msgid ""
+"If [code]true[/code], the ancestor [Viewport] is currently using this "
+"camera.\n"
+"If multiple cameras are in the scene, one will always be made current. For "
+"example, if two [Camera3D] nodes are present in the scene and only one is "
+"current, setting one camera's [member current] to [code]false[/code] will "
+"cause the other camera to be made current."
+msgstr ""
+"如果為 [code]true[/code],則祖級 [Viewport] 正在使用這個相機。\n"
+"如果場景中有多個相機,總會有一個被設為目前相機。例如,假設場景中存在兩個 "
+"[Camera3D] 節點並且只有一個為目前相機,那麼如果把某一個相機的 [member "
+"current] 設為 [code]false[/code] 就會導致另一個相機被設為目前相機。"
+
+msgid ""
+"If not [constant DOPPLER_TRACKING_DISABLED], this camera will simulate the "
+"[url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] for "
+"objects changed in particular [code]_process[/code] methods. See [enum "
+"DopplerTracking] for possible values."
+msgstr ""
+"如果不是 [constant DOPPLER_TRACKING_DISABLED],此相機將為在 [code]_process[/"
+"code] 中變化的物件類比[url=https://zh.wikipedia.org/wiki/"
+"%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效應[/url]。可能的值見 "
+"[enum DopplerTracking]。"
+
+msgid "The [Environment] to use for this camera."
+msgstr "此相機要使用的 [Environment]。"
+
+msgid ""
+"The distance to the far culling boundary for this camera relative to its "
+"local Z axis. Higher values allow the camera to see further away, while "
+"decreasing [member far] can improve performance if it results in objects "
+"being partially or fully culled."
+msgstr ""
+"該相機相對於其局部 Z 軸到遠剔除邊界的距離。較高的值允許相機看得更遠,而減少 "
+"[member far] 如果會導致物件被部分或完全剔除,則可以提高性能。"
+
+msgid ""
+"The camera's frustum offset. This can be changed from the default to create "
+"\"tilted frustum\" effects such as [url=https://zdoom.org/wiki/Y-shearing]Y-"
+"shearing[/url].\n"
+"[b]Note:[/b] Only effective if [member projection] is [constant "
+"PROJECTION_FRUSTUM]."
+msgstr ""
+"相機的視錐偏移。可以更改預設值,以建立如 [url=https://zdoom.org/wiki/Y-"
+"shearing]Y-shearing[/url] 一樣的“傾斜的視錐”效果。\n"
+"[b]注意:[/b]僅在 [member projection] 為 [constant PROJECTION_FRUSTUM] 時有"
+"效。"
+
+msgid "The horizontal (X) offset of the camera viewport."
+msgstr "相機視口的水平(X)偏移量。"
+
+msgid ""
+"The axis to lock during [member fov]/[member size] adjustments. Can be either "
+"[constant KEEP_WIDTH] or [constant KEEP_HEIGHT]."
+msgstr ""
+"在 [member fov]/[member size] 調整時要鎖定的軸。可以是 [constant KEEP_WIDTH] "
+"或 [constant KEEP_HEIGHT]。"
+
+msgid ""
+"The distance to the near culling boundary for this camera relative to its "
+"local Z axis. Lower values allow the camera to see objects more up close to "
+"its origin, at the cost of lower precision across the [i]entire[/i] range. "
+"Values lower than the default can lead to increased Z-fighting."
+msgstr ""
+"該相機相對於其局部 Z 軸到近剔除邊界的距離。較低的值允許相機看到更靠近其原點的"
+"物件,但代價是[i]整個[/i]範圍內的精度較低。低於預設值的值會導致 Z 衝突增加。"
+
+msgid ""
+"The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, "
+"objects' Z distance from the camera's local space scales their perceived size."
+msgstr ""
+"相機的投影模式。在 [constant PROJECTION_PERSPECTIVE] 模式下,物體與相機局部空"
+"間的Z距離會影響其感知的大小。"
+
+msgid ""
+"The camera's size in meters measured as the diameter of the width or height, "
+"depending on [member keep_aspect]. Only applicable in orthogonal and frustum "
+"modes."
+msgstr ""
+"該相機的大小,單位為米,描述的是完整的寬度或者高度,取決於 [member "
+"keep_aspect]。僅適用於正交和視錐模式。"
+
+msgid "The vertical (Y) offset of the camera viewport."
+msgstr "相機視口的垂直(Y)偏移量。"
+
+msgid ""
+"Perspective projection. Objects on the screen becomes smaller when they are "
+"far away."
+msgstr "透視投影。物體距離相機螢幕越遠顯示就越小。"
+
+msgid ""
+"Orthogonal projection, also known as orthographic projection. Objects remain "
+"the same size on the screen no matter how far away they are."
+msgstr "正交投影,又稱正交投影。物體無論距離多遠,在螢幕上都保持相同的大小。"
+
+msgid ""
+"Frustum projection. This mode allows adjusting [member frustum_offset] to "
+"create \"tilted frustum\" effects."
+msgstr ""
+"視錐投影。通過該模式可以調整 [member frustum_offset] 來建立“傾斜的視錐”效果。"
+
+msgid ""
+"Preserves the horizontal aspect ratio; also known as Vert- scaling. This is "
+"usually the best option for projects running in portrait mode, as taller "
+"aspect ratios will benefit from a wider vertical FOV."
+msgstr ""
+"保留水平長寬比,也稱為 Vert- 縮放。這通常是在縱向模式下運作的專案的最佳選擇,"
+"因為較高的縱橫比將從更寬的垂直視場中受益。"
+
+msgid ""
+"Preserves the vertical aspect ratio; also known as Hor+ scaling. This is "
+"usually the best option for projects running in landscape mode, as wider "
+"aspect ratios will automatically benefit from a wider horizontal FOV."
+msgstr ""
+"保留垂直長寬比,也稱為 Hor+ 縮放。這通常是在橫向模式下運作的專案的最佳選擇,因"
+"為較寬的縱橫比會自動從較寬的水平視場中受益。"
+
+msgid ""
+"Disables [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] simulation (default)."
+msgstr ""
+"禁用[url=https://en.wikipedia.org/wiki/Doppler_effect]多普勒效應[/url]模擬(預"
+"設)。"
+
+msgid ""
+"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] by tracking positions of objects that are changed in [code]_process[/"
+"code]. Changes in the relative velocity of this camera compared to those "
+"objects affect how audio is perceived (changing the audio's [member "
+"AudioStreamPlayer3D.pitch_scale])."
+msgstr ""
+"通過追蹤在 [code]_process[/code] 中改變的物體位置來類比[url=https://zh."
+"wikipedia.org/wiki/%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效應[/"
+"url]。與這些物體相比,該相機的相對速度的變化會影響音訊的感知方式(改變音訊的 "
+"[member AudioStreamPlayer3D.pitch_scale])。"
+
+msgid ""
+"Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/"
+"url] by tracking positions of objects that are changed in "
+"[code]_physics_process[/code]. Changes in the relative velocity of this "
+"camera compared to those objects affect how audio is perceived (changing the "
+"audio's [member AudioStreamPlayer3D.pitch_scale])."
+msgstr ""
+"通過追蹤在 [code]_process[/code] 中改變的物體位置來類比[url=https://zh."
+"wikipedia.org/wiki/%E5%A4%9A%E6%99%AE%E5%8B%92%E6%95%88%E5%BA%94]多普勒效應[/"
+"url]。與這些物體相比,該相機的相對速度的變化會影響音訊的感知方式(改變音訊的 "
+"[member AudioStreamPlayer3D.pitch_scale])。"
+
+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 determine the "
+"exposure setting to adapt to the scene's illumination and the observed light."
+msgstr ""
+"如果為 [code]true[/code],啟用場景渲染器的色調對應自動曝光模式。如果為 "
+"[code]true[/code],渲染器將自動確定曝光設定,以適應場景的照明和觀察到的光線。"
+
+msgid ""
+"The scale of the auto exposure effect. Affects the intensity of auto exposure."
+msgstr "自動曝光效果的比例。影響自動曝光的強度。"
+
+msgid ""
+"The speed of the auto exposure effect. Affects the time needed for the 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 "基於物理的相機設定。"
+
+msgid ""
+"[CameraAttributesPhysical] is used to set rendering settings based on a "
+"physically-based camera's settings. It is responsible for exposure, auto-"
+"exposure, and depth of field.\n"
+"When used in a [WorldEnvironment] it provides default settings for exposure, "
+"auto-exposure, and depth of field that will be used by all cameras without "
+"their own [CameraAttributes], including the editor camera. When used in a "
+"[Camera3D] it will override any [CameraAttributes] set in the "
+"[WorldEnvironment] and will override the [Camera3D]s [member Camera3D.far], "
+"[member Camera3D.near], [member Camera3D.fov], and [member Camera3D."
+"keep_aspect] properties. When used in [VoxelGI] or [LightmapGI], only the "
+"exposure settings will be used.\n"
+"The default settings are intended for use in an outdoor environment, tips for "
+"settings for use in an indoor environment can be found in each setting's "
+"documentation.\n"
+"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and Mobile "
+"rendering methods, not Compatibility."
+msgstr ""
+"[CameraAttributesPhysical] 用於根據基於物理的相機的設定來設定渲染設定。它負責"
+"曝光、自動曝光、以及景深。\n"
+"當在 [WorldEnvironment] 中使用時,它提供了曝光、自動曝光、以及景深的預設設置,"
+"這些設定將由所有沒有自己的 [CameraAttributes] 的相機使用,包括編輯器相機。當"
+"在 [Camera3D] 中使用時,它將覆蓋 [WorldEnvironment] 中設定的任何 "
+"[CameraAttributes],並將覆蓋 [Camera3D] 的 [member Camera3D.far]、[member "
+"Camera3D.near]、[member Camera3D.fov]、以及 [member Camera3D.keep_aspect] 屬"
+"性。當在 [VoxelGI] 或 [LightmapGI] 中使用時,將只會使用曝光設定。\n"
+"預設設定適用於室外環境,可在每個設定的文件中找到有關在室內環境中使用的設定的提"
+"示。\n"
+"[b]注意:[/b]景深模糊只支援 Forward+ 和移動渲染方式,不支援相容模式。"
+
+msgid "Physical light and camera units"
+msgstr "物理燈光與相機單位"
+
+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 "
+"dof_blur_amount] and modulated by [member dof_blur_far_transition].\n"
+"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and Mobile "
+"rendering methods, not Compatibility."
+msgstr ""
+"為比 [member dof_blur_far_distance] 更遠的對象啟用景深模糊。模糊強度由 "
+"[member dof_blur_amount] 控制並由 [member dof_blur_far_transition] 調變。\n"
+"[b]注意:[/b]景深模糊只支援 Forward+ 和移動渲染方式,不支援相容模式。"
+
+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 "
+"dof_blur_near_distance]. Strength of blur is controlled by [member "
+"dof_blur_amount] and modulated by [member dof_blur_near_transition].\n"
+"[b]Note:[/b] Depth of field blur is only supported in the Forward+ and Mobile "
+"rendering methods, not Compatibility."
+msgstr ""
+"為比 [member dof_blur_near_distance] 更近的對象啟用景深模糊。模糊強度由 "
+"[member dof_blur_amount] 控制並由 [member dof_blur_near_transition] 調變。\n"
+"[b]注意:[/b]景深模糊只支援 Forward+ 和移動渲染方式,不支援相容模式。"
+
+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 "
+"device."
+msgstr "通過相機源,你可以存取連接到裝置的單個物理相機。"
+
+msgid ""
+"A camera feed gives you access to a single physical camera attached to your "
+"device. When enabled, Godot will start capturing frames from the camera which "
+"can then be used. See also [CameraServer].\n"
+"[b]Note:[/b] Many cameras will return YCbCr images which are split into two "
+"textures and need to be combined in a shader. Godot does this automatically "
+"for you if you set the environment to show the camera image in the background."
+msgstr ""
+"通過相機源,你可以存取連接到裝置的單個物理相機。啟用後,Godot 將開始從相機捕獲"
+"影格,然後使用。另請參閱 [CameraServer]。\n"
+"[b]注意:[/b]很多相機會返回 YCbCr 圖像,這些圖像被分成兩個紋理,需要在著色器中"
+"組合。如果你將環境設定為在背景中顯示相機圖像,Godot 會自動為將執行此操作。"
+
+msgid "Returns feed image data type."
+msgstr "返回源圖像的資料型別。"
+
+msgid "Returns the unique ID for this feed."
+msgstr "返回該源的唯一ID。"
+
+msgid "Returns the camera's name."
+msgstr "返回相機的名稱。"
+
+msgid "Returns the position of camera on the device."
+msgstr "返回裝置上的相機位置。"
+
+msgid "If [code]true[/code], the feed is active."
+msgstr "如果為 [code]true[/code],則源是啟動的。"
+
+msgid "The transform applied to the camera's image."
+msgstr "套用於相機圖像的變換。"
+
+msgid "No image set for the feed."
+msgstr "沒有為該源設定圖像。"
+
+msgid "Feed supplies RGB images."
+msgstr "源提供 RGB 圖像。"
+
+msgid "Feed supplies YCbCr images that need to be converted to RGB."
+msgstr "源提供的 YCbCr 圖像需要轉換成 RGB 圖像。"
+
+msgid ""
+"Feed supplies separate Y and CbCr images that need to be combined and "
+"converted to RGB."
+msgstr "源提供單獨的 Y 和 CbCr 圖像,需要合併並轉換為 RGB。"
+
+msgid "Unspecified position."
+msgstr "未指定座標。"
+
+msgid "Camera is mounted at the front of the device."
+msgstr "相機安裝在了裝置前部。"
+
+msgid "Camera is mounted at the back of the device."
+msgstr "相機安裝在了裝置後部。"
+
+msgid "Server keeping track of different cameras accessible in Godot."
+msgstr "追蹤 Godot 中可存取的不同攝像頭的伺服器。"
+
+msgid ""
+"The [CameraServer] keeps track of different cameras accessible in Godot. "
+"These are external cameras such as webcams or the cameras on your phone.\n"
+"It is notably used to provide AR modules with a video feed from the camera.\n"
+"[b]Note:[/b] This class is currently only implemented on macOS and iOS. On "
+"other platforms, no [CameraFeed]s will be available."
+msgstr ""
+"[CameraServer] 記錄了 Godot 中可存取的不同相機。此處的相機指外部相機,例如網路"
+"攝像頭或手機上的攝像頭。\n"
+"主要用於為 AR 模組提供來自相機的影片源。\n"
+"[b]注意:[/b]這個類目前只在 macOS 和 iOS 上實作。在其他平臺上沒有可用的 "
+"[CameraFeed]。"
+
+msgid "Adds the camera [param feed] to the camera server."
+msgstr "將相機源 [param feed] 新增到相機伺服器中。"
+
+msgid "Returns an array of [CameraFeed]s."
+msgstr "返回一個 [CameraFeed] 陣列。"
+
+msgid ""
+"Returns the [CameraFeed] corresponding to the camera with the given [param "
+"index]."
+msgstr "返回與給定索引 [param index] 的相機對應的 [CameraFeed]。"
+
+msgid "Returns the number of [CameraFeed]s registered."
+msgstr "返回註冊的 [CameraFeed] 的數量。"
+
+msgid "Removes the specified camera [param feed]."
+msgstr "移除指定的相機源 [param feed]。"
+
+msgid "Emitted when a [CameraFeed] is added (e.g. a webcam is plugged in)."
+msgstr "當新增 [CameraFeed] 時發出(例如插入網路攝像頭時)。"
+
+msgid "Emitted when a [CameraFeed] is removed (e.g. a webcam is unplugged)."
+msgstr "當移除 [CameraFeed] 時發出(例如拔掉網路攝像頭時)。"
+
+msgid "The RGBA camera image."
+msgstr "RGBA 相機圖像。"
+
+msgid "The [url=https://en.wikipedia.org/wiki/YCbCr]YCbCr[/url] camera image."
+msgstr "[url=https://zh.wikipedia.org/zh-cn/YCbCr]YCbCr[/url] 相機圖像。"
+
+msgid "The Y component camera image."
+msgstr "Y 分量相機圖像。"
+
+msgid "The CbCr component camera image."
+msgstr "CbCr 分量相機圖像。"
+
+msgid "Texture provided by a [CameraFeed]."
+msgstr "由 [CameraFeed] 提供的紋理。"
+
+msgid ""
+"This texture gives access to the camera texture provided by a [CameraFeed].\n"
+"[b]Note:[/b] Many cameras supply YCbCr images which need to be converted in a "
+"shader."
+msgstr ""
+"該紋理可以存取 [CameraFeed] 提供的相機紋理。\n"
+"[b]注意:[/b]許多相機提供的都是 YCbCr 圖像,需要在著色器中進行轉換。"
+
+msgid "The ID of the [CameraFeed] for which we want to display the image."
+msgstr "我們要顯示圖像的 [CameraFeed] 的 ID。"
+
+msgid ""
+"Convenience property that gives access to the active property of the "
+"[CameraFeed]."
+msgstr "給予存取 [CameraFeed] 的活動屬性的便利屬性。"
+
+msgid ""
+"Which image within the [CameraFeed] we want access to, important if the "
+"camera image is split in a Y and CbCr component."
+msgstr ""
+"我們要存取 [CameraFeed] 中的哪個圖像,如果相機圖像被分割成 Y 和 CbCr 分量,這"
+"一點很重要。"
+
+msgid "Merges several 2D nodes into a single draw operation."
+msgstr "將若干 2D 節點合併至單次繪製操作。"
+
+msgid ""
+"Child [CanvasItem] nodes of a [CanvasGroup] are drawn as a single object. It "
+"allows to e.g. draw overlapping translucent 2D nodes without blending (set "
+"[member CanvasItem.self_modulate] property of [CanvasGroup] to achieve this "
+"effect).\n"
+"[b]Note:[/b] The [CanvasGroup] uses a custom shader to read from the "
+"backbuffer to draw its children. Assigning a [Material] to the [CanvasGroup] "
+"overrides the builtin shader. To duplicate the behavior of the builtin shader "
+"in a custom [Shader] use the following:\n"
+"[codeblock]\n"
+"shader_type canvas_item;\n"
+"render_mode unshaded;\n"
+"\n"
+"uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, "
+"filter_nearest;\n"
+"\n"
+"void fragment() {\n"
+" vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0);\n"
+"\n"
+" if (c.a > 0.0001) {\n"
+" c.rgb /= c.a;\n"
+" }\n"
+"\n"
+" COLOR *= c;\n"
+"}\n"
+"[/codeblock]\n"
+"[b]Note:[/b] Since [CanvasGroup] and [member CanvasItem.clip_children] both "
+"utilize the backbuffer, children of a [CanvasGroup] who have their [member "
+"CanvasItem.clip_children] set to anything other than [constant CanvasItem."
+"CLIP_CHILDREN_DISABLED] will not function correctly."
+msgstr ""
+"[CanvasGroup] 的所有子 [CanvasItem] 節點會作為一個單獨的物件繪製。它允許在不混"
+"合的情況下繪製重疊的半透明 2D 節點(設定 [CanvasGroup] 的 [member CanvasItem."
+"self_modulate] 屬性來實作這一效果)。\n"
+"[b]注意:[/b][CanvasGroup] 使用一個自訂著色器從背景緩衝區讀取以繪製其子節點。"
+"為 [CanvasGroup] 指定一個 [Material] 會覆蓋內建著色器。要在自訂 [Shader] 中複"
+"製內建著色器的行為,請使用以下方法:\n"
+"[codeblock]\n"
+"shader_type canvas_item;\n"
+"render_mode unshaded;\n"
+"\n"
+"uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, "
+"filter_nearest;\n"
+"\n"
+"void fragment() {\n"
+" vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0);\n"
+"\n"
+" if (c.a > 0.0001) {\n"
+" c.rgb /= c.a;\n"
+" }\n"
+"\n"
+" COLOR *= c;\n"
+"}\n"
+"[/codeblock]\n"
+"[b]注意:[/b]由於 [CanvasGroup] 和 [member CanvasItem.clip_children] 都使用後"
+"台緩衝區,因此 [CanvasGroup] 的子級如果將其 [member CanvasItem.clip_children] "
+"設定為 [constant CanvasItem.CLIP_CHILDREN_DISABLED] 以外的其他值將無法正常工"
+"作。"
+
+msgid ""
+"Sets the size of the margin used to expand the clearing rect of this "
+"[CanvasGroup]. This expands the area of the backbuffer that will be used by "
+"the [CanvasGroup]. A smaller margin will reduce the area of the backbuffer "
+"used which can increase performance, however if [member use_mipmaps] is "
+"enabled, a small margin may result in mipmap errors at the edge of the "
+"[CanvasGroup]. Accordingly, this should be left as small as possible, but "
+"should be increased if artifacts appear along the edges of the canvas group."
+msgstr ""
+"設定用於擴充該 [CanvasGroup] 清除矩形的邊距大小。會對該 [CanvasGroup] 所使用的"
+"後臺緩衝的區域進行擴充。邊距較小時可以減少後臺緩衝的區域大小,從而提升性能,但"
+"如果啟用了 [member use_mipmaps],較小的邊距可能在該 [CanvasGroup] 邊緣造成 "
+"mipmap 錯誤。因此,這個值應該儘量調小,但是如果畫布組的邊緣出現問題,就應該將"
+"其調大。"
+
+msgid ""
+"Sets the size of a margin used to expand the drawable rect of this "
+"[CanvasGroup]. The size of the [CanvasGroup] is determined by fitting a rect "
+"around its children then expanding that rect by [member fit_margin]. This "
+"increases both the backbuffer area used and the area covered by the "
+"[CanvasGroup] both of which can reduce performance. This should be kept as "
+"small as possible and should only be expanded when an increased size is "
+"needed (e.g. for custom shader effects)."
+msgstr ""
+"設定用於擴充該 [CanvasGroup] 繪圖矩形的邊距大小。確定該 [CanvasGroup] 大小的方"
+"法是:首先框定子節點的矩形區域,然後將該矩形按照 [member fit_margin] 進行擴"
+"展。會增大該 [CanvasGroup] 所使用的後臺緩衝的區域,也會增大該 [CanvasGroup] 所"
+"覆蓋的面積,兩者都會降低性能。這個值應該儘量調小,僅在需要時調大(例如自定義著"
+"色器效果)。"
+
+msgid ""
+"If [code]true[/code], calculates mipmaps for the backbuffer before drawing "
+"the [CanvasGroup] so that mipmaps can be used in a custom [ShaderMaterial] "
+"attached to the [CanvasGroup]. Generating mipmaps has a performance cost so "
+"this should not be enabled unless required."
+msgstr ""
+"如果為 [code]true[/code],則會在繪製該 [CanvasGroup] 之前為其後臺緩衝計算 "
+"mipmap,附加到該 [CanvasGroup] 的自訂 [ShaderMaterial] 就可以使用 mipmap。"
+"Mipmap 的生成會造成性能消耗,所以應在必要時才啟用。"
+
+msgid "Abstract base class for everything in 2D space."
+msgstr "2D 空間中所有物件的抽象基底類別。"
+
+msgid ""
+"Abstract base class for everything in 2D space. Canvas items are laid out in "
+"a tree; children inherit and extend their parent's transform. [CanvasItem] is "
+"extended by [Control] for GUI-related nodes, and by [Node2D] for 2D game "
+"objects.\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 a 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 on their canvas layer. 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 be hidden, which will also hide its children. By adjusting "
+"various other properties of a [CanvasItem], you can also modulate its color "
+"(via [member modulate] or [member self_modulate]), change its Z-index, blend "
+"mode, and more."
+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] 可以隱藏,隱藏時也會隱藏其子專案。通過調整畫布專案的各種其它屬"
+"性,你還可以調變它的顏色(通過 [member modulate] 或 [member self_modulate])、"
+"更改 Z 索引、混合模式等。"
+
+msgid "Viewport and canvas transforms"
+msgstr "Viewport 和畫布變換"
+
+msgid "Custom drawing in 2D"
+msgstr "2D 中的自訂繪圖"
+
+msgid ""
+"Called when [CanvasItem] has been requested to redraw (after [method "
+"queue_redraw] is called, either manually or by the engine).\n"
+"Corresponds to the [constant NOTIFICATION_DRAW] notification in [method "
+"Object._notification]."
+msgstr ""
+"當 [CanvasItem] 被請求重繪時呼叫(手動呼叫或者引擎呼叫 [method queue_redraw] "
+"之後)。\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 a string first character using a custom font."
+msgstr "使用自訂字形繪製字串的第一個字元。"
+
+msgid "Draws a string first character outline using a custom font."
+msgstr "使用自訂字形繪製字串中第一個字元的輪廓。"
+
+msgid ""
+"Draws a colored, filled circle. See also [method draw_arc], [method "
+"draw_polyline] and [method draw_polygon]."
+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 width] and [param "
+"color]. Each line is defined by two consecutive points from [param points] "
+"array, i.e. i-th segment consists of [code]points[2 * i][/code], "
+"[code]points[2 * i + 1][/code] endpoints. When drawing large amounts of "
+"lines, this is faster than using individual [method draw_line] calls. To draw "
+"interconnected lines, use [method draw_polyline] instead.\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]."
+msgstr ""
+"使用一致的寬度 [param width] 和顏色 [param color] 繪製多條斷開的線段。[param "
+"points] 陣列中相鄰的兩個點定義一條線段,即第 i 條線段由端點 [code]points[2 * "
+"i][/code] 和 [code]points[2 * i + 1][/code] 組成。繪製大量線段時,這種方法比使"
+"用 [method draw_line] 一條條畫要快。要繪製相連的線段,請改用 [method "
+"draw_polyline]。\n"
+"如果 [param width] 為負數,則會繪製由兩個點組成的圖元,不使用四個點組成的圖"
+"元。此時如果 CanvasItem 發生縮放,則線段仍然會很細。如果不想要這樣的行為,請傳"
+"入 [code]1.0[/code] 等正數 [param width]。"
+
+msgid ""
+"Draws multiple disconnected lines with a uniform [param width] and segment-by-"
+"segment coloring. Each segment is defined by two consecutive points from "
+"[param points] array and a corresponding color from [param colors] array, i."
+"e. i-th segment consists of [code]points[2 * i][/code], [code]points[2 * i + "
+"1][/code] endpoints and has [code]colors[i][/code] color. When drawing large "
+"amounts of lines, this is faster than using individual [method draw_line] "
+"calls. To draw interconnected lines, use [method draw_polyline_colors] "
+"instead.\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]."
+msgstr ""
+"使用一致的寬度 [param width] 分段顏色繪製多條斷開的線段。[param points] 陣列中"
+"相鄰的兩個點定義一條線段,即第 i 條線段由端點 [code]points[2 * i][/code] 和 "
+"[code]points[2 * i + 1][/code] 組成,使用的顏色為 [code]colors[i][/code]。繪製"
+"大量線段時,這種方法比使用 [method draw_line] 一條條畫要快。要繪製相連的線段,"
+"請改用 [method draw_polyline_colors]。\n"
+"如果 [param width] 為負數,則會繪製由兩個點組成的圖元,不使用四個點組成的圖"
+"元。此時如果 CanvasItem 發生縮放,則線段仍然會很細。如果不想要這樣的行為,請傳"
+"入 [code]1.0[/code] 等正數 [param width]。"
+
+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]。相關文件請參考 "
+"[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]. If you need more flexibility (such as being able to "
+"use bones), use [method RenderingServer.canvas_item_add_triangle_array] "
+"instead."
+msgstr ""
+"繪製一個由任意數量的點構成的實心多邊形,凸形或凹形。與 [method "
+"draw_colored_polygon] 不同,每個點的顏色都可以單獨改變。另見 [method "
+"draw_polyline] 和 [method draw_polyline_colors]。如果你需要更大的自由度(例如"
+"能夠使用骨骼),請改用 [method RenderingServer."
+"canvas_item_add_triangle_array]。"
+
+msgid ""
+"Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points "
+"for a triangle, and 4 points for a quad. If 0 points or more than 4 points "
+"are specified, nothing will be drawn and an error message will be printed. "
+"See also [method draw_line], [method draw_polyline], [method draw_polygon], "
+"and [method draw_rect]."
+msgstr ""
+"繪製自訂圖元。1 個點的是個點,2 個點的是線段,3 個點的是三角形,4 個點的是四邊"
+"形。如果沒有指定點或者指定了超過 4 個點,則不會繪製任何東西,只會輸出錯誤消"
+"息。另請參閱 [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. See also [method draw_texture_rect].\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] 的筆劃。另見 [method "
+"draw_texture_rect]。\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"
+"[b]Note:[/b] [member FontFile.oversampling] does [i]not[/i] take [param "
+"scale] into account. This means that scaling up/down will cause bitmap fonts "
+"and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated. To "
+"ensure text remains crisp regardless of scale, you can enable MSDF font "
+"rendering by enabling [member ProjectSettings.gui/theme/"
+"default_font_multichannel_signed_distance_field] (applies to the default "
+"project font only), or enabling [b]Multichannel Signed Distance Field[/b] in "
+"the import options of a DynamicFont for custom fonts. On system fonts, "
+"[member SystemFont.multichannel_signed_distance_field] can be enabled in the "
+"inspector."
+msgstr ""
+"使用分量設定用於繪圖的自訂變換。後續的繪製都會使用這個變換。\n"
+"[b]注意:[/b][member FontFile.oversampling] [i]不會[/i]考慮 [param scale]。這"
+"意味著將點陣字型及柵格化(非 MSDF)動態字形放大/縮小會產生模糊或圖元化的結果。"
+"要讓文字無論如何縮放都保持清晰,可以啟用 MSDF 字形渲染,方法是啟用 [member "
+"ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field](僅"
+"套用於預設專案字形),或者啟用自訂 DynamicFont 的[b]多通道帶符號距離場[/b]匯入"
+"選項。對於系統字形,可以在屬性面板中啟用 [member SystemFont."
+"multichannel_signed_distance_field]。"
+
+msgid ""
+"Sets a custom transform for drawing via matrix. Anything drawn afterwards "
+"will be transformed by this."
+msgstr "設定通過矩陣繪製時的自訂變換。此後繪製的任何東西都將被它變換。"
+
+msgid ""
+"Draws [param text] 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.\n"
+"[b]Example using the default project font:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# If using this method in a script that redraws constantly, move the\n"
+"# `default_font` declaration to a member variable assigned in `_ready()`\n"
+"# so the Control is only created once.\n"
+"var default_font = ThemeDB.fallback_font\n"
+"var default_font_size = ThemeDB.fallback_font_size\n"
+"draw_string(default_font, Vector2(64, 64), \"Hello world\", "
+"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// If using this method in a script that redraws constantly, move the\n"
+"// `default_font` declaration to a member variable assigned in `_Ready()`\n"
+"// so the Control is only created once.\n"
+"Font defaultFont = ThemeDB.FallbackFont;\n"
+"int defaultFontSize = ThemeDB.FallbackFontSize;\n"
+"DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", "
+"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"See also [method Font.draw_string]."
+msgstr ""
+"使用指定的 [param font] 在 [param pos](使用的字形的基線的左下角)處繪製 "
+"[param text]。該文字的顏色將乘以 [param modulate]。如果 [param width] 大於等"
+"於 0,則文字超過指定寬度將被裁剪。\n"
+"[b]使用專案預設字形的例子:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"# 如果在不斷重繪的腳本中使用此方法,\n"
+"# 則將 `default_font` 宣告移動到在 `_ready()` 中賦值的成員變數中\n"
+"# 這樣 Control 只建立一次。\n"
+"var default_font = ThemeDB.fallback_font\n"
+"var default_font_size = ThemeDB.fallback_font_size\n"
+"draw_string(default_font, Vector2(64, 64), \"Hello world\", "
+"HORIZONTAL_ALIGNMENT_LEFT, -1, default_font_size)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"// 如果在不斷重繪的腳本中使用此方法,\n"
+"// 則將 `default_font` 宣告移動到在 `_ready()` 中賦值的成員變數中\n"
+"// 這樣 Control 只建立一次。\n"
+"Font defaultFont = ThemeDB.FallbackFont;\n"
+"int defaultFontSize = ThemeDB.FallbackFontSize;\n"
+"DrawString(defaultFont, new Vector2(64, 64), \"Hello world\", "
+"HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize);\n"
+"[/csharp]\n"
+"[/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 "繪製一個樣式矩形。"
+
+msgid "Draws a texture at a given position."
+msgstr "在給定的位置繪製紋理。"
+
+msgid ""
+"Draws a textured rectangle at a given position, optionally modulated by a "
+"color. If [param transpose] is [code]true[/code], the texture will have its X "
+"and Y coordinates swapped. See also [method draw_rect] and [method "
+"draw_texture_rect_region]."
+msgstr ""
+"在給定位置繪製一個帶紋理的矩形,可以選擇用顏色調變。如果 [param transpose] 為 "
+"[code]true[/code],則紋理將交換其 X 和 Y 座標。另見 [method draw_rect] 和 "
+"[method draw_texture_rect_region]。"
+
+msgid ""
+"Draws a textured rectangle from a texture's region (specified by [param "
+"src_rect]) at a given position, optionally modulated by a color. If [param "
+"transpose] is [code]true[/code], the texture will have its X and Y "
+"coordinates swapped. See also [method draw_texture_rect]."
+msgstr ""
+"在給定的位置繪製具有紋理的矩形,可以指定所使用的紋理區域(由 [param src_rect] "
+"指定),可選擇用顏色調變。如果 [param transpose] 為 [code]true[/code],則紋理"
+"將交換其 X 和 Y 座標。另見 [method draw_texture_rect]。"
+
+msgid ""
+"Forces the transform to update. Transform changes in physics are not instant "
+"for performance reasons. Transforms are accumulated and then set. Use this if "
+"you need an up-to-date transform when doing physics operations."
+msgstr ""
+"強制更新變換。由於性能原因,物理中的變換改變不是即時的。變換是在累積後再設置。"
+"如果你在進行物理操作時需要最新的變換,請使用此功能。"
+
+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].\n"
+"[b]Note:[/b] For screen-space coordinates (e.g. when using a non-embedded "
+"[Popup]), you can use [method DisplayServer.mouse_get_position]."
+msgstr ""
+"返回該 [CanvasItem] 所在的 [CanvasLayer] 中滑鼠的位置,使用該 [CanvasLayer] 的"
+"坐標系。\n"
+"[b]注意:[/b]要得到螢幕空間的座標(例如使用非嵌入式 [Popup] 時),你可以使用 "
+"[method DisplayServer.mouse_get_position]。"
+
+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 "返回渲染可見層上的某個比特位。"
+
+msgid "Returns the [World2D] where this item is in."
+msgstr "返回此物品所在的 [World2D]。"
+
+msgid ""
+"Hide the [CanvasItem] if it's currently visible. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr ""
+"如果該 [CanvasItem] 目前是可見的,則將其隱藏。相當於將 [member visible] 設為 "
+"[code]false[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if local transform notifications are communicated "
+"to children."
+msgstr "如果將局部變換通知傳達給子級,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if global transform notifications are communicated "
+"to children."
+msgstr "如果將全域變換通知傳達給子級,則返回 [code]true[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the node is present in the [SceneTree], its "
+"[member visible] property is [code]true[/code] and all its ancestors are also "
+"visible. If any ancestor is hidden, this node will not be visible in the "
+"scene tree, and is consequently not drawn (see [method _draw])."
+msgstr ""
+"如果該節點位於 [SceneTree] 中,並且其 [member visible] 屬性為 [code]true[/"
+"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. "
+"This only occurs [b]once[/b] per frame, even if this method has been called "
+"multiple times."
+msgstr ""
+"將該 [CanvasItem] 加入重繪佇列。空閒時,如果 [CanvasItem] 可見,則會發送 "
+"[constant NOTIFICATION_DRAW] 並呼叫 [method _draw]。即便多次呼叫這個方法,每影"
+"格也都只會發生[b]一次[/b]繪製。"
+
+msgid ""
+"If [param enable] is [code]true[/code], this node will receive [constant "
+"NOTIFICATION_LOCAL_TRANSFORM_CHANGED] when its local transform changes."
+msgstr ""
+"如果 [param enable] 為 [code]true[/code],則該節點將在其局部變換發生改變時收"
+"到 [constant NOTIFICATION_LOCAL_TRANSFORM_CHANGED]。"
+
+msgid ""
+"If [param enable] is [code]true[/code], this node will receive [constant "
+"NOTIFICATION_TRANSFORM_CHANGED] when its global transform changes."
+msgstr ""
+"如果 [param enable] 為 [code]true[/code],那麼這個節點會在其全域變換發生改變時"
+"接收到 [constant NOTIFICATION_TRANSFORM_CHANGED]。"
+
+msgid ""
+"Set/clear individual bits on the rendering visibility layer. This simplifies "
+"editing this [CanvasItem]'s visibility layer."
+msgstr ""
+"設定或清除渲染可見層上的單個位。這簡化了對該 [CanvasItem] 的可見層的編輯。"
+
+msgid ""
+"Show the [CanvasItem] if it's currently hidden. This is equivalent to setting "
+"[member visible] to [code]true[/code]. For controls that inherit [Popup], the "
+"correct way to make them visible is to call one of the multiple [code]popup*()"
+"[/code] functions instead."
+msgstr ""
+"如果該 [CanvasItem] 目前是隱藏的,則將其顯示。相當於將 [member visible] 設為 "
+"[code]true[/code]。對於繼承自 [Popup] 的控制項,讓它們可見的正確做法是換成呼叫"
+"各種 [code]popup*()[/code] 函式的其中之一。"
+
+msgid ""
+"Allows the current node to clip children nodes, essentially acting as a mask."
+msgstr "允許目前節點裁剪子節點,本質上是充當遮罩。"
+
+msgid ""
+"The rendering layers in which this [CanvasItem] responds to [Light2D] nodes."
+msgstr "該 [CanvasItem] 的渲染層,用於回應 [Light2D] 節點。"
+
+msgid "The material applied to this [CanvasItem]."
+msgstr "套用於這個 [CanvasItem] 的材質。"
+
+msgid ""
+"The color applied to this [CanvasItem]. This property does affect child "
+"[CanvasItem]s, unlike [member self_modulate] which only affects the node "
+"itself."
+msgstr ""
+"套用於這個 [CanvasItem] 的顏色。這個屬性會影響子級 [CanvasItem],與只會影響節"
+"點自身的 [member self_modulate] 不同。"
+
+msgid ""
+"The color applied to this [CanvasItem]. This property does [b]not[/b] affect "
+"child [CanvasItem]s, unlike [member modulate] which affects both the node "
+"itself and its children.\n"
+"[b]Note:[/b] Internal children (e.g. sliders in [ColorPicker] or tab bar in "
+"[TabContainer]) are also not affected by this property (see "
+"[code]include_internal[/code] parameter of [method Node.get_child] and other "
+"similar methods)."
+msgstr ""
+"套用於這個 [CanvasItem] 的顏色。這個屬性[b]不會[/b]影響子級 [CanvasItem],與會"
+"同時影響節點自身和子級的 [member modulate] 不同。\n"
+"[b]注意:[/b]內部子節點(例如 [ColorPicker] 中的滑動條、[TabContainer] 中的選"
+"項卡欄)也不受這個屬性的影響(見 [method Node.get_child] 等類似方法的 "
+"[code]include_internal[/code] 參數)。"
+
+msgid "If [code]true[/code], the object draws behind its parent."
+msgstr "如果為 [code]true[/code],則對象在其父物件後面繪製。"
+
+msgid "The texture filtering mode to use on this [CanvasItem]."
+msgstr "在該 [CanvasItem] 上使用的紋理篩選模式。"
+
+msgid "The texture repeating mode to use on this [CanvasItem]."
+msgstr "在該 [CanvasItem] 上使用的紋理重複模式。"
+
+msgid ""
+"If [code]true[/code], this [CanvasItem] will [i]not[/i] inherit its transform "
+"from parent [CanvasItem]s. Its draw order will also be changed to make it "
+"draw on top of other [CanvasItem]s that do not have [member top_level] set to "
+"[code]true[/code]. The [CanvasItem] will effectively act as if it was placed "
+"as a child of a bare [Node]."
+msgstr ""
+"如果為 [code]true[/code],則該 [CanvasItem] [i]不會[/i]繼承父級 [CanvasItem] "
+"的變換。它的繪製順序也會發生改變,會在其他沒有將 [member top_level] 設定為 "
+"[code]true[/code] 的 [CanvasItem] 之上繪製。效果和把該 [CanvasItem] 作為裸 "
+"[Node] 的子級一樣。"
+
+msgid ""
+"If [code]true[/code], the parent [CanvasItem]'s [member material] property is "
+"used as this one's material."
+msgstr ""
+"如果為 [code]true[/code],則將父級 [CanvasItem] 的 [member material] 屬性用作"
+"此項的材質。"
+
+msgid ""
+"The rendering layer in which this [CanvasItem] is rendered by [Viewport] "
+"nodes. A [Viewport] will render a [CanvasItem] if it and all its parents "
+"share a layer with the [Viewport]'s canvas cull mask."
+msgstr ""
+"[Viewport] 節點渲染該 [CanvasItem] 時所使用的渲染層。只有 [CanvasItem] 及其所"
+"有父級均與 [Viewport] 的畫布剔除遮罩有交集,該 [Viewport] 才會渲染此 "
+"[CanvasItem]。"
+
+msgid ""
+"If [code]true[/code], this [CanvasItem] is drawn. The node is only visible if "
+"all of its ancestors are visible as well (in other words, [method "
+"is_visible_in_tree] must return [code]true[/code]).\n"
+"[b]Note:[/b] For controls that inherit [Popup], the correct way to make them "
+"visible is to call one of the multiple [code]popup*()[/code] functions "
+"instead."
+msgstr ""
+"如果為 [code]true[/code],這個 [CanvasItem] 被繪製。只有當它的所有父節點也可見"
+"時,該節點才是可見的(換句話說,[method is_visible_in_tree] 必須返回 "
+"[code]true[/code])。\n"
+"[b]注意:[/b]對於繼承了 [Popup] 的控制項,使其可見的正確方法是呼叫多個 "
+"[code]popup*()[/code] 函式之一。"
+
+msgid ""
+"If [code]true[/code], child nodes with the lowest Y position are drawn before "
+"those with a higher Y position. If [code]false[/code], Y-sorting is disabled. "
+"Y-sorting only affects children that inherit from [CanvasItem].\n"
+"You can nest nodes with Y-sorting. Child Y-sorted nodes are sorted in the "
+"same space as the parent Y-sort. This feature allows you to organize a scene "
+"better or divide it into multiple ones without changing your scene tree."
+msgstr ""
+"如果為 [code]true[/code],則會在繪製 Y 位置最低的子節點之後再繪製 Y 位置較高的"
+"子節點。如果為 [code]false[/code],則禁用 Y 排序。Y 排序僅影響繼承自 "
+"[CanvasItem] 的子節點。\n"
+"可以將 Y 排序的節點進行巢狀。子級 Y 排序的節點,會與父級在同一空間中進行 Y 排"
+"序。此功能可以讓你在不更改場景樹的情況下,更好地組織場景,或者將場景分為多個場"
+"景。"
+
+msgid ""
+"If [code]true[/code], the node's Z index is relative to its parent's Z index. "
+"If this node's Z index is 2 and its parent's effective Z index is 3, then "
+"this node's effective Z index will be 2 + 3 = 5."
+msgstr ""
+"如果為 [code]true[/code],節點的 Z 索引是相對於它的父節點的 Z 索引而言的。如果"
+"這個節點的 Z 索引是 2,它的父節點的實際 Z 索引是 3,那麼這個節點的實際 Z 索引"
+"將是 2 + 3 = 5。"
+
+msgid ""
+"Z index. Controls the order in which the nodes render. A node with a higher Z "
+"index will display in front of others. Must be between [constant "
+"RenderingServer.CANVAS_ITEM_Z_MIN] and [constant RenderingServer."
+"CANVAS_ITEM_Z_MAX] (inclusive).\n"
+"[b]Note:[/b] Changing the Z index of a [Control] only affects the drawing "
+"order, not the order in which input events are handled. This can be useful to "
+"implement certain UI animations, e.g. a menu where hovered items are scaled "
+"and should overlap others."
+msgstr ""
+"Z 索引。控制節點的渲染順序。具有較高 Z 索引的節點將顯示在其他節點的前面。必須"
+"在 [constant RenderingServer.CANVAS_ITEM_Z_MIN] 和 [constant RenderingServer."
+"CANVAS_ITEM_Z_MAX]之間(包含)。\n"
+"[b]注意:[/b]改變 [Control] 的 Z 索引只影響繪圖順序,不影響處理輸入事件的順"
+"序。可用於實作某些 UI 動畫,例如對處於懸停狀態的功能表專案進行縮放,此時會與其"
+"他內容重疊。"
+
+msgid ""
+"Emitted when the [CanvasItem] must redraw, [i]after[/i] the related [constant "
+"NOTIFICATION_DRAW] notification, and [i]before[/i] [method _draw] is called.\n"
+"[b]Note:[/b] Deferred connections do not allow drawing through the "
+"[code]draw_*[/code] methods."
+msgstr ""
+"當該 [CanvasItem] 必須重繪時發出,發生在相關的 [constant NOTIFICATION_DRAW] 通"
+"知[i]之後[/i],呼叫 [method _draw] [i]之前[/i]。\n"
+"[b]注意:[/b]延遲連接無法使用 [code]draw_*[/code] 方法進行繪製。"
+
+msgid "Emitted when becoming hidden."
+msgstr "當隱藏時發出。"
+
+msgid ""
+"Emitted when the item's [Rect2] boundaries (position or size) have changed, "
+"or when an action is taking place that may have impacted these boundaries (e."
+"g. changing [member Sprite2D.texture])."
+msgstr ""
+"當 CanvasItem 的 [Rect2] 邊界(位置或大小)發生變化時,或者當發生可能影響這些"
+"邊界的操作(例如,更改 [member Sprite2D.texture])時發出。"
+
+msgid "Emitted when the visibility (hidden/visible) changes."
+msgstr "當可見性(隱藏/可見)更改時發出。"
+
+msgid ""
+"The [CanvasItem]'s global transform has changed. This notification is only "
+"received if enabled by [method set_notify_transform]."
+msgstr ""
+"該 [CanvasItem] 的全域變換已更改。只有在通過 [method set_notify_transform] 啟"
+"用時,才會收到這個通知。"
+
+msgid ""
+"The [CanvasItem]'s local transform has changed. This notification is only "
+"received if enabled by [method set_notify_local_transform]."
+msgstr ""
+"該 [CanvasItem] 的局部變換已更改。只有在通過 [method "
+"set_notify_local_transform] 啟用時,才會收到這個通知。"
+
+msgid "The [CanvasItem] is requested to draw (see [method _draw])."
+msgstr "要求繪製該 [CanvasItem](見 [method _draw])。"
+
+msgid "The [CanvasItem]'s visibility has changed."
+msgstr "該 [CanvasItem] 的可見性已更改。"
+
+msgid "The [CanvasItem] has entered the canvas."
+msgstr "該 [CanvasItem] 已進入畫布。"
+
+msgid "The [CanvasItem] has exited the canvas."
+msgstr "該 [CanvasItem] 已退出畫布。"
+
+msgid "The [CanvasItem]'s active [World2D] changed."
+msgstr "該 [CanvasItem] 的活動 [World2D] 已更改。"
+
+msgid "The [CanvasItem] will inherit the filter from its parent."
+msgstr "該 [CanvasItem] 將從其父級繼承篩檢程式。"
+
+msgid ""
+"The texture filter reads from the nearest pixel only. The simplest and "
+"fastest method of filtering. Useful for pixel art."
+msgstr "紋理篩檢程式僅讀取最鄰近的圖元。最簡單、最快的篩選方法。可用於圖元畫。"
+
+msgid ""
+"The texture filter blends between the nearest four pixels. Use this for most "
+"cases where you want to avoid a pixelated style."
+msgstr ""
+"紋理篩檢程式在最鄰近的四個圖元之間混合。如果想要避免圖元化樣式,大多數情況下請"
+"使用此選項。"
+
+msgid ""
+"The texture filter reads from the nearest pixel in the nearest mipmap. This "
+"is the fastest way to read from textures with mipmaps."
+msgstr ""
+"紋理篩檢程式讀取最鄰近的 mipmap 中的最鄰近圖元。這是使用 mipmap 從紋理中讀取的"
+"最快方法。"
+
+msgid ""
+"The texture filter blends between the nearest 4 pixels and between the "
+"nearest 2 mipmaps. Use this for non-pixel art textures that may be viewed at "
+"a low scale (e.g. due to [Camera2D] zoom), as mipmaps are important to smooth "
+"out pixels that are smaller than on-screen pixels."
+msgstr ""
+"紋理篩檢程式在最鄰近的 4 個圖元和最鄰近的 2 個 mipmap 之間混合。請用於可能以低"
+"縮放率查看的非圖元畫紋理(例如由 [Camera2D] 縮放造成),因為 mipmap 對於平滑小"
+"於螢幕圖元的圖元很重要。"
+
+msgid ""
+"The texture filter reads from the nearest pixel, but selects a mipmap based "
+"on the angle between the surface and the camera view. This reduces artifacts "
+"on surfaces that are almost in line with the camera. The anisotropic "
+"filtering level can be changed by adjusting [member ProjectSettings.rendering/"
+"textures/default_filters/anisotropic_filtering_level].\n"
+"[b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant "
+"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] is usually more appropriate."
+msgstr ""
+"紋理篩檢程式讀取最鄰近的圖元,但會根據表面和相機視圖之間的角度選擇 mipmap。可"
+"以減少幾乎與相機成一直線的表面的偽影。各向異性篩選級別可以通過調整 [member "
+"ProjectSettings.rendering/textures/default_filters/"
+"anisotropic_filtering_level] 來改變。\n"
+"[b]注意:[/b]這個紋理篩檢程式很少用於 2D 專案。[constant "
+"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] 通常更合適。"
+
+msgid ""
+"The texture filter blends between the nearest 4 pixels and selects a mipmap "
+"based on the angle between the surface and the camera view. This reduces "
+"artifacts on surfaces that are almost in line with the camera. This is the "
+"slowest of the filtering options, but results in the highest quality "
+"texturing. The anisotropic filtering level can be changed by adjusting "
+"[member ProjectSettings.rendering/textures/default_filters/"
+"anisotropic_filtering_level].\n"
+"[b]Note:[/b] This texture filter is rarely useful in 2D projects. [constant "
+"TEXTURE_FILTER_LINEAR_WITH_MIPMAPS] is usually more appropriate."
+msgstr ""
+"紋理篩檢程式在最鄰近的 4 個圖元之間進行混合,並會根據表面和相機視圖之間的角度"
+"選擇 mipmap。可以減少幾乎與相機成一直線的表面的偽影。這是最慢的篩選選項,但可"
+"以得到最高品質的紋理。各向異性篩選級別可以通過調整 [member ProjectSettings."
+"rendering/textures/default_filters/anisotropic_filtering_level] 來改變。\n"
+"[b]注意:[/b]這個紋理篩檢程式很少用於 2D 專案。[constant "
+"TEXTURE_FILTER_NEAREST_WITH_MIPMAPS] 通常更合適。"
+
+msgid "Texture will not repeat."
+msgstr "紋理不會重複。"
+
+msgid "Texture will repeat normally."
+msgstr "紋理將正常重複。"
+
+msgid ""
+"Texture will repeat in a 2x2 tiled mode, where elements at even positions are "
+"mirrored."
+msgstr "紋理將以 2x2 平鋪模式重複,其中偶數位置的元素會被鏡像。"
+
+msgid "Represents the size of the [enum TextureRepeat] enum."
+msgstr "代表 [enum TextureRepeat] 列舉的大小。"
+
+msgid "Child draws over parent and is not clipped."
+msgstr "子級繪製在父級之上,不會被裁剪。"
+
+msgid ""
+"Parent is used for the purposes of clipping only. Child is clipped to the "
+"parent's visible area, parent is not drawn."
+msgstr "父級僅用於裁剪目的。子級被裁剪到父級的可見區域,不繪製父級。"
+
+msgid ""
+"Parent is used for clipping child, but parent is also drawn underneath child "
+"as normal before clipping child to its visible area."
+msgstr ""
+"父級用於裁剪子級,但在將子級剪裁到其可見區域之前,父級也像往常一樣繪製在子級下"
+"方。"
+
+msgid "Represents the size of the [enum ClipChildrenMode] enum."
+msgstr "代表 [enum ClipChildrenMode] 列舉的大小。"
+
+msgid "A material for [CanvasItem]s."
+msgstr "[CanvasItem]的材質。"
+
+msgid ""
+"[CanvasItemMaterial]s provide a means of modifying the textures associated "
+"with a CanvasItem. They specialize in describing blend and lighting behaviors "
+"for textures. Use a [ShaderMaterial] to more fully customize a material's "
+"interactions with a [CanvasItem]."
+msgstr ""
+"[CanvasItemMaterial]提供了一種修改與CanvasItem相關聯的紋理的方法。他們專注於描"
+"述紋理的混合和照明行為。使用[ShaderMaterial]可以更全面地自訂材質與[CanvasItem]"
+"的互動。"
+
+msgid ""
+"The manner in which a material's rendering is applied to underlying textures."
+msgstr "將材質的渲染套用於基礎紋理的方式。"
+
+msgid "The manner in which material reacts to lighting."
+msgstr "材質對照明的反應方式。"
+
+msgid ""
+"The number of columns in the spritesheet assigned as [Texture2D] for a "
+"[GPUParticles2D] or [CPUParticles2D].\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+"[GPUParticles2D] 或 [CPUParticles2D] 指定給 [Texture2D] 的精靈表中擁有的列"
+"數。\n"
+"[b]注意:[/b]該屬性只有在 [member particles_animation] 為 [code]true[/code] "
+"時,才會在編輯器中被使用和可見。"
+
+msgid ""
+"If [code]true[/code], the particles animation will loop.\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+"如果為 [code]true[/code],粒子動畫將迴圈播放。\n"
+"[b]注意:[/b]該屬性只有在 [member particles_animation]為 [code]true[/code] "
+"時,才會在編輯器中被使用和可見。"
+
+msgid ""
+"The number of rows in the spritesheet assigned as [Texture2D] for a "
+"[GPUParticles2D] or [CPUParticles2D].\n"
+"[b]Note:[/b] This property is only used and visible in the editor if [member "
+"particles_animation] is [code]true[/code]."
+msgstr ""
+"[GPUParticles2D] 或 [CPUParticles2D] 指定給 [Texture2D] 的精靈表中擁有的行"
+"數。\n"
+"[b]注意:[/b]該屬性只有在 [member particles_animation] 為 [code]true[/code] "
+"時,才會在編輯器中被使用和可見。"
+
+msgid ""
+"If [code]true[/code], enable spritesheet-based animation features when "
+"assigned to [GPUParticles2D] and [CPUParticles2D] nodes. The [member "
+"ParticleProcessMaterial.anim_speed_max] or [member CPUParticles2D."
+"anim_speed_max] should also be set to a positive value for the animation to "
+"play.\n"
+"This property (and other [code]particles_anim_*[/code] properties that depend "
+"on it) has no effect on other types of nodes."
+msgstr ""
+"如果 [code]true[/code] ,在分配給 [GPUParticles2D] 和 [CPUParticles2D] 節點"
+"時,啟用基於精靈表的動畫功能。[member ParticleProcessMaterial.anim_speed_max] "
+"或 [member CPUParticles2D.anim_speed_max] 也應該設定為正值,才能播放動畫。\n"
+"這個屬性(以及其他依賴它的 [code]particles_anim_*[/code] 屬性)對其他型別的節"
+"點沒有影響。"
+
+msgid ""
+"Mix blending mode. Colors are assumed to be independent of the alpha "
+"(opacity) value."
+msgstr "混合混合模式。假設顏色與 Alpha 值(不透明度)無關。"
+
+msgid "Additive blending mode."
+msgstr "新增混合模式。"
+
+msgid "Subtractive blending mode."
+msgstr "減去混合模式。"
+
+msgid "Multiplicative blending mode."
+msgstr "正片疊底混合模式。"
+
+msgid ""
+"Mix blending mode. Colors are assumed to be premultiplied by the alpha "
+"(opacity) value."
+msgstr "混合混合模式。假定顏色已預先乘以 Alpha 值(不透明度)。"
+
+msgid ""
+"Render the material using both light and non-light sensitive material "
+"properties."
+msgstr "使用光敏和非光敏材料屬性渲染材質。"
+
+msgid "Render the material as if there were no light."
+msgstr "將材質渲染成沒有光的樣子。"
+
+msgid "Render the material as if there were only light."
+msgstr "將材質渲染成只有光的樣子。"
+
+msgid "A node used for independent rendering of objects within a 2D scene."
+msgstr "用於 2D 場景中的物件的獨立渲染的節點。"
+
+msgid ""
+"[CanvasItem]-derived nodes that are direct or indirect children of a "
+"[CanvasLayer] will be drawn in that layer. The layer is a numeric index that "
+"defines the draw order. The default 2D scene renders with index [code]0[/"
+"code], so a [CanvasLayer] with index [code]-1[/code] will be drawn below, and "
+"a [CanvasLayer] with index [code]1[/code] will be drawn above. This order "
+"will hold regardless of the [member CanvasItem.z_index] of the nodes within "
+"each layer.\n"
+"[CanvasLayer]s can be hidden and they can also optionally follow the "
+"viewport. This makes them useful for HUDs like health bar overlays (on layers "
+"[code]1[/code] and higher) or backgrounds (on layers [code]-1[/code] and "
+"lower).\n"
+"[b]Note:[/b] Embedded [Window]s are placed on layer [code]1024[/code]. "
+"[CanvasItem]s on layers [code]1025[/code] and higher appear in front of "
+"embedded windows.\n"
+"[b]Note:[/b] Each [CanvasLayer] is drawn on one specific [Viewport] and "
+"cannot be shared between multiple [Viewport]s, see [member custom_viewport]. "
+"When using multiple [Viewport]s, for example in a split-screen game, you need "
+"create an individual [CanvasLayer] for each [Viewport] you want it to be "
+"drawn on."
+msgstr ""
+"[CanvasLayer] 的直接或間接子節點中,衍生自 [CanvasItem] 的節點會在該圖層中進行"
+"繪製。圖層是定義繪製順序的數位索引。預設 2D 場景使用的索引為 [code]0[/code],"
+"因此索引為 [code]-1[/code] 的 [CanvasLayer] 會在下方繪製,而索引為 [code]1[/"
+"code] 的 [CanvasLayer] 會在上方繪製。無論節點在圖層中的 [member CanvasItem."
+"z_index] 是多少,這一順序都成立。\n"
+"[CanvasLayer] 可以隱藏,也可以跟隨視口。因此常用於血條等 HUD(位於 [code]1[/"
+"code] 或更高的圖層上)和背景(位於 [code]-1[/code] 或更低的圖層上)。\n"
+"[b]注意:[/b]嵌入式 [Window] 位於 [code]1024[/code] 圖層。位於 [code]1025[/"
+"code] 或更高圖層的 [CanvasItem] 會顯示在嵌入式視窗之上。\n"
+"[b]注意:[/b]每個 [CanvasLayer] 都是在一個特定的 [Viewport] 中繪製的,不能在多"
+"個 [Viewport] 之間共用,見 [member custom_viewport]。使用多個 [Viewport] 時,"
+"例如分屏遊戲中,你需要為每個想要繪製的 [Viewport] 建立一個單獨的 "
+"[CanvasLayer]。"
+
+msgid "Canvas layers"
+msgstr "畫布層"
+
+msgid "Returns the RID of the canvas used by this layer."
+msgstr "返回此層使用的畫布的 RID。"
+
+msgid ""
+"Returns the transform from the [CanvasLayer]s coordinate system to the "
+"[Viewport]s coordinate system."
+msgstr "返回從 [CanvasLayer] 坐標系到 [Viewport] 坐標系的變換。"
+
+msgid ""
+"Hides any [CanvasItem] under this [CanvasLayer]. This is equivalent to "
+"setting [member visible] to [code]false[/code]."
+msgstr ""
+"隱藏該 [CanvasLayer] 下的所有 [CanvasItem]。相當於將 [member visible] 設為 "
+"[code]false[/code]。"
+
+msgid ""
+"Shows any [CanvasItem] under this [CanvasLayer]. This is equivalent to "
+"setting [member visible] to [code]true[/code]."
+msgstr ""
+"顯示該 [CanvasLayer] 下的所有 [CanvasItem]。相當於將 [member visible] 設為 "
+"[code]true[/code]。"
+
+msgid ""
+"The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/"
+"code], uses the default viewport instead."
+msgstr ""
+"分配給該 [CanvasLayer] 的自訂 [Viewport] 節點。如果為 [code]null[/code],則使"
+"用預設的視口。"
+
+msgid ""
+"If enabled, the [CanvasLayer] will use the viewport's transform, so it will "
+"move when camera moves instead of being anchored in a fixed position on the "
+"screen.\n"
+"Together with [member follow_viewport_scale] it can be used for a pseudo 3D "
+"effect."
+msgstr ""
+"啟用時,該 [CanvasLayer] 會使用視口的變換,所以它會隨相機移動,而不是保持在屏"
+"幕上的某個固定位置。\n"
+"與 [member follow_viewport_scale] 配合可以實作偽 3D 效果。"
+
+msgid ""
+"Scales the layer when using [member follow_viewport_enabled]. Layers moving "
+"into the foreground should have increasing scales, while layers moving into "
+"the background should have decreasing scales."
+msgstr ""
+"使用 [member follow_viewport_enabled] 時縮放圖層。移入到前景的圖層應具有增加的"
+"縮放,而移入到背景的圖層應具有減小的縮放。"
+
+msgid ""
+"Layer index for draw order. Lower values are drawn behind higher values.\n"
+"[b]Note:[/b] If multiple CanvasLayers have the same layer index, [CanvasItem] "
+"children of one CanvasLayer are drawn behind the [CanvasItem] children of the "
+"other CanvasLayer. Which CanvasLayer is drawn in front is non-deterministic."
+msgstr ""
+"繪製順序的圖層索引。較低的值繪製在較高的值後面。\n"
+"[b]注意:[/b] 如果多個 CanvasLayer 具有相同的圖層索引,則一個 CanvasLayer 的 "
+"[CanvasItem] 子級將繪製在另一 CanvasLayer 的 [CanvasItem] 子級後面。哪一個"
+"CanvasLayer繪製在前面是不確定的。"
+
+msgid "The layer's base offset."
+msgstr "圖層的基本偏移量。"
+
+msgid "The layer's rotation in radians."
+msgstr "圖層的旋轉弧度。"
+
+msgid "The layer's scale."
+msgstr "圖層的縮放。"
+
+msgid "The layer's transform."
+msgstr "圖層的變換。"
+
+msgid ""
+"If [code]false[/code], any [CanvasItem] under this [CanvasLayer] will be "
+"hidden.\n"
+"Unlike [member CanvasItem.visible], visibility of a [CanvasLayer] isn't "
+"propagated to underlying layers."
+msgstr ""
+"為 [code]false[/code] 時,該 [CanvasLayer] 下的所有 [CanvasItem] 都會被隱"
+"藏。\n"
+"與 [member CanvasItem.visible] 不同,[CanvasLayer] 的顯示與否不會傳播到其內部"
+"的層。"
+
+msgid "Emitted when visibility of the layer is changed. See [member visible]."
+msgstr "當該層的可見性發生變化時觸發。請參閱 [member visible]。"
+
+msgid "A node that applies a color tint to a canvas."
+msgstr "將一種色調套用於一張畫布的節點。"
+
+msgid ""
+"[CanvasModulate] applies a color tint to all nodes on a canvas. Only one can "
+"be used to tint a canvas, but [CanvasLayer]s can be used to render things "
+"independently."
+msgstr ""
+"[CanvasModulate] 將一種色調套用於一張畫布上的所有節點。一張畫布只有一個可用於"
+"為畫布著色,但 [CanvasLayer] 可用於獨立渲染事物。"
+
+msgid "The tint color to apply."
+msgstr "要套用的色調顏色。"
+
+msgid "Texture with optional normal and specular maps for use in 2D rendering."
+msgstr "用於 2D 渲染的紋理,帶有可選的法線和鏡面貼圖。"
+
+msgid ""
+"[CanvasTexture] is an alternative to [ImageTexture] for 2D rendering. It "
+"allows using normal maps and specular maps in any node that inherits from "
+"[CanvasItem]. [CanvasTexture] also allows overriding the texture's filter and "
+"repeat mode independently of the node's properties (or the project "
+"settings).\n"
+"[b]Note:[/b] [CanvasTexture] cannot be used in 3D rendering. For physically-"
+"based materials in 3D, use [BaseMaterial3D] instead."
+msgstr ""
+"[CanvasTexture] 是用於 2D 渲染的 [ImageTexture] 的替代品。它允許在任何繼承自 "
+"[CanvasItem] 的節點中使用法線貼圖和鏡面貼圖。[CanvasTexture] 還允許獨立於節點"
+"的屬性(或專案設定)覆蓋紋理的篩選模式和重複模式。\n"
+"[b]注意:[/b][CanvasTexture] 不能用於 3D 渲染。對於 3D 中基於物理的材質,請使"
+"用 [BaseMaterial3D] 來代替。"
+
+msgid "2D Lights and Shadows"
+msgstr "2D 燈光和陰影"
+
+msgid ""
+"The diffuse (color) texture to use. This is the main texture you want to set "
+"in most cases."
+msgstr "要使用的漫反射(顏色)紋理。這是你在大多數情況下要設定的主要紋理。"
+
+msgid ""
+"The normal map texture to use. Only has a visible effect if [Light2D]s are "
+"affecting this [CanvasTexture].\n"
+"[b]Note:[/b] Godot expects the normal map to use X+, Y+, and Z+ coordinates. "
+"See [url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a "
+"comparison of normal map coordinates expected by popular engines."
+msgstr ""
+"要使用的法線貼圖紋理。僅在有 [Light2D] 影響該 [CanvasTexture] 時才有可見的效"
+"果。\n"
+"[b]注意:[/b]Godot 期望法線貼圖使用 X+、Y+、Z+ 坐標系。比較流行的引擎所期望的"
+"法線貼圖坐標系見[url=http://wiki.polycount.com/wiki/"
+"Normal_Map_Technical_Details#Common_Swizzle_Coordinates]這個頁面[/url]。"
+
+msgid ""
+"The multiplier for specular reflection colors. The [Light2D]'s color is also "
+"taken into account when determining the reflection color. Only has a visible "
+"effect if [Light2D]s are affecting this [CanvasTexture]."
+msgstr ""
+"鏡面反射顏色的乘數。在確定反射顏色時,[Light2D] 的顏色也會被考慮在內。只有在 "
+"[Light2D] 影響到這個 [CanvasTexture] 時才有可見的效果。"
+
+msgid ""
+"The specular exponent for [Light2D] specular reflections. Higher values "
+"result in a more glossy/\"wet\" look, with reflections becoming more "
+"localized and less visible overall. The default value of [code]1.0[/code] "
+"disables specular reflections entirely. Only has a visible effect if "
+"[Light2D]s are affecting this [CanvasTexture]."
+msgstr ""
+"用於 [Light2D] 鏡面反射的鏡面指數。更高的值會產生更有光澤或更加“濕潤”的外觀,"
+"反射變得更局部,且整體上不太明顯。預設值為 [code]1.0[/code] ,將完全禁用鏡面反"
+"射。只有在 [Light2D] 影響到這個 [CanvasTexture] 時才會有可見的效果。"
+
+msgid ""
+"The specular map to use for [Light2D] specular reflections. This should be a "
+"grayscale or colored texture, with brighter areas resulting in a higher "
+"[member specular_shininess] value. Using a colored [member specular_texture] "
+"allows controlling specular shininess on a per-channel basis. Only has a "
+"visible effect if [Light2D]s are affecting this [CanvasTexture]."
+msgstr ""
+"用於 [Light2D] 鏡面反射的鏡面貼圖。這應該是一個灰度或彩色紋理,更亮的區域會產"
+"生更高的 [member specular_shininess] 值。使用彩色 [member specular_texture] 允"
+"許在每個通道的基礎上控制鏡面反射光澤度。僅當 [Light2D] 影響該 [CanvasTexture] "
+"時才有可見的效果。"
+
+msgid "The texture filtering mode to use when drawing this [CanvasTexture]."
+msgstr "繪製該 [CanvasTexture] 時所使用的紋理篩選模式。"
+
+msgid "The texture repeat mode to use when drawing this [CanvasTexture]."
+msgstr "繪製該 [CanvasTexture] 時所使用的紋理重複模式。"
+
+msgid "Class representing a capsule-shaped [PrimitiveMesh]."
+msgstr "表示膠囊狀 [PrimitiveMesh] 的類。"
+
+msgid "Total height of the capsule mesh (including the hemispherical ends)."
+msgstr "膠囊網格的總高度(包括半球形末端)。"
+
+msgid "Number of radial segments on the capsule mesh."
+msgstr "膠囊網格上的徑向線段數。"
+
+msgid "Radius of the capsule mesh."
+msgstr "膠囊網格的半徑。"
+
+msgid "Number of rings along the height of the capsule."
+msgstr "沿膠囊高度的環數。"
+
+msgid "A 2D capsule shape used for physics collision."
+msgstr "用於物理碰撞的 2D 膠囊形狀。"
+
+msgid ""
+"A 2D capsule shape, intended for use in physics. Usually used to provide a "
+"shape for a [CollisionShape2D].\n"
+"[b]Performance:[/b] [CapsuleShape2D] is fast to check collisions against, but "
+"it is slower than [RectangleShape2D] and [CircleShape2D]."
+msgstr ""
+"2D 膠囊形狀,旨在用於物理學。通常用於為 [CollisionShape2D] 提供形狀。\n"
+"[b]性能:[/b][CapsuleShape2D] 可以快速檢查碰撞,但比 [RectangleShape2D] 和 "
+"[CircleShape2D] 慢。"
+
+msgid "The capsule's height."
+msgstr "膠囊體的高度。"
+
+msgid "The capsule's radius."
+msgstr "膠囊體的半徑。"
+
+msgid "A 3D capsule shape used for physics collision."
+msgstr "用於物理碰撞的 3D 膠囊形狀。"
+
+msgid ""
+"A 3D capsule shape, intended for use in physics. Usually used to provide a "
+"shape for a [CollisionShape3D].\n"
+"[b]Performance:[/b] [CapsuleShape3D] is fast to check collisions against. It "
+"is faster than [CylinderShape3D], but slower than [SphereShape3D] and "
+"[BoxShape3D]."
+msgstr ""
+"3D 膠囊形狀,旨在用於物理學。通常用於為 [CollisionShape3D] 提供形狀。\n"
+"[b]性能:[/b][CapsuleShape3D] 可以快速檢查碰撞。比 [CylinderShape3D] 快,但比 "
+"[SphereShape3D] 和 [BoxShape3D] 慢。"
+
+msgid "A container that keeps child controls in its center."
+msgstr "將子控制項保持在其中心的容器。"
+
+msgid ""
+"[CenterContainer] is a container that keeps all of its child controls in its "
+"center at their minimum size."
+msgstr ""
+"[CenterContainer] 是一種容器,它將其所有子控制項以最小尺寸保持在其中心。"
+
+msgid ""
+"If [code]true[/code], centers children relative to the [CenterContainer]'s "
+"top left corner."
+msgstr ""
+"如果為 [code]true[/code],會將子節點相對於 [CenterContainer] 的左上角居中。"
+
+msgid "A 2D physics body specialized for characters moved by script."
+msgstr "專門用於通過腳本移動的角色的 2D 物理物體。"
+
+msgid ""
+"[CharacterBody2D] is a specialized class for physics bodies that are meant to "
+"be user-controlled. They are not affected by physics at all, but they affect "
+"other physics bodies in their path. They are mainly used to provide high-"
+"level API to move objects with wall and slope detection ([method "
+"move_and_slide] method) in addition to the general collision detection "
+"provided by [method PhysicsBody2D.move_and_collide]. This makes it useful for "
+"highly configurable physics bodies that must move in specific ways and "
+"collide with the world, as is often the case with user-controlled "
+"characters.\n"
+"For game objects that don't require complex movement or collision detection, "
+"such as moving platforms, [AnimatableBody2D] is simpler to configure."
+msgstr ""
+"[CharacterBody2D] 是針對使用者控制的物理體的特化類。它們不會受到物理的影響,但"
+"會影響路徑上的其他物理體。除了由 [method PhysicsBody2D.move_and_collide] 提供"
+"的常見的碰撞偵測之外,它們主要用於提供移動對象的高階 API,能夠偵測牆壁和斜坡"
+"([method move_and_slide] 方法)。因此適用於需要高度可配置的物理體,因為通常是"
+"使用者控制的角色,所以必須按照特定的方式移動、與世界發生碰撞。\n"
+"如果是移動平臺等不需要複雜移動和碰撞偵測的遊戲物件,[AnimatableBody2D] 更方便"
+"配置。"
+
+msgid "Kinematic character (2D)"
+msgstr "運動學角色(2D)"
+
+msgid "Using CharacterBody2D"
+msgstr "使用 CharacterBody2D"
+
+msgid "2D Kinematic Character Demo"
+msgstr "2D 運動學角色演示"
+
+msgid ""
+"Allows to manually apply a snap to the floor regardless of the body's "
+"velocity. This function does nothing when [method is_on_floor] returns "
+"[code]true[/code]."
+msgstr ""
+"允許手動套用向地板的吸附,無論該物體的速度多大。[method is_on_floor] 返回 "
+"[code]true[/code] 時這個函式什麼都不做。"
+
+msgid ""
+"Returns the surface normal of the floor at the last collision point. Only "
+"valid after calling [method move_and_slide] and when [method is_on_floor] "
+"returns [code]true[/code]."
+msgstr ""
+"返回最近一次碰撞點的地面法線。只有在呼叫了 [method move_and_slide] 並且 "
+"[method is_on_floor] 返回值為 [code]true[/code] 時才有效。"
+
+msgid ""
+"Returns the last motion applied to the [CharacterBody2D] during the last call "
+"to [method move_and_slide]. The movement can be split into multiple motions "
+"when sliding occurs, and this method return the last one, which is useful to "
+"retrieve the current direction of the movement."
+msgstr ""
+"返回最近一次呼叫 [method move_and_slide] 時施加給該 [CharacterBody2D] 的最後一"
+"次運動。如果發生了滑動,則該移動可以拆分為多次運動,此方法返回的是最後一次,可"
+"用於獲取目前的移動方向。"
+
+msgid ""
+"Returns a [KinematicCollision2D], which contains information about the latest "
+"collision that occurred during the last call to [method move_and_slide]."
+msgstr ""
+"返回 [KinematicCollision2D],包含最近一次呼叫 [method move_and_slide] 時發生的"
+"最後一次運動的相關資訊。"
+
+msgid ""
+"Returns the linear velocity of the platform at the last collision point. Only "
+"valid after calling [method move_and_slide]."
+msgstr ""
+"返回位於最近一次碰撞點的平臺線速度。僅在呼叫 [method move_and_slide] 後有效。"
+
+msgid ""
+"Returns the travel (position delta) that occurred during the last call to "
+"[method move_and_slide]."
+msgstr "返回最近一次呼叫 [method move_and_slide] 所產生的運動(位置差異量)。"
+
+msgid ""
+"Returns the current real velocity since the last call to [method "
+"move_and_slide]. For example, when you climb a slope, you will move "
+"diagonally even though the velocity is horizontal. This method returns the "
+"diagonal movement, as opposed to [member velocity] which returns the "
+"requested velocity."
+msgstr ""
+"返回最近一次呼叫 [method move_and_slide] 之後的目前真實速度。例如,即便速度為"
+"水平方向,爬坡時你也會斜向移動。此方法返回的就是那個斜向移動,與返回請求速度"
+"的 [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.get_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.get_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]."
+msgstr ""
+"返回最近一次呼叫 [method move_and_slide] 時,該物體發生碰撞並改變方向的次數。"
+
+msgid ""
+"Returns the surface normal of the wall at the last collision point. Only "
+"valid after calling [method move_and_slide] and when [method is_on_wall] "
+"returns [code]true[/code]."
+msgstr ""
+"返回最近一次碰撞點的牆面法線。只有在呼叫了 [method move_and_slide] 並且 "
+"[method is_on_wall] 返回值為 [code]true[/code] 時才有效。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided with the ceiling on the last "
+"call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The "
+"[member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"ceiling\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體和天花板發生了碰撞,則返回 "
+"[code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“天花板”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided only with the ceiling on the "
+"last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. "
+"The [member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"ceiling\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體僅和天花板發生了碰撞,則返"
+"回 [code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“天花板”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided with the floor on the last "
+"call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The "
+"[member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"floor\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體和地板發生了碰撞,則返回 "
+"[code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“地板”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided only with the floor on the "
+"last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. "
+"The [member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"floor\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體僅和地板發生了碰撞,則返回 "
+"[code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“地板”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided with a wall on the last call "
+"of [method move_and_slide]. Otherwise, returns [code]false[/code]. The "
+"[member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"wall\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體和牆壁發生了碰撞,則返回 "
+"[code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“牆壁”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Returns [code]true[/code] if the body collided only with a wall on the last "
+"call of [method move_and_slide]. Otherwise, returns [code]false[/code]. The "
+"[member up_direction] and [member floor_max_angle] are used to determine "
+"whether a surface is \"wall\" or not."
+msgstr ""
+"如果最近一次呼叫 [method move_and_slide] 時,該物體僅和牆壁發生了碰撞,則返回 "
+"[code]true[/code]。否則返回 [code]false[/code]。決定表面是否為“牆壁”的是 "
+"[member up_direction] 和 [member floor_max_angle]。"
+
+msgid ""
+"Moves the body based on [member velocity]. If the body collides with another, "
+"it will slide along the other body (by default only on floor) rather than "
+"stop immediately. If the other body is a [CharacterBody2D] or [RigidBody2D], "
+"it will also be affected by the motion of the other body. You can use this to "
+"make moving and rotating platforms, or to make nodes push other nodes.\n"
+"Modifies [member velocity] if a slide collision occurred. To get the latest "
+"collision call [method get_last_slide_collision], for detailed information "
+"about collisions that occurred, use [method get_slide_collision].\n"
+"When the body touches a moving platform, the platform's velocity is "
+"automatically added to the body motion. If a collision occurs due to the "
+"platform's motion, it will always be first in the slide collisions.\n"
+"The general behavior and available properties change according to the [member "
+"motion_mode].\n"
+"Returns [code]true[/code] if the body collided, otherwise, returns "
+"[code]false[/code]."
+msgstr ""
+"根據 [member velocity] 移動該物體。該物體如果與其他物體發生碰撞,則會沿著對方"
+"滑動(預設只在地板上滑動),不會立即停止移動。如果對方是 [CharacterBody2D] 或 "
+"[RigidBody2D],還會受到對方運動的影響。可以用於製作移動、旋轉的平臺,也可用於"
+"推動其他節點。\n"
+"發生滑動碰撞時會改變 [member velocity]。要獲取最後一次碰撞,請呼叫 [method "
+"get_last_slide_collision],要獲取碰撞的更多資訊,請使用 [method "
+"get_slide_collision]。\n"
+"該物體接觸到移動平臺時,平臺的速度會自動加入到該物體的運動中。平臺運動所造成的"
+"碰撞始終為所有滑動碰撞中的第一個。\n"
+"通用行為和可用屬性會根據 [member motion_mode] 發生改變。\n"
+"如果該物體發生了碰撞,則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"If [code]true[/code], the body will be able to move on the floor only. This "
+"option avoids to be able to walk on walls, it will however allow to slide "
+"down along them."
+msgstr ""
+"如果為 [code]true[/code],則該物體將只能在地板上移動。此選項能夠避免在牆壁上行"
+"走,但允許沿牆壁向下滑動。"
+
+msgid ""
+"If [code]false[/code] (by default), the body will move faster on downward "
+"slopes and slower on upward slopes.\n"
+"If [code]true[/code], the body will always move at the same speed on the "
+"ground no matter the slope. Note that you need to use [member "
+"floor_snap_length] to stick along a downward slope at constant speed."
+msgstr ""
+"如果為 [code]false[/code](預設),則該物體在下坡時會移動得更快,在上坡時會移"
+"動得更慢。\n"
+"如果為 [code]true[/code],則無論坡度如何,該物體在地面上都會以相同的速度移動。"
+"請注意,你需要使用 [member floor_snap_length] 以恒定速度粘著至向下的斜坡。"
+
+msgid ""
+"Maximum angle (in radians) where a slope is still considered a floor (or a "
+"ceiling), rather than a wall, when calling [method move_and_slide]. The "
+"default value equals 45 degrees."
+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], meaning it contains vertical rising velocity, so it will be "
+"able to detach from the ground when jumping or when the body is pushed up by "
+"something. If you want to apply a snap without taking into account the "
+"velocity, use [method apply_floor_snap]."
+msgstr ""
+"設定吸附距離。設為非 [code]0.0[/code] 值時,該物體在呼叫 [method "
+"move_and_slide] 時會保持附著到斜坡上。吸附向量會根據給定的距離和 [member "
+"up_direction] 反方向決定。\n"
+"只要吸附向量與地面有接觸,該物體就會逆 [member up_direction] 移動,保持附著到"
+"表面。如果該物體是沿著 [member up_direction] 移動的,則不會套用吸附,這樣跳躍"
+"時或者被其他物體推動時就能夠不再附著地面。如果想要在套用吸附時無視速度,請使"
+"用 [method apply_floor_snap]。"
+
+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"
+"If [code]false[/code], the body will slide on floor's slopes when [member "
+"velocity] applies a downward force."
+msgstr ""
+"如果為 [code]true[/code],則該物體靜止時,呼叫 [method move_and_slide] 不會讓"
+"它在斜坡上發生滑動。\n"
+"如果為 [code]false[/code],則 [member velocity] 施加向下的力時,該物體會在地板"
+"的斜坡上發生滑動。"
+
+msgid ""
+"Maximum number of times the body can change direction before it stops when "
+"calling [method move_and_slide]."
+msgstr ""
+"呼叫 [method move_and_slide] 時,該物體在停止之前可以改變方向的最大次數。"
+
+msgid ""
+"Sets the motion mode which defines the behavior of [method move_and_slide]. "
+"See [enum MotionMode] constants for available modes."
+msgstr ""
+"設定運動模式,定義 [method move_and_slide] 的行為。可用的模式見 [enum "
+"MotionMode] 常數。"
+
+msgid ""
+"Collision layers that will be included for detecting floor bodies that will "
+"act as moving platforms to be followed by the [CharacterBody2D]. By default, "
+"all floor bodies are detected and propagate their velocity."
+msgstr ""
+"用於偵測地板物體的碰撞層,該地板物體會被用作 [CharacterBody2D] 所要跟隨的移動"
+"平臺。預設情況下會偵測所有地板物體並傳播其速度。"
+
+msgid ""
+"Sets the behavior to apply when you leave a moving platform. By default, to "
+"be physically accurate, when you leave the last platform velocity is applied. "
+"See [enum PlatformOnLeave] constants for available behavior."
+msgstr ""
+"設定離開移動平臺時要套用的行為。為了達到物理準確,預設會套用你離開時最後的平台"
+"速度。可用的行為見 [enum PlatformOnLeave] 常數。"
+
+msgid ""
+"Collision layers that will be included for detecting wall bodies that will "
+"act as moving platforms to be followed by the [CharacterBody2D]. By default, "
+"all wall bodies are ignored."
+msgstr ""
+"用於偵測牆壁物體的碰撞層,該牆壁物體會被用作 [CharacterBody2D] 所要跟隨的移動"
+"平臺。預設情況下會忽略所有牆壁物體。"
+
+msgid ""
+"Extra margin used for collision recovery when calling [method "
+"move_and_slide].\n"
+"If the body is at least this close to another body, it will consider them to "
+"be colliding and will be pushed away before performing the actual motion.\n"
+"A higher value means it's more flexible for detecting collision, which helps "
+"with consistently detecting walls and floors.\n"
+"A lower value forces the collision algorithm to use more exact detection, so "
+"it can be used in cases that specifically require precision, e.g at very low "
+"scale to avoid visible jittering, or for stability with a stack of character "
+"bodies."
+msgstr ""
+"額外邊距,用於在呼叫 [method move_and_slide] 時進行碰撞恢復。\n"
+"如果該物體與另一個物體至少有這麼近,就會認為它們正在碰撞,並在執行實際運動前推"
+"開。\n"
+"值較高時,對碰撞的偵測會更加靈活,有助於持續偵測牆壁和地板。\n"
+"值較低時,會強制碰撞演算法進行更精確的偵測,因此可以在特別需要精度的情況下使"
+"用,例如在非常低的縮放下避免可見的抖動,或者為了讓一堆角色物體的達到穩定。"
+
+msgid ""
+"If [code]true[/code], during a jump against the ceiling, the body will slide, "
+"if [code]false[/code] it will be stopped and will fall vertically."
+msgstr ""
+"如果為 [code]true[/code],則該物體在跳到天花板時會滑動;如果為 [code]false[/"
+"code],則會停止並垂直下落。"
+
+msgid ""
+"Current velocity vector in pixels per second, used and modified during calls "
+"to [method move_and_slide]."
+msgstr ""
+"目前速度向量,單位為圖元每秒,呼叫 [method move_and_slide] 期間會進行使用並修"
+"改。"
+
+msgid ""
+"Minimum angle (in radians) where the body is allowed to slide when it "
+"encounters a slope. The default value equals 15 degrees. This property only "
+"affects movement when [member motion_mode] is [constant MOTION_MODE_FLOATING]."
+msgstr ""
+"該物體遇到斜坡時,允許滑動的最小角度(單位為弧度)。預設值等於 15 度。僅在 "
+"[member motion_mode] 為 [constant MOTION_MODE_FLOATING] 時,該屬性才會影響運"
+"動。"
+
+msgid ""
+"Apply when notions of walls, ceiling and floor are relevant. In this mode the "
+"body motion will react to slopes (acceleration/slowdown). This mode is "
+"suitable for sided games like platformers."
+msgstr ""
+"請在牆壁、天花板、地板等概念有意義時套用。在該模式下,物體運動會對斜坡作出反應"
+"(加減速)。該模式適合平臺跳躍等側視角遊戲。"
+
+msgid ""
+"Apply when there is no notion of floor or ceiling. All collisions will be "
+"reported as [code]on_wall[/code]. In this mode, when you slide, the speed "
+"will always be constant. This mode is suitable for top-down games."
+msgstr ""
+"請在沒有地板和天花板等概念時套用。所有碰撞都會作為 [code]on_wall[/code](撞"
+"牆)彙報。在該模式下,滑動時的速度恒定。該模式適合俯視角遊戲。"
+
+msgid ""
+"Add the last platform velocity to the [member velocity] when you leave a "
+"moving platform."
+msgstr "離開移動平臺時,將最後的平臺速度新增到 [member velocity] 中。"
+
+msgid ""
+"Add the last platform velocity to the [member velocity] when you leave a "
+"moving platform, but any downward motion is ignored. It's useful to keep full "
+"jump height even when the platform is moving down."
+msgstr ""
+"離開移動平臺時,將最後的平臺速度新增到 [member velocity] 中,但是忽略向下的運"
+"動。如果想要在平臺向下移動時保持完整的跳躍高度,就非常有用。"
+
+msgid "Do nothing when leaving a platform."
+msgstr "離開平臺時什麼也不做。"
+
+msgid "A 3D physics body specialized for characters moved by script."
+msgstr "專門用於通過腳本移動的角色的 3D 物理物體。"
+
+msgid ""
+"[CharacterBody3D] is a specialized class for physics bodies that are meant to "
+"be user-controlled. They are not affected by physics at all, but they affect "
+"other physics bodies in their path. They are mainly used to provide high-"
+"level API to move objects with wall and slope detection ([method "
+"move_and_slide] method) in addition to the general collision detection "
+"provided by [method PhysicsBody3D.move_and_collide]. This makes it useful for "
+"highly configurable physics bodies that must move in specific ways and "
+"collide with the world, as is often the case with user-controlled "
+"characters.\n"
+"For game objects that don't require complex movement or collision detection, "
+"such as moving platforms, [AnimatableBody3D] is simpler to configure."
+msgstr ""
+"[CharacterBody3D] 是針對使用者控制的物理體的特化類。它們不會受到物理的影響,但"
+"會影響路徑上的其他物理體。除了由 [method PhysicsBody3D.move_and_collide] 提供"
+"的常見的碰撞偵測之外,它們主要用於提供移動對象的高階 API,能夠偵測牆壁和斜坡"
+"([method move_and_slide] 方法)。因此適用於需要高度可配置的物理體,因為通常是"
+"使用者控制的角色,所以必須按照特定的方式移動、與世界發生碰撞。\n"
+"如果是移動平臺等不需要複雜移動和碰撞偵測的遊戲物件,[AnimatableBody3D] 更方便"
+"配置。"
+
+msgid ""
+"Returns the last motion applied to the [CharacterBody3D] during the last call "
+"to [method move_and_slide]. The movement can be split into multiple motions "
+"when sliding occurs, and this method return the last one, which is useful to "
+"retrieve the current direction of the movement."
+msgstr ""
+"返回最近一次呼叫 [method move_and_slide] 時施加給該 [CharacterBody3D] 的最後一"
+"次運動。如果發生了滑動,則該移動可以拆分為多次運動,此方法返回的是最後一次,可"
+"用於獲取目前的移動方向。"
+
+msgid ""
+"Returns a [KinematicCollision3D], which contains information about the latest "
+"collision that occurred during the last call to [method move_and_slide]."
+msgstr ""
+"返回 [KinematicCollision3D],包含最近一次呼叫 [method move_and_slide] 時發生的"
+"最後一次運動的相關資訊。"
+
+msgid ""
+"Returns the angular velocity of the platform at the last collision point. "
+"Only valid after calling [method move_and_slide]."
+msgstr ""
+"返回位於最近一次碰撞點的平臺角速度。僅在呼叫 [method move_and_slide] 後有效。"
+
+msgid ""
+"Returns a [KinematicCollision3D], 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)."
+msgstr ""
+"返回 [KinematicCollision3D],包含最近一次呼叫 [method move_and_slide] 時發生的"
+"碰撞信息。因為單次呼叫 [method move_and_slide] 可能發生多次碰撞,所以你必須指"
+"定碰撞索引,範圍為 0 到 ([method get_slide_collision_count] - 1)。"
+
+msgid ""
+"Moves the body based on [member velocity]. If the body collides with another, "
+"it will slide along the other body rather than stop immediately. If the other "
+"body is a [CharacterBody3D] or [RigidBody3D], it will also be affected by the "
+"motion of the other body. You can use this to make moving and rotating "
+"platforms, or to make nodes push other nodes.\n"
+"Modifies [member velocity] if a slide collision occurred. To get the latest "
+"collision call [method get_last_slide_collision], for more detailed "
+"information about collisions that occurred, use [method "
+"get_slide_collision].\n"
+"When the body touches a moving platform, the platform's velocity is "
+"automatically added to the body motion. If a collision occurs due to the "
+"platform's motion, it will always be first in the slide collisions.\n"
+"Returns [code]true[/code] if the body collided, otherwise, returns "
+"[code]false[/code]."
+msgstr ""
+"根據 [member velocity] 移動該物體。該物體如果與其他物體發生碰撞,則會沿著對方"
+"滑動,不會立即停止移動。如果對方是 [CharacterBody3D] 或 [RigidBody3D],還會受"
+"到對方運動的影響。可以用於製作移動、旋轉的平臺,也可用於推動其他節點。\n"
+"發生滑動碰撞時會改變 [member velocity]。要獲取最後一次碰撞,請呼叫 [method "
+"get_last_slide_collision],要獲取碰撞的更多資訊,請使用 [method "
+"get_slide_collision]。\n"
+"該物體接觸到移動平臺時,平臺的速度會自動加入到該物體的運動中。平臺運動所造成的"
+"碰撞始終為所有滑動碰撞中的第一個。\n"
+"如果該物體發生了碰撞,則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"Collision layers that will be included for detecting floor bodies that will "
+"act as moving platforms to be followed by the [CharacterBody3D]. By default, "
+"all floor bodies are detected and propagate their velocity."
+msgstr ""
+"用於偵測地板物體的碰撞層,該地板物體會被用作 [CharacterBody3D] 所要跟隨的移動"
+"平臺。預設情況下會偵測所有地板物體並傳播其速度。"
+
+msgid ""
+"Collision layers that will be included for detecting wall bodies that will "
+"act as moving platforms to be followed by the [CharacterBody3D]. By default, "
+"all wall bodies are ignored."
+msgstr ""
+"用於偵測牆壁物體的碰撞層,該牆壁物體會被用作 [CharacterBody3D] 所要跟隨的移動"
+"平臺。預設情況下會忽略所有牆壁物體。"
+
+msgid ""
+"Current velocity vector (typically meters per second), used and modified "
+"during calls to [method move_and_slide]."
+msgstr ""
+"目前速度向量(通常為米每秒),呼叫 [method move_and_slide] 期間會進行使用並修"
+"改。"
+
+msgid ""
+"Minimum angle (in radians) where the body is allowed to slide when it "
+"encounters a slope. The default value equals 15 degrees. When [member "
+"motion_mode] is [constant MOTION_MODE_GROUNDED], it only affects movement if "
+"[member floor_block_on_wall] is [code]true[/code]."
+msgstr ""
+"該物體遇到斜坡時,允許滑動的最小角度(單位為弧度)。預設值等於 15 度。當 "
+"[member motion_mode] 為 [constant MOTION_MODE_GROUNDED] 時,只有 [member "
+"floor_block_on_wall] 為 [code]true[/code] 才會影響運動。"
+
+msgid ""
+"Apply when notions of walls, ceiling and floor are relevant. In this mode the "
+"body motion will react to slopes (acceleration/slowdown). This mode is "
+"suitable for grounded games like platformers."
+msgstr ""
+"請在牆壁、天花板、地板等概念有意義時套用。在該模式下,物體運動會對斜坡作出反應"
+"(加減速)。該模式適合平臺跳躍等地面遊戲。"
+
+msgid ""
+"Apply when there is no notion of floor or ceiling. All collisions will be "
+"reported as [code]on_wall[/code]. In this mode, when you slide, the speed "
+"will always be constant. This mode is suitable for games without ground like "
+"space games."
+msgstr ""
+"請在沒有地板和天花板等概念時套用。所有碰撞都會作為 [code]on_wall[/code](撞"
+"牆)彙報。在該模式下,滑動時的速度恒定。該模式適合太空遊戲等沒有地面的遊戲。"
+
+msgid ""
+"Controls how an individual character will be displayed in a [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] 中的顯示方式。"
+
+msgid "BBCode in RichTextLabel"
+msgstr "RichTextLabel 中的 BBCode"
+
+msgid "RichTextEffect test project (third-party)"
+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] "
+"or [float], they will be converted automatically. Color codes in the form "
+"[code]#rrggbb[/code] or [code]#rgb[/code] will be converted to an opaque "
+"[Color]. String arguments may not contain spaces, even if they're quoted. If "
+"present, quotes will also be present in the final string.\n"
+"For example, the opening BBCode tag [code][example foo=hello bar=true baz=42 "
+"color=#ffffff][/code] will map to the following [Dictionary]:\n"
+"[codeblock]\n"
+"{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, "
+"1)}\n"
+"[/codeblock]"
+msgstr ""
+"包含在開頭的 BBCode 標記中傳遞的參數。預設情況下,參數是字串。如果它們的內容"
+"與 [bool]、[int]、[float] 之類的型別配對,它們將被自動轉換。格式為 "
+"[code]#rrggbb[/code] 或 [code]#rgb[/code] 的顏色程式碼將轉換為不透明的 "
+"[Color]。字串參數即使使用引號也不能包含空格。如果存在,引號也將出現在最終字符"
+"串中。\n"
+"例如,開頭的 BBCode 標籤 [code][example foo = hello bar = true baz = 42 color "
+"=#ffffff][/code] 將對應到以下 [Dictionary]:\n"
+"[codeblock]\n"
+"{\"foo\": \"hello\", \"bar\": true, \"baz\": 42, \"color\": Color(1, 1, 1, "
+"1)}\n"
+"[/codeblock]"
+
+msgid "Font resource used to render glyph."
+msgstr "用於渲染字形的字形資源。"
+
+msgid ""
+"Number of glyphs in the grapheme cluster. This value is set in the first "
+"glyph of a cluster. Setting this property won't affect drawing."
+msgstr ""
+"字素簇中的字形數量。該值在簇的第一個字形中設定。設定此屬性不會影響繪製。"
+
+msgid ""
+"Glyph flags. See [enum TextServer.GraphemeFlag] for more info. Setting this "
+"property won't affect drawing."
+msgstr ""
+"字形旗標。詳情見 [enum TextServer.GraphemeFlag]。設定此屬性不會影響繪製。"
+
+msgid "Font specific glyph index."
+msgstr "字形特定字形的索引。"
+
+msgid "The position offset the character will be drawn with (in pixels)."
+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 ""
+"The current transform of the current glyph. It can be overridden (for "
+"example, by driving the position and rotation from a curve). You can also "
+"alter the existing value to apply transforms on top of other effects."
+msgstr ""
+"目前字形的目前變換。它可以被覆寫(例如,透過從曲線驅動位置和旋轉)。您還可以更"
+"改現有值以在頂部應用變換其他影響。"
+
+msgid ""
+"If [code]true[/code], the character will be drawn. If [code]false[/code], the "
+"character will be hidden. Characters around hidden characters will reflow to "
+"take the space of hidden characters. If this is not desired, set their "
+"[member color] to [code]Color(1, 1, 1, 0)[/code] instead."
+msgstr ""
+"如果為 [code]true[/code],將繪製字元。如果為 [code]false[/code],則隱藏字元。"
+"隱藏字元周圍的字元將回流以佔用隱藏字元的空間。如果不希望這樣做,可以將它們的 "
+"[member color] 設定為[code]Color(1, 1, 1, 0)[/code]。"
+
+msgid "A button that represents a binary choice."
+msgstr "代表二元選項的按鈕。"
+
+msgid ""
+"[CheckBox] allows the user to choose one of only 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.\n"
+"When [member BaseButton.button_group] specifies a [ButtonGroup], [CheckBox] "
+"changes its appearance to that of a radio button and uses the various "
+"[code]radio_*[/code] theme properties."
+msgstr ""
+"[CheckBox] 允許使用者在僅有的兩個可能的選項中選擇一個。它在功能上類似於 "
+"[CheckButton],但外觀不同。為了遵循既定的 UX 模式,建議在切換而[b]不會[/b]立即"
+"對某些內容產生影響時使用 [CheckBox]。例如,切換後只會在按下確認按鈕後才執行某"
+"些操作時,就可以使用它。\n"
+"另見 [BaseButton],其中包含與該節點相關的通用屬性和方法。\n"
+"當 [member BaseButton.button_group] 指定 [ButtonGroup] 時,[CheckBox] 的外觀將"
+"變為選項按鈕,並使用各種 [code]radio_*[/code] 主題屬性。"
+
+msgid "The vertical offset used when rendering the check icons (in pixels)."
+msgstr "渲染勾選圖示時使用的垂直偏移量(單位:圖元)。"
+
+msgid "The check icon to display when the [CheckBox] is checked."
+msgstr "勾選圖示,該 [CheckBox] 被勾選時顯示。"
+
+msgid ""
+"The check icon to display when the [CheckBox] is checked and is disabled."
+msgstr "勾選圖示,該 [CheckBox] 被勾選且被禁用時顯示。"
+
+msgid ""
+"The check icon to display when the [CheckBox] is configured as a radio button "
+"and is checked."
+msgstr "勾選圖示,該 [CheckBox] 被配置為選項按鈕、被勾選時顯示。"
+
+msgid ""
+"The check icon to display when the [CheckBox] is configured as a radio "
+"button, is disabled, and is unchecked."
+msgstr "勾選圖示,該 [CheckBox] 被配置為選項按鈕、被禁用且未勾選時顯示。"
+
+msgid ""
+"The check icon to display when the [CheckBox] is configured as a radio button "
+"and is unchecked."
+msgstr "勾選圖示,該 [CheckBox] 被配置為選項按鈕、未勾選時顯示。"
+
+msgid "The check icon to display when the [CheckBox] is unchecked."
+msgstr "勾選圖示,該 [CheckBox] 未勾選時顯示。"
+
+msgid ""
+"The check icon to display when the [CheckBox] is unchecked and is disabled."
+msgstr "勾選圖示,該 [CheckBox] 未勾選且被禁用時顯示。"
+
+msgid ""
+"[CheckButton] is a toggle button displayed as a check field. It's similar to "
+"[CheckBox] in functionality, but it has a different appearance. To follow "
+"established UX patterns, it's recommended to use [CheckButton] when toggling "
+"it has an [b]immediate[/b] effect on something. For example, it can be used "
+"when pressing it shows or hides advanced settings, without asking the user to "
+"confirm this action.\n"
+"See also [BaseButton] which contains common properties and methods associated "
+"with this node."
+msgstr ""
+"[CheckButton] 是一種顯示為勾選欄位的切換按鈕。它在功能上類似於 [CheckBox],但"
+"外觀不同。為了遵循既定的 UX 模式,建議在切換後會[b]立即[/b]生效時使用 "
+"[CheckButton]。例如,如果切換後立即啟用/禁用設定而無需使用者按下確認按鈕時,就"
+"可以使用它。\n"
+"另見 [BaseButton],其中包含與該節點相關的通用屬性和方法。"
+
+msgid "The vertical offset used when rendering the toggle icons (in pixels)."
+msgstr "渲染切換圖示時使用的垂直偏移量(單位:圖元)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is checked (for left-to-right "
+"layouts)."
+msgstr "切換圖示,該 [CheckButton] 被勾選時顯示(用於從左至右佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is checked and disabled (for left-"
+"to-right layouts)."
+msgstr "切換圖示,該 [CheckButton] 被勾選且被禁用時顯示(用於從左至右佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is checked and disabled (for right-"
+"to-left layouts)."
+msgstr "切換圖示,該 [CheckButton] 被勾選且被禁用時顯示(用於從右至左佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is checked (for right-to-left "
+"layouts)."
+msgstr "切換圖示,該 [CheckButton] 被勾選時顯示(用於從右至左佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is unchecked (for left-to-right "
+"layouts)."
+msgstr "切換圖示,該 [CheckButton] 未勾選時顯示(用於從左至右佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is unchecked and disabled (for "
+"left-to-right layouts)."
+msgstr "切換圖示,該 [CheckButton] 未勾選且被禁用時顯示(用於從左至右佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is unchecked and disabled (for "
+"right-to-left layouts)."
+msgstr "切換圖示,該 [CheckButton] 未勾選且被禁用時顯示(用於從右至左佈局)。"
+
+msgid ""
+"The icon to display when the [CheckButton] is unchecked (for right-to-left "
+"layouts)."
+msgstr "切換圖示,該 [CheckButton] 未勾選時顯示(用於從右至左佈局)。"
+
+msgid "A 2D circle shape used for physics collision."
+msgstr "2D 圓形,旨在用於物理學。"
+
+msgid ""
+"A 2D circle shape, intended for use in physics. Usually used to provide a "
+"shape for a [CollisionShape2D].\n"
+"[b]Performance:[/b] [CircleShape2D] is fast to check collisions against. It "
+"is faster than [RectangleShape2D] and [CapsuleShape2D]."
+msgstr ""
+"2D 圓形,旨在用於物理學。通常用於為 [CollisionShape2D] 提供形狀。\n"
+"[b]性能:[/b][CircleShape2D] 可以快速偵測碰撞。比 [RectangleShape2D] 和 "
+"[CapsuleShape2D] 快。"
+
+msgid "The circle's radius."
+msgstr "圓的半徑。"
+
+msgid "A class information repository."
+msgstr "類資訊的儲存庫。"
+
+msgid "Provides access to metadata stored for every available class."
+msgstr "提供對為每個可用類儲存的中繼資料的存取。"
+
+msgid ""
+"Returns [code]true[/code] if objects can be instantiated from the specified "
+"[param class], otherwise returns [code]false[/code]."
+msgstr ""
+"如果可以從指定的 [param class] 產生實體物件,則返回 [code]true[/code],否則返"
+"回 [code]false[/code]。"
+
+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 a "
+"[Dictionary] with the following keys: [code]args[/code], [code]default_args[/"
+"code], [code]flags[/code], [code]id[/code], [code]name[/code], [code]return: "
+"(class_name, hint, hint_string, name, type, usage)[/code].\n"
+"[b]Note:[/b] In exported release builds the debug info is not available, so "
+"the returned dictionaries will contain only method names."
+msgstr ""
+"如果 [param no_inheritance] 為 [code]false[/code],則返回包含 [param class] 或"
+"其祖先的所有方法的陣列。陣列的每個元素都是一個 [Dictionary],包含以下鍵:"
+"[code]args[/code]、[code]default_args[/code]、[code]flags[/code]、[code]id[/"
+"code]、[code]name[/code]、[code]return: (class_name, hint, hint_string, name, "
+"type, usage)[/code]。\n"
+"[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]."
+msgstr ""
+"如果 [param no_inheritance] 為 [code]false[/code],則返回包含 [param class] 或"
+"其祖先的所有屬性的陣列。"
+
+msgid ""
+"Returns the [param signal] data of [param class] or its ancestry. The "
+"returned value is a [Dictionary] with the following keys: [code]args[/code], "
+"[code]default_args[/code], [code]flags[/code], [code]id[/code], [code]name[/"
+"code], [code]return: (class_name, hint, hint_string, name, type, usage)[/"
+"code]."
+msgstr ""
+"返回 [param class] 或其祖先的 [param signal] 資料。返回值是具有以下鍵的 "
+"[Dictionary]:[code]args[/code]、[code]default_args[/code]、[code]flags[/"
+"code]、[code]id[/code]、[code]name[/code]、[code]return: (class_name, hint, "
+"hint_string, name, type, usage)[/code]。"
+
+msgid ""
+"Returns an array with all the signals of [param class] or its ancestry if "
+"[param no_inheritance] is [code]false[/code]. Every element of the array is a "
+"[Dictionary] as described in [method class_get_signal]."
+msgstr ""
+"如果 [param no_inheritance] 為 [code]false[/code],則返回包含 [param class] 或"
+"其祖先的所有訊號的陣列。陣列的每個元素都是一個如 [method class_get_signal] 中"
+"所述的 [Dictionary]。"
+
+msgid ""
+"Returns whether [param class] or its ancestry has an enum called [param name] "
+"or not."
+msgstr "返回類 [param class] 或其祖類是否有名為 [param name] 的列舉。"
+
+msgid ""
+"Returns whether [param class] or its ancestry has an integer constant called "
+"[param name] or not."
+msgstr "返回類 [param class] 或其祖類是否有名為 [param name] 的整數常數。"
+
+msgid ""
+"Returns whether [param class] (or its ancestry if [param no_inheritance] is "
+"[code]false[/code]) has a method called [param method] or not."
+msgstr ""
+"返回類 [param class] 是否有名為 [param method] 的方法(如果 [param "
+"no_inheritance] 為 [code]false[/code] 則還會檢查其祖類)。"
+
+msgid ""
+"Returns whether [param class] or its ancestry has a signal called [param "
+"signal] or not."
+msgstr "返回類 [param class] 或其祖類是否有名為 [param signal] 的訊號。"
+
+msgid "Sets [param property] value of [param object] to [param value]."
+msgstr "將物件 [param object] 的 [param property] 屬性值設定為 [param value]。"
+
+msgid "Returns the names of all the classes available."
+msgstr "返回所有可用類的名稱。"
+
+msgid ""
+"Returns the names of all the classes that directly or indirectly inherit from "
+"[param class]."
+msgstr "返回所有直接或間接繼承自 [param class] 的類的名稱。"
+
+msgid "Returns the parent class of [param class]."
+msgstr "返回 [param class] 的父類。"
+
+msgid "Creates an instance of [param class]."
+msgstr "建立 [param class] 的實例。"
+
+msgid "Returns whether this [param class] is enabled or not."
+msgstr "返回這個 [param class] 是否已啟用。"
+
+msgid "Returns whether [param inherits] is an ancestor of [param class] or not."
+msgstr "返回 [param inherits] 是否為 [param class] 的祖先。"
+
+msgid "A multiline text editor designed for editing code."
+msgstr "多行文字編輯器,針對編輯程式碼而設計。"
+
+msgid ""
+"CodeEdit is a specialized [TextEdit] designed for editing plain text code "
+"files. It has many features commonly found in code editors such as line "
+"numbers, line folding, code completion, indent management, and string/comment "
+"management.\n"
+"[b]Note:[/b] Regardless of locale, [CodeEdit] will by default 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"
+"Both [param candidates] and the return is a [Array] of [Dictionary], see "
+"[method get_code_completion_option] for [Dictionary] content."
+msgstr ""
+"覆蓋此方法以確定應該顯示 [param candidates] 中的哪些項。\n"
+"參數 [param candidates] 和返回值都是一個 [Array] 的 [Dictionary],而 "
+"[Dictionary] 的鍵值,詳見 [method get_code_completion_option]。"
+
+msgid ""
+"Override this method to define what happens when the user requests code "
+"completion. If [param force] is true, any checks should be bypassed."
+msgstr ""
+"覆蓋此方法以定義當使用者請求程式碼完成時發生的情況。如果 [param force] 為真,"
+"會繞過任何檢查。"
+
+msgid ""
+"Adds a brace pair.\n"
+"Both the start and end keys must be symbols. Only the start key has to be "
+"unique."
+msgstr ""
+"新增一對括弧。\n"
+"開始和結束鍵都必須是符號。只有開始鍵必須是唯一的。"
+
+msgid ""
+"Submits an item to the queue of potential candidates for the autocomplete "
+"menu. Call [method update_code_completion_options] to update the list.\n"
+"[param location] indicates location of the option relative to the location of "
+"the code completion query. See [enum CodeEdit.CodeCompletionLocation] for how "
+"to set this value.\n"
+"[b]Note:[/b] This list will replace all current candidates."
+msgstr ""
+"向自動補全功能表的潛在候選佇列提交條目。請呼叫 [method "
+"update_code_completion_options] 來更新列表。\n"
+"[param location] 指示的是該選項相對於程式碼補全請求位置的位置。這個值如何設定"
+"見 [enum CodeEdit.CodeCompletionLocation]。\n"
+"[b]注意:[/b]這個列表將替換所有目前候選。"
+
+msgid ""
+"Adds a comment delimiter.\n"
+"Both the start and end keys must be symbols. Only the start key has to be "
+"unique.\n"
+"[param line_only] denotes if the region should continue until the end of the "
+"line or carry over on to the next line. If the end key is blank this is "
+"automatically set to [code]true[/code]."
+msgstr ""
+"新增注釋分隔符號。\n"
+"開始鍵和結束鍵都必須是符號。只有開始鍵必須是唯一的。\n"
+"[param line_only] 表示該區域應該持續到該行的末尾,還是延續到下一行。如果結束鍵"
+"為空,則自動設定為[code]true[/code]。"
+
+msgid ""
+"Adds a string delimiter.\n"
+"Both the start and end keys must be symbols. Only the start key has to be "
+"unique.\n"
+"[param line_only] denotes if the region should continue until the end of the "
+"line or carry over on to the next line. If the end key is blank this is "
+"automatically set to [code]true[/code]."
+msgstr ""
+"新增字串分隔符號。\n"
+"開始鍵和結束鍵都必須是符號。只有開始鍵必須是唯一的。\n"
+"[param line_only] 表示該區域應該持續到該行的末尾,還是延續到下一行。如果結束鍵"
+"為空,則自動設定為[code]true[/code]。"
+
+msgid ""
+"Returns if the given line is foldable, that is, it has indented lines right "
+"below it or a comment / string block."
+msgstr "返回給定的行是否可折疊,也就是說,它的正下方有縮進的行或注釋 / 字串塊。"
+
+msgid "Cancels the autocomplete menu."
+msgstr "取消自動補全功能表。"
+
+msgid "Clears all bookmarked lines."
+msgstr "清除所有書簽行。"
+
+msgid "Clears all breakpointed lines."
+msgstr "清除所有中斷點行。"
+
+msgid "Removes all comment delimiters."
+msgstr "移除所有注釋分隔符號。"
+
+msgid "Clears all executed lines."
+msgstr "清除所有已執行的行。"
+
+msgid "Removes all string delimiters."
+msgstr "移除所有字串分隔符號。"
+
+msgid ""
+"Converts the indents of lines between [param from_line] and [param to_line] "
+"to tabs or spaces as set by [member indent_use_spaces].\n"
+"Values of [code]-1[/code] convert the entire text."
+msgstr ""
+"將 [param from_line] 和 [param to_line] 之間的行縮進,轉換為 [member "
+"indent_use_spaces] 設定的定位字元或空格。\n"
+"值均為 [code]-1[/code] 將轉換整個文字。"
+
+msgid ""
+"Creates a new code region with the selection. At least one single line "
+"comment delimiter have to be defined (see [method add_comment_delimiter]).\n"
+"A code region is a part of code that is highlighted when folded and can help "
+"organize your script.\n"
+"Code region start and end tags can be customized (see [method "
+"set_code_region_tags]).\n"
+"Code regions are delimited using start and end tags (respectively "
+"[code]region[/code] and [code]endregion[/code] by default) preceded by one "
+"line comment delimiter. (eg. [code]#region[/code] and [code]#endregion[/code])"
+msgstr ""
+"使用選擇建立一個新的程式碼區域。至少必須定義一個單行註解分隔符號(請參閱"
+"[method add_comment_delimiter])。\n"
+"程式碼區域是程式碼的一部分,在折疊時會被反白顯示,可以幫助組織腳本。\n"
+"程式碼區域的開始和結束標記可以自訂(請參閱[method set_code_region_tags])。\n"
+"程式碼區域使用開始和結束標記(預設分別為 [code]region[/code] 和 "
+"[code]endregion[/code])進行分隔,前面有一行註解分隔符號。 (例如 "
+"[code]#region[/code] 和 [code]#endregion[/code])"
+
+msgid ""
+"Perform an indent as if the user activated the \"ui_text_indent\" action."
+msgstr "執行一個縮進,就像使用者觸發了“ui_text_indent”動作一樣。"
+
+msgid ""
+"Duplicates all lines currently selected with any caret. Duplicates the entire "
+"line beneath the current one no matter where the caret is within the line."
+msgstr ""
+"複製所有目前使用任何脫字符號選擇的行。無論脫字符號位於行內的何處,複製目前行下"
+"方的整行。"
+
+msgid ""
+"Folds all lines that are possible to be folded (see [method can_fold_line])."
+msgstr "折疊所有可能被折疊的行(參見 [method can_fold_line])。"
+
+msgid "Folds the given line, if possible (see [method can_fold_line])."
+msgstr "如果可能,折疊給定的行(參見 [method can_fold_line])。"
+
+msgid "Gets the matching auto brace close key for [param open_key]."
+msgstr "獲取 [param open_key] 相配對的括弧自動閉合鍵。"
+
+msgid "Gets all bookmarked lines."
+msgstr "獲取所有書簽行。"
+
+msgid "Gets all breakpointed lines."
+msgstr "獲取所有中斷點行。"
+
+msgid ""
+"Gets the completion option at [param index]. The return [Dictionary] has the "
+"following key-values:\n"
+"[code]kind[/code]: [enum CodeCompletionKind]\n"
+"[code]display_text[/code]: Text that is shown on the autocomplete menu.\n"
+"[code]insert_text[/code]: Text that is to be inserted when this item is "
+"selected.\n"
+"[code]font_color[/code]: Color of the text on the autocomplete menu.\n"
+"[code]icon[/code]: Icon to draw on the autocomplete menu.\n"
+"[code]default_value[/code]: Value of the symbol."
+msgstr ""
+"獲取在 [param index] 處的補全選項。返回的 [Dictionary] 有以下鍵值。\n"
+"[code]kind[/code]:[enum CodeCompletionKind]\n"
+"[code]display_text[/code] :在自動補全功能表上顯示的文字。\n"
+"[code]insert_text[/code] :當選中這個選項時要插入的文字。\n"
+"[code]font_color[/code]:自動補全功能表上文字的顏色。\n"
+"[code]icon[/code] :在自動補全功能表上繪製的圖示。\n"
+"[code]default_value[/code]:符號的值。"
+
+msgid ""
+"Gets all completion options, see [method get_code_completion_option] for "
+"return content."
+msgstr "獲取所有補全選項,返回值見 [method get_code_completion_option]。"
+
+msgid "Gets the index of the current selected completion option."
+msgstr "獲取目前已選定補全項的索引。"
+
+msgid "Returns the code region end tag (without comment delimiter)."
+msgstr "返回該地區的導覽層。"
+
+msgid "Returns the code region start tag (without comment delimiter)."
+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 "獲取所有正在執行的行。"
+
+msgid "Returns all lines that are current folded."
+msgstr "返回目前折疊的所有行。"
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the caret location."
+msgstr "返回在插入符號位置帶有 [code]0xFFFF[/code] 字元的全文。"
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the cursor location."
+msgstr "返回在游標位置處帶有 [code]0xFFFF[/code] 字元的全文。"
+
+msgid ""
+"Returns the full text with char [code]0xFFFF[/code] at the specified location."
+msgstr "返回在插入符號位置帶有 [code]0xFFFF[/code] 字元的全文。"
+
+msgid "Returns [code]true[/code] if close key [param close_key] exists."
+msgstr "如果關閉鍵 [param close_key] 存在,則返回 [code]true[/code]。"
+
+msgid "Returns [code]true[/code] if open key [param open_key] exists."
+msgstr "如果打開鍵 [param open_key] 存在,則返回 [code]true[/code]。"
+
+msgid "Returns [code]true[/code] if comment [param start_key] exists."
+msgstr "如果注釋的 [param start_key] 存在,返回 [code]true[/code] 。"
+
+msgid "Returns [code]true[/code] if string [param start_key] exists."
+msgstr "如果字串的 [param start_key] 存在,返回 [code]true[/code] 。"
+
+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 "返回指定索引處的行是否新增了書簽。"
+
+msgid "Returns whether the line at the specified index is breakpointed or not."
+msgstr "返回指定索引處的行是否有中斷點。"
+
+msgid "Returns whether the line at the specified index is a code region end."
+msgstr "返回指定索引處的行是否折疊。"
+
+msgid "Returns whether the line at the specified index is a code region start."
+msgstr "返回指定索引處的行是否折疊。"
+
+msgid ""
+"Returns whether the line at the specified index is marked as executing or not."
+msgstr "返回指定索引處的行是否標記為正在執行。"
+
+msgid "Returns whether the line at the specified index is folded or not."
+msgstr "返回指定索引處的行是否折疊。"
+
+msgid "Removes the comment delimiter with [param start_key]."
+msgstr "移除帶有 [param start_key] 的注釋分隔符號。"
+
+msgid "Removes the string delimiter with [param start_key]."
+msgstr "移除帶有 [param start_key] 的字串分隔符號。"
+
+msgid ""
+"Emits [signal code_completion_requested], if [param force] is true will "
+"bypass all checks. Otherwise will check that the caret is in a word or in "
+"front of a prefix. Will ignore the request if all current options are of type "
+"file path, node path or signal."
+msgstr ""
+"發出 [signal code_completion_requested],如果 [param force] 為真將繞過所有檢"
+"查。否則,將檢查游標是否在一個詞中或在一個前綴的前面。如果目前所有選項都是文件"
+"路徑、節點路徑或訊號型別,將忽略該請求。"
+
+msgid "Sets the current selected completion option."
+msgstr "設定目前選定的補全選項。"
+
+msgid "Sets the code hint text. Pass an empty string to clear."
+msgstr "設定程式碼提示文字。傳遞一個空字串來清除。"
+
+msgid "Sets if the code hint should draw below the text."
+msgstr "設定程式碼提示是否應繪製在文字下方。"
+
+msgid "Sets the code region start and end tags (without comment delimiter)."
+msgstr "設定程式碼區域開始和結束標記(無註解分隔符號)。"
+
+msgid "Sets the line as bookmarked."
+msgstr "將該行設定為書簽。"
+
+msgid "Sets the line as breakpointed."
+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 "在給定行切換程式碼塊的折疊。"
+
+msgid "Unfolds all lines, folded or not."
+msgstr "展開所有行,無論是否被折疊。"
+
+msgid "Unfolds all lines that were previously folded."
+msgstr "展開之前被折疊的所有行。"
+
+msgid ""
+"Unindents selected lines, or in the case of no selection the caret line by "
+"one. Same as performing \"ui_text_unindent\" action."
+msgstr ""
+"解除所選行的縮進,或者在沒有選擇的情況下,將游標行縮進一個。與觸"
+"發“ui_text_unindent ”動作相同。"
+
+msgid ""
+"Submits all completion options added with [method "
+"add_code_completion_option]. Will try to force the autocomplete menu to "
+"popup, if [param force] is [code]true[/code].\n"
+"[b]Note:[/b] This will replace all current candidates."
+msgstr ""
+"提交所有用 [method add_code_completion_option] 新增的補全選項。如果 [param "
+"force] 是 [code]true[/code],將嘗試強制彈出自動補全功能表 。\n"
+"[b]注意:[/b]這將取代所有目前的候補選項。"
+
+msgid "Sets whether brace pairs should be autocompleted."
+msgstr "設定括弧對是否應自動補全。"
+
+msgid "Highlight mismatching brace pairs."
+msgstr "高亮不配對的括弧對。"
+
+msgid "Sets the brace pairs to be autocompleted."
+msgstr "將括弧對設定為自動補全。"
+
+msgid "Sets whether code completion is allowed."
+msgstr "設定是否允許程式碼補全。"
+
+msgid "Sets prefixes that will trigger code completion."
+msgstr "設定將觸發程式碼補全的前綴。"
+
+msgid ""
+"Sets the comment delimiters. All existing comment delimiters will be removed."
+msgstr "設定注釋分隔符號。將刪除所有的現有注釋分隔符號。"
+
+msgid ""
+"Sets the string delimiters. All existing string delimiters will be removed."
+msgstr "設定字串分隔符號。將刪除所有的現有字串分隔符號。"
+
+msgid ""
+"Sets if bookmarked should be drawn in the gutter. This gutter is shared with "
+"breakpoints and executing lines."
+msgstr "設定是否應在邊欄中繪製書簽。該邊欄與中斷點和執行行共用。"
+
+msgid ""
+"Sets if breakpoints should be drawn in the gutter. This gutter is shared with "
+"bookmarks and executing lines."
+msgstr "設定是否應在邊欄中繪製中斷點。該邊欄與書簽和執行行共用。"
+
+msgid ""
+"Sets if executing lines should be marked in the gutter. This gutter is shared "
+"with breakpoints and bookmarks lines."
+msgstr "設定是否應在邊欄中繪製執行行。該邊欄與中斷點和書簽共用。"
+
+msgid "Sets if foldable lines icons should be drawn in the gutter."
+msgstr "設定是否應在裝訂線中繪製可折疊行圖示。"
+
+msgid "Sets if line numbers should be drawn in the gutter."
+msgstr "設定是否應在裝訂線中繪製行號。"
+
+msgid "Sets if line numbers drawn in the gutter are zero padded."
+msgstr "設定在裝訂線中繪製的行號是否填充零。"
+
+msgid ""
+"Sets whether automatic indent are enabled, this will add an extra indent if a "
+"prefix or brace is found."
+msgstr "設定是否啟用自動縮進,如果找到前綴或括弧,這將新增額外的縮進。"
+
+msgid "Prefixes to trigger an automatic indent."
+msgstr "觸發自動縮進的前綴。"
+
+msgid "Use spaces instead of tabs for indentation."
+msgstr "使用空格代替定位字元進行縮進。"
+
+msgid "Sets whether line folding is allowed."
+msgstr "設定是否允許折疊行。"
+
+msgid ""
+"Draws vertical lines at the provided columns. The first entry is considered a "
+"main hard guideline and is draw more prominently."
+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 "當使用者請求程式碼補全時觸發。"
+
+msgid "Emitted when the user has clicked on a valid symbol."
+msgstr "使用者點擊有效符號時發出。"
+
+msgid ""
+"Emitted when the user hovers over a symbol. The symbol should be validated "
+"and responded to, by calling [method set_symbol_lookup_word_as_valid]."
+msgstr ""
+"使用者將滑鼠懸停在符號上時發出。應該通過呼叫 [method "
+"set_symbol_lookup_word_as_valid] 對該符號進行驗證和回應。"
+
+msgid "Marks the option as a class."
+msgstr "將該選項標記為類。"
+
+msgid "Marks the option as a function."
+msgstr "將該選項標記為函式。"
+
+msgid "Marks the option as a Godot signal."
+msgstr "將該選項標記為 Godot 訊號。"
+
+msgid "Marks the option as a variable."
+msgstr "將該選項標記為變數。"
+
+msgid "Marks the option as a member."
+msgstr "將該選項標記為成員。"
+
+msgid "Marks the option as an enum entry."
+msgstr "將該選項標記為列舉條目。"
+
+msgid "Marks the option as a constant."
+msgstr "將該選項標記為常數。"
+
+msgid "Marks the option as a Godot node path."
+msgstr "將該選項標記為 Godot 節點路徑。"
+
+msgid "Marks the option as a file path."
+msgstr "將該選項標記為檔路徑。"
+
+msgid "Marks the option as unclassified or plain text."
+msgstr "將該選項標記為未分類或純文字。"
+
+msgid ""
+"The option is local to the location of the code completion query - e.g. a "
+"local variable. Subsequent value of location represent options from the outer "
+"class, the exact value represent how far they are (in terms of inner classes)."
+msgstr ""
+"該選項是相對於程式碼補全查詢位置的 - 例如區域變數。位置的後續值表示選項來自外"
+"部類,確切的值表示它們的距離(就內部類而言)。"
+
+msgid ""
+"The option is from the containing class or a parent class, relative to the "
+"location of the code completion query. Perform a bitwise OR with the class "
+"depth (e.g. 0 for the local class, 1 for the parent, 2 for the grandparent, "
+"etc) to store the depth of an option in the class or a parent class."
+msgstr ""
+"該選項來自於所在的類或父類,相對於程式碼補全查詢的位置。請使用類的深度進行按"
+"位 OR(或)運算(例如 0 表示目前類,1 表示父類,2 表示父類的父類等),從而在目"
+"前類或父類中儲存選項的深度。"
+
+msgid ""
+"The option is from user code which is not local and not in a derived class (e."
+"g. Autoload Singletons)."
+msgstr "該選項來自使用者程式碼,不是局部,也不是衍生類(例如自動載入單例)。"
+
+msgid ""
+"The option is from other engine code, not covered by the other enum constants "
+"- e.g. built-in classes."
+msgstr "該選項來自其他引擎程式碼,未被其他列舉常數覆蓋 - 例如內建類。"
+
+msgid "[Color] of the bookmark icon for bookmarked lines."
+msgstr "書簽圖示的 [Color],用於標記了書簽的行。"
+
+msgid "[Color] of the text to highlight mismatched braces."
+msgstr "用於高亮不配對括弧文字的 [Color]。"
+
+msgid "[Color] of the breakpoint icon for bookmarked lines."
+msgstr "書簽行的中斷點圖示的 [Color]。"
+
+msgid "[Color] 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 "[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 "[Color] of the executing icon for executing lines."
+msgstr "執行行執行圖示的 [Color]。"
+
+msgid "[Color] of background line highlight for folded code region."
+msgstr "折疊程式碼區域的背景線所反白的[顏色]。"
+
+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 ""
+"Max number of options to display in the code completion popup at any one time."
+msgstr "同時在程式碼補全快顯視窗中顯示的最大選項數。"
+
+msgid "Width of the scrollbar in the code completion popup."
+msgstr "程式碼補全快顯視窗中捲軸的寬度。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the bookmark gutter for bookmarked lines."
+msgstr "設定書簽行的自訂 [Texture2D],會在書簽欄中繪製。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the breakpoint gutter for breakpointed "
+"lines."
+msgstr "設定中斷點行的自訂 [Texture2D],會在中斷點欄中繪製。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the line folding gutter when a line can "
+"be folded."
+msgstr "設定可折疊行的自訂 [Texture2D],會在折疊行欄中繪製。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the line folding gutter when a code "
+"region can be folded."
+msgstr "設定可折疊行的自訂 [Texture2D],會在折疊行欄中繪製。"
+
+msgid "Icon to draw in the executing gutter for executing lines."
+msgstr "執行行的圖示,會在執行欄中繪製。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the line folding gutter when a line is "
+"folded and can be unfolded."
+msgstr ""
+"當行被折疊且可以展開時,設定要在行折疊裝訂線中繪製的一個自訂 [Texture2D]。"
+
+msgid ""
+"Sets a custom [Texture2D] to draw in the line folding gutter when a code "
+"region is folded and can be unfolded."
+msgstr ""
+"當行被折疊且可以展開時,設定要在行折疊裝訂線中繪製的一個自訂 [Texture2D]。"
+
+msgid "Sets a custom [Texture2D] to draw at the end of a folded line."
+msgstr "設定要繪製在折疊行末尾的一個自訂 [Texture2D]。"
+
+msgid "[StyleBox] for the code completion popup."
+msgstr "用於程式碼補全彈窗的 [StyleBox]。"
+
+msgid "A syntax highlighter intended for code."
+msgstr "用於程式碼的語法高亮器。"
+
+msgid ""
+"By adjusting various properties of this resource, you can change the colors "
+"of strings, comments, numbers, and other text patterns inside a [TextEdit] "
+"control."
+msgstr ""
+"通過調整該資源的各種屬性,可以更改 [TextEdit] 控制項內的字串、注釋、數位、和其"
+"他文字圖案的顏色。"
+
+msgid ""
+"Adds a color region such as comments or strings.\n"
+"Both the start and end keys must be symbols. Only the start key has to be "
+"unique.\n"
+"[param line_only] denotes if the region should continue until the end of the "
+"line or carry over on to the next line. If the end key is blank this is "
+"automatically set to [code]true[/code]."
+msgstr ""
+"新增顏色區域,類似注釋和字串。\n"
+"開始鍵和結束鍵都必須是符號。只有開始鍵必須是唯一的。\n"
+"[param line_only] 表示該區域應該持續到該行的末尾,還是延續到下一行。如果結束鍵"
+"為空,則自動設定為[code]true[/code]。"
+
+msgid ""
+"Sets the color for a keyword.\n"
+"The keyword cannot contain any symbols except '_'."
+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 "移除所有顏色區域。"
+
+msgid "Removes all keywords."
+msgstr "移除所有關鍵字。"
+
+msgid "Removes all member keywords."
+msgstr "移除所有成員關鍵字。"
+
+msgid "Returns the color for a keyword."
+msgstr "返回某個關鍵字的顏色。"
+
+msgid "Returns the color for a member keyword."
+msgstr "返回某個成員關鍵字的顏色。"
+
+msgid ""
+"Returns [code]true[/code] if the start key exists, else [code]false[/code]."
+msgstr "如果開始鍵存在則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the keyword exists, else [code]false[/code]."
+msgstr "如果關鍵字存在則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid ""
+"Returns [code]true[/code] if the member keyword exists, else [code]false[/"
+"code]."
+msgstr ""
+"如果成員關鍵字存在則返回 [code]true[/code],否則返回 [code]false[/code]。"
+
+msgid "Removes the color region that uses that start key."
+msgstr "移除使用該開始鍵的顏色區域。"
+
+msgid "Removes the keyword."
+msgstr "移除關鍵字。"
+
+msgid "Removes the member keyword."
+msgstr "移除成員關鍵字。"
+
+msgid ""
+"Sets the color regions. All existing regions will be removed. The "
+"[Dictionary] key is the region start and end key, separated by a space. The "
+"value is the region color."
+msgstr ""
+"設定顏色區域。現有區域都將被移除。[Dictionary] 的鍵為該區域的開始鍵和結束鍵,"
+"用空格隔開。對應的值為區域的顏色。"
+
+msgid ""
+"Sets color for functions. A function is a non-keyword string followed by a "
+"'('."
+msgstr "設定函式的顏色。函式是後跟“(”的非關鍵字字串。"
+
+msgid ""
+"Sets the keyword colors. All existing keywords will be removed. The "
+"[Dictionary] key is the keyword. The value is the keyword color."
+msgstr ""
+"設定關鍵字的顏色。現有關鍵字都將被移除。[Dictionary] 的鍵為關鍵字。對應的值為"
+"關鍵字的顏色。"
+
+msgid ""
+"Sets the member keyword colors. All existing member keyword will be removed. "
+"The [Dictionary] key is the member keyword. The value is the member keyword "
+"color."
+msgstr ""
+"設定成員關鍵字的顏色。現有成員關鍵字都將被移除。[Dictionary] 的鍵為成員關鍵"
+"字。對應的值為成員關鍵字的顏色。"
+
+msgid ""
+"Sets color for member variables. A member variable is non-keyword, non-"
+"function string proceeded with a '.'."
+msgstr "設定成員變數的顏色。成員變數是以“.”開頭的非關鍵字、非函式字串。"
+
+msgid "Sets the color for numbers."
+msgstr "設定數字的顏色。"
+
+msgid "Sets the color for symbols."
+msgstr "設定符號的顏色。"
+
+msgid "Abstract base class for 2D physics objects."
+msgstr "2D 物理物件的抽象基底類別。"
+
+msgid ""
+"Abstract base class for 2D physics objects. [CollisionObject2D] can hold any "
+"number of [Shape2D]s for collision. Each shape must be assigned to a [i]shape "
+"owner[/i]. Shape owners are not nodes and do not appear in the editor, but "
+"are accessible through code using the [code]shape_owner_*[/code] methods.\n"
+"[b]Note:[/b] Only collisions between objects within the same canvas "
+"([Viewport] canvas or [CanvasLayer]) are supported. The behavior of "
+"collisions between objects in different canvases is undefined."
+msgstr ""
+"2D 物理物件的抽象基底類別。[CollisionObject2D] 能夠容納任意數量的 [Shape2D] 用"
+"作碰撞形狀。每個形狀必須分配給一個[i]形狀所有者[/i]。形狀所有者不是節點,也不"
+"會出現在編輯器中,但可以通過程式碼使用 [code]shape_owner_*[/code] 方法存取。\n"
+"[b]注意:[/b]僅支援相同畫布中不同物件的碰撞([Viewport] 畫布或 "
+"[CanvasLayer])。不同畫布中的物件之間的碰撞行為是未定義的。"
+
+msgid ""
+"Called 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 function to be called."
+msgstr ""
+"當滑鼠指標進入該實體的任何形狀時呼叫。要求 [member input_pickable] 為 "
+"[code]true[/code] 並且至少設定了一個 [member collision_layer] 位。請注意,在單"
+"個 [CollisionObject2D] 中的不同形狀之間移動,不會導致該函式被呼叫。"
+
+msgid ""
+"Called 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 function to be called."
+msgstr ""
+"當滑鼠指標退出該實體的所有形狀時呼叫。要求 [member input_pickable] 為 "
+"[code]true[/code] 並且至少設定了一個 [member collision_layer] 位。請注意,在單"
+"個 [CollisionObject2D] 中的不同形狀之間移動,不會導致該函式被呼叫。"
+
+msgid ""
+"Called 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 "
+"entered [Shape2D]. Requires [member input_pickable] to be [code]true[/code] "
+"and at least one [member collision_layer] bit to be called."
+msgstr ""
+"當滑鼠指標進入該實體的任何形狀或從一個形狀移動到另一個形狀時呼叫。[param "
+"shape_idx] 是新進入的 [Shape2D] 的子索引。要求 [member input_pickable] 為 "
+"[code]true[/code] 並且要至少設定一個 [member collision_layer] 位。"
+
+msgid ""
+"Called when the mouse pointer exits any of this object's shapes. [param "
+"shape_idx] is the child index of the exited [Shape2D]. Requires [member "
+"input_pickable] to be [code]true[/code] and at least one [member "
+"collision_layer] bit to be called."
+msgstr ""
+"當滑鼠指標離開該實體的任何形狀時呼叫。[param shape_idx] 是退出的 [Shape2D] 的"
+"子索引。要求 [member input_pickable] 為 [code]true[/code] 並且至少要設定一個 "
+"[member collision_layer] 位。"
+
+msgid ""
+"Creates a new shape owner for the given object. Returns [code]owner_id[/code] "
+"of the new owner for future reference."
+msgstr ""
+"為給定物件建立一個新的形狀所有者。返回 [code]owner_id[/code]的新所有者,供將來"
+"引用。"
+
+msgid ""
+"Returns whether or not the specified layer of the [member collision_layer] is "
+"enabled, given a [param layer_number] between 1 and 32."
+msgstr ""
+"返回 [member collision_layer] 中是否啟用了指定的層,給定的 [param "
+"layer_number] 應在 1 和 32 之間。"
+
+msgid ""
+"Returns whether or not the specified layer of the [member collision_mask] is "
+"enabled, given a [param layer_number] between 1 and 32."
+msgstr ""
+"返回 [member collision_mask] 中是否啟用了指定的層,給定的 [param "
+"layer_number] 應在 1 和 32 之間。"
+
+msgid "Returns the object's [RID]."
+msgstr "返回對象的 [RID]。"
+
+msgid ""
+"Returns the [code]one_way_collision_margin[/code] of the shape owner "
+"identified by given [param owner_id]."
+msgstr ""
+"返回由給定 [param owner_id] 標識的形狀所有者的 "
+"[code]one_way_collision_margin[/code]。"
+
+msgid ""
+"Returns an [Array] of [code]owner_id[/code] identifiers. You can use these "
+"ids in other methods that take [code]owner_id[/code] as an argument."
+msgstr ""
+"返回一個 [code]owner_id[/code] 識別字的 [Array]。你可以在其他使用 "
+"[code]owner_id[/code] 作為參數的方法中使用這些 ID。"
+
+msgid "If [code]true[/code], the shape owner and its shapes are disabled."
+msgstr "如果為 [code]true[/code],則禁用形狀所有者及其形狀。"
+
+msgid ""
+"Returns [code]true[/code] if collisions for the shape owner originating from "
+"this [CollisionObject2D] will not be reported to collided with "
+"[CollisionObject2D]s."
+msgstr ""
+"返回 [code]true[/code],如果源於這個 [CollisionObject2D] 的形狀所有者的碰撞不"
+"會被報告給 [CollisionObject2D]。"
+
+msgid "Removes the given shape owner."
+msgstr "移除給定形狀的所有者。"
+
+msgid ""
+"Based on [param value], enables or disables the specified layer in the "
+"[member collision_layer], given a [param layer_number] between 1 and 32."
+msgstr ""
+"根據 [param value],啟用或禁用 [member collision_layer] 中指定的層,給定的 "
+"[param layer_number] 應在 1 和 32 之間。"
+
+msgid ""
+"Based on [param value], enables or disables the specified layer in the "
+"[member collision_mask], given a [param layer_number] between 1 and 32."
+msgstr ""
+"根據 [param value],啟用或禁用 [member collision_mask] 中指定的層,給定的 "
+"[param layer_number] 應在 1 和 32 之間。"
+
+msgid "Returns the [code]owner_id[/code] of the given shape."
+msgstr "返回指定形狀的 [code]owner_id[/code]。"
+
+msgid "Adds a [Shape2D] to the shape owner."
+msgstr "給形狀所有者新增一個 [Shape2D]。"
+
+msgid "Removes all shapes from the shape owner."
+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]。"
+
+msgid "Removes a shape from the given shape owner."
+msgstr "從給定的形狀所有者中移除一個形狀。"
+
+msgid "If [code]true[/code], disables the given shape owner."
+msgstr "如果為 [code]true[/code],則禁用給定的形狀所有者。"
+
+msgid ""
+"If [param enable] is [code]true[/code], collisions for the shape owner "
+"originating from this [CollisionObject2D] will not be reported to collided "
+"with [CollisionObject2D]s."
+msgstr ""
+"如果 [param enable] 為 [code]true[/code],則源自該 [CollisionObject2D] 的形狀"
+"所有者的碰撞將不會被報告為與 [CollisionObject2D] 發生碰撞。"
+
+msgid ""
+"Sets the [code]one_way_collision_margin[/code] of the shape owner identified "
+"by given [param owner_id] to [param margin] pixels."
+msgstr ""
+"將由給定 [param owner_id] 標識的形狀所有者的 [code]one_way_collision_margin[/"
+"code] 設定為 [param margin] 圖元。"
+
+msgid "Sets the [Transform2D] of the given shape owner."
+msgstr "設定給定形狀所有者的 [Transform2D]。"
+
+msgid ""
+"The physics layers this CollisionObject2D is in. Collision objects can exist "
+"in one or more of 32 different layers. See also [member collision_mask].\n"
+"[b]Note:[/b] 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 ""
+"此 CollisionObject2D 所在的實體層。碰撞物件可以存在於 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 CollisionObject2D scans. 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 ""
+"此 CollisionObject2D 掃描的實體層。碰撞物件可以掃描 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 ""
+"The priority used to solve colliding when occurring penetration. The higher "
+"the priority is, the lower the penetration into the object will be. This can "
+"for example be used to prevent the player from breaking through the "
+"boundaries of a level."
+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 "
+"input events. Requires at least one [member collision_layer] bit to be set."
+msgstr ""
+"如果為 [code]true[/code],則該對象是可拾取的。可拾取的物件可以偵測滑鼠指標的進"
+"入/離開,滑鼠位於其中時,就會報告輸入事件。要求至少設定一個 [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 "
+"entered [Shape2D]. Requires [member input_pickable] to be [code]true[/code] "
+"and at least one [member collision_layer] bit to be set."
+msgstr ""
+"當滑鼠指標進入該實體的任何形狀或從一種形狀移動到另一種形狀時發出。[param "
+"shape_idx] 是新進入的 [Shape2D] 的子索引。要求 [member input_pickable] 為 "
+"[code]true[/code] 並且至少設定一個 [member collision_layer] 位。"
+
+msgid ""
+"Emitted when the mouse pointer exits any of this object's shapes. [param "
+"shape_idx] is the child index of the exited [Shape2D]. Requires [member "
+"input_pickable] to be [code]true[/code] and at least one [member "
+"collision_layer] bit to be set."
+msgstr ""
+"當滑鼠指標離開該實體的任何形狀時發出。[param shape_idx] 是退出的 [Shape2D] 的"
+"子索引。要求 [member input_pickable] 為 [code]true[/code] 並且至少設定一個 "
+"[member collision_layer] 位。"
+
+msgid ""
+"When [member Node.process_mode] is set to [constant Node."
+"PROCESS_MODE_DISABLED], remove from the physics simulation to stop all "
+"physics interactions with this [CollisionObject2D].\n"
+"Automatically re-added to the physics simulation when the [Node] is processed "
+"again."
+msgstr ""
+"當 [member Node.process_mode] 被設定為 [constant Node.PROCESS_MODE_DISABLED] "
+"時,從物理模擬中移除,停止與此 [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."
+msgstr ""
+"當 [member Node.process_mode] 被設定為 [constant Node.PROCESS_MODE_DISABLED] "
+"時,不影響物理模擬。"
+
+msgid "Abstract base class for 3D physics objects."
+msgstr "3D 物理物件的抽象基底類別。"
+
+msgid ""
+"Abstract base class for 3D physics objects. [CollisionObject3D] can hold any "
+"number of [Shape3D]s for collision. Each shape must be assigned to a [i]shape "
+"owner[/i]. Shape owners are not nodes and do not appear in the editor, but "
+"are accessible through code using the [code]shape_owner_*[/code] methods.\n"
+"[b]Warning:[/b] With a non-uniform scale, this node will likely not behave as "
+"expected. It is advised to keep its scale the same on all axes and adjust its "
+"collision shape(s) instead."
+msgstr ""
+"3D 物理物件的抽象基底類別。[CollisionObject3D] 能夠容納任意數量的 [Shape3D] 用"
+"作碰撞形狀。每個形狀必須分配給一個[i]形狀所有者[/i]。形狀所有者不是節點,也不"
+"會出現在編輯器中,但可以通過程式碼使用 [code]shape_owner_*[/code] 方法存取。\n"
+"[b]警告:[/b]如果使用非均勻縮放,則該節點可能無法按預期工作。建議讓所有軸上的"
+"縮放保持一致,可以用對碰撞形狀的調整來代替非均勻縮放。"
+
+msgid ""
+"Receives unhandled [InputEvent]s. [param position] is the location in world "
+"space of the mouse pointer on the surface of the shape with index [param "
+"shape_idx] and [param normal] is the normal vector of the surface at that "
+"point. Connect to the [signal input_event] signal to easily pick up these "
+"events.\n"
+"[b]Note:[/b] [method _input_event] requires [member input_ray_pickable] to be "
+"[code]true[/code] and at least one [member collision_layer] bit to be set."
+msgstr ""
+"接收未處理的 [InputEvent]。[param position] 是滑鼠指標在索引為 [param "
+"shape_idx] 的形狀表面上的世界空間位置,[param normal] 是該點表面的法向量。連接"
+"到 [signal input_event] 訊號即可輕鬆獲取這些事件。\n"
+"[b]注意:[/b][method _input_event] 要求 [member input_ray_pickable] 為 "
+"[code]true[/code],並且至少要設定一個 [member collision_layer] 位。"
+
+msgid ""
+"Called 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. Note that moving between different shapes "
+"within a single [CollisionObject3D] won't cause this function to be called."
+msgstr ""
+"當滑鼠指標進入該實體的任何形狀時呼叫。要求 [member input_ray_pickable] 為 "
+"[code]true[/code] 並且至少設定一個 [member collision_layer] 位。請注意,在單"
+"個 [CollisionObject3D] 中的不同形狀之間移動,不會導致該函式被呼叫。"
+
+msgid ""
+"Called 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. Note that moving between different shapes "
+"within a single [CollisionObject3D] won't cause this function to be called."
+msgstr ""
+"當滑鼠指標離開該實體的所有形狀時呼叫。要求 [member input_ray_pickable] 為 "
+"[code]true[/code] 並且至少設定一個 [member collision_layer] 位。請注意,在單"
+"個 [CollisionObject3D] 中的不同形狀之間移動,不會導致該函式被呼叫。"
+
+msgid "Adds a [Shape3D] to the shape owner."
+msgstr "向形狀擁有者新增 [Shape3D]。"
+
+msgid "Returns the [Shape3D] with the given ID from the given shape owner."
+msgstr "返回形狀所有者中具有給定 ID 的 [Shape3D]。"
+
+msgid ""
+"Returns the child index of the [Shape3D] with the given ID from the given "
+"shape owner."
+msgstr "返回形狀所有者中具有給定 ID 的 [Shape3D] 的子索引。"
+
+msgid "Returns the shape owner's [Transform3D]."
+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 "
+"physics interactions with this [CollisionObject3D].\n"
+"Automatically re-added to the physics simulation when the [Node] is processed "
+"again."
+msgstr ""
+"當 [member Node.process_mode] 被設定為 [constant Node.PROCESS_MODE_DISABLED] "
+"時,從物理模擬中移除,停止與此 [CollisionObject3D] 的所有物理互動。\n"
+"當該 [Node] 再次被處理時,會自動重新加入到物理模擬中。"
+
+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 "A node that provides a polygon shape to a [CollisionObject2D] parent."
+msgstr "向 [CollisionObject2D] 父級提供多邊形形狀的節點。"
+
+msgid ""
+"A node that provides a thickened polygon shape (a prism) to a "
+"[CollisionObject2D] parent and allows to edit it. The polygon can be concave "
+"or convex. This can give a detection shape to an [Area2D] or turn "
+"[PhysicsBody2D] into a solid object.\n"
+"[b]Warning:[/b] A non-uniformly scaled [CollisionShape2D] will likely not "
+"behave as expected. Make sure to keep its scale the same on all axes and "
+"adjust its shape resource instead."
+msgstr ""
+"向 [CollisionObject2D] 父級提供加厚多邊形形狀(角柱體)的節點,能夠為這個形狀"
+"提供編輯的方法。該多邊形可以是凹多邊形,也可以是凸多邊形。能夠為 [Area2D] 提供"
+"偵測形狀,也能夠將 [PhysicsBody2D] 變為實體。\n"
+"[b]警告:[/b]非均勻縮放的 [CollisionObject2D] 應該無法按預期工作。請確保它在所"
+"有軸上的縮放是一致的,可以用對形狀資源的調整來代替非均勻縮放。"
+
+msgid "Collision build mode. Use one of the [enum BuildMode] constants."
+msgstr "碰撞建構模式。使用 [enum BuildMode] 常數之一。"
+
+msgid "If [code]true[/code], no collisions will be detected."
+msgstr "如果為 [code]true[/code],則不會偵測到碰撞。"
+
+msgid ""
+"If [code]true[/code], only edges that face up, relative to "
+"[CollisionPolygon2D]'s rotation, will collide with other objects.\n"
+"[b]Note:[/b] This property has no effect if this [CollisionPolygon2D] is a "
+"child of an [Area2D] node."
+msgstr ""
+"如果為 [code]true[/code],則只有面朝上的邊緣才會與其他物件發生碰撞,方向是相對"
+"於 [CollisionPolygon2D] 的旋轉而言的。\n"
+"[b]注意:[/b]如果這個 [CollisionPolygon2D] 是 [Area2D] 節點的子節點,則這個屬"
+"性無效。"
+
+msgid ""
+"The margin used for one-way collision (in pixels). Higher values will make "
+"the shape thicker, and work better for colliders that enter the polygon at a "
+"high velocity."
+msgstr ""
+"用於單向碰撞的邊距(以圖元為單位)。較高的值將使形狀更厚,並且對於以高速進入多"
+"邊形的對撞機來說效果更好。"
+
+msgid ""
+"The polygon's list of vertices. Each point will be connected to the next, and "
+"the final point will be connected to the first.\n"
+"[b]Warning:[/b] The returned value is a clone of the [PackedVector2Array], "
+"not a reference."
+msgstr ""
+"該多邊形的頂點列表。每個點都與下一個點相連,最後一個點與第一個點相連。\n"
+"[b]警告:[/b]返回值是 [PackedVector2Array] 的副本,不是引用。"
+
+msgid ""
+"Collisions will include the polygon and its contained area. In this mode the "
+"node has the same effect as several [ConvexPolygonShape2D] nodes, one for "
+"each convex shape in the convex decomposition of the polygon (but without the "
+"overhead of multiple nodes)."
+msgstr ""
+"碰撞包含多邊形及其內部區域。在這個模式下,該節點的效果與使用若干 "
+"[ConvexPolygonShape2D] 節點相同,其中的每個節點都包含該多邊形凸分解後的凸形狀"
+"(但不會有使用多個節點的負擔)。"
+
+msgid ""
+"Collisions will only include the polygon edges. In this mode the node has the "
+"same effect as a single [ConcavePolygonShape2D] made of segments, with the "
+"restriction that each segment (after the first one) starts where the previous "
+"one ends, and the last one ends where the first one starts (forming a closed "
+"but hollow polygon)."
+msgstr ""
+"碰撞經包含多邊形的邊緣。在這個模式下,該節點的效果與單個由若干線段組成的 "
+"[ConcavePolygonShape2D] 相同,其中(第一條以後的)每條線段都從上一條的終點開"
+"始,最後一條線段在第一條的起點結束(構成閉合但中空的多邊形)。"
+
+msgid ""
+"A node that provides a thickened polygon shape (a prism) to a "
+"[CollisionObject3D] parent."
+msgstr "向 [CollisionObject3D] 父級提供加厚多邊形形狀(角柱體)的節點。"
+
+msgid ""
+"A node that provides a thickened polygon shape (a prism) to a "
+"[CollisionObject3D] parent and allows to edit it. The polygon can be concave "
+"or convex. This can give a detection shape to an [Area3D] or turn "
+"[PhysicsBody3D] into a solid object.\n"
+"[b]Warning:[/b] A non-uniformly scaled [CollisionShape3D] will likely not "
+"behave as expected. Make sure to keep its scale the same on all axes and "
+"adjust its shape resource instead."
+msgstr ""
+"向 [CollisionObject3D] 父級提供加厚多邊形形狀(角柱體)的節點,能夠為這個形狀"
+"提供編輯的方法。該多邊形可以是凹多邊形,也可以是凸多邊形。能夠為 [Area3D] 提供"
+"偵測形狀,也能夠將 [PhysicsBody3D] 變為實體。\n"
+"[b]警告:[/b]非均勻縮放的 [CollisionShape3D] 應該無法按預期工作。請確保它在所"
+"有軸上的縮放是一致的,可以用對形狀資源的調整來代替非均勻縮放。"
+
+msgid ""
+"Length that the resulting collision extends in either direction perpendicular "
+"to its 2D polygon."
+msgstr "產生的碰撞沿著與 2D 多邊形垂直的任意方向深入的長度。"
+
+msgid "If [code]true[/code], no collision will be produced."
+msgstr "如果為 [code]true[/code],將不會產生碰撞。"
+
+msgid ""
+"The collision margin for the generated [Shape3D]. See [member Shape3D.margin] "
+"for more details."
+msgstr "生成的 [Shape3D] 的碰撞邊距。詳情見 [member Shape3D.margin]。"
+
+msgid "A node that provides a [Shape2D] to a [CollisionObject2D] parent."
+msgstr "向 [CollisionObject2D] 父級提供 [Shape2D] 的節點。"
+
+msgid ""
+"A node that provides a [Shape2D] to a [CollisionObject2D] parent and allows "
+"to edit it. This can give a detection shape to an [Area2D] or turn a "
+"[PhysicsBody2D] into a solid object."
+msgstr ""
+"向 [CollisionObject2D] 父級提供 [Shape2D] 並允許對其進行編輯的節點。這可以為 "
+"[Area2D] 提供偵測形狀或將 [PhysicsBody2D] 轉變為實體物件。"
+
+msgid "Physics introduction"
+msgstr "物理介紹"
+
+msgid ""
+"The collision shape debug color.\n"
+"[b]Note:[/b] The default value is [member ProjectSettings.debug/shapes/"
+"collision/shape_color]. The [code]Color(0, 0, 0, 1)[/code] value documented "
+"here is a placeholder, and not the actual default debug color."
+msgstr ""
+"碰撞形狀的除錯顏色。\n"
+"[b]注意:[/b]預設值為 [member ProjectSettings.debug/shapes/collision/"
+"shape_color]。這裡記錄的 [code]Color(0, 0, 0, 1)[/code] 值是預留位置,不是實際"
+"的預設除錯顏色。"
+
+msgid ""
+"A disabled collision shape has no effect in the world. This property should "
+"be changed with [method Object.set_deferred]."
+msgstr ""
+"禁用的碰撞形狀在世界中沒有影響。這個屬性應該用 [method Object.set_deferred] 改"
+"變。"
+
+msgid ""
+"Sets whether this collision shape should only detect collision on one side "
+"(top or bottom).\n"
+"[b]Note:[/b] This property has no effect if this [CollisionShape2D] is a "
+"child of an [Area2D] node."
+msgstr ""
+"設定此碰撞形狀是否僅應偵測到一側(頂部或底部)的碰撞。\n"
+"[b]注意:[/b]如果這個 [CollisionShape2D] 是 [Area2D] 節點的子節點,則這個屬性"
+"無效。"
+
+msgid ""
+"The margin used for one-way collision (in pixels). Higher values will make "
+"the shape thicker, and work better for colliders that enter the shape at a "
+"high velocity."
+msgstr ""
+"用於單向碰撞的邊距(以圖元為單位)。較高的值將使形狀更厚,並且對於高速進入形狀"
+"的對撞機來說效果更好。"
+
+msgid "The actual shape owned by this collision shape."
+msgstr "該碰撞形狀擁有的實際形狀。"
+
+msgid "A node that provides a [Shape3D] to a [CollisionObject3D] parent."
+msgstr "向 [CollisionObject3D] 父級提供 [Shape3D] 的節點。"
+
+msgid ""
+"A node that provides a [Shape3D] to a [CollisionObject3D] parent and allows "
+"to edit it. This can give a detection shape to an [Area3D] or turn a "
+"[PhysicsBody3D] into a solid object.\n"
+"[b]Warning:[/b] A non-uniformly scaled [CollisionShape3D] will likely not "
+"behave as expected. Make sure to keep its scale the same on all axes and "
+"adjust its [member shape] resource instead."
+msgstr ""
+"向 [CollisionObject3D] 父級提供 [Shape3D] 並能夠對其進行編輯的節點。可以為 "
+"[Area3D] 提供偵測形狀,也可以將 [PhysicsBody3D] 變為實體物件。\n"
+"[b]警告:[/b]非均勻縮放的 [CollisionShape3D] 可能無法按預期運作。請保持在所有"
+"軸上使用相同的縮放,需要時可以更改其 [member shape] 資源代替。"
+
+msgid ""
+"Sets the collision shape's shape to the addition of all its convexed "
+"[MeshInstance3D] siblings geometry."
+msgstr "將碰撞形狀的形狀設定為其所有凸面 [MeshInstance3D] 兄弟幾何體的相加。"
+
+msgid "[i]Obsoleted.[/i] Use [signal Resource.changed] instead."
+msgstr "[i]已廢棄。[/i] 請改用[signal Resource.changed]。"
+
+msgid "A disabled collision shape has no effect in the world."
+msgstr "禁用的碰撞形狀對世界沒有任何影響。"
+
+msgid "A color represented in RGBA format."
+msgstr "以 RGBA 格式表示的顏色。"
+
+msgid ""
+"A color represented in RGBA format by a red ([member r]), green ([member g]), "
+"blue ([member b]), and alpha ([member a]) component. Each component is a 16-"
+"bit floating-point value, usually ranging from [code]0.0[/code] to [code]1.0[/"
+"code]. Some properties (such as [member CanvasItem.modulate]) may support "
+"values greater than [code]1.0[/code], for overbright or HDR (High Dynamic "
+"Range) colors.\n"
+"Colors can be created in various ways: By the various [Color] constructors, "
+"by static methods such as [method from_hsv], and by using a name from the set "
+"of standardized colors based on [url=https://en.wikipedia.org/wiki/"
+"X11_color_names]X11 color names[/url] with the addition of [constant "
+"TRANSPARENT]. GDScript also provides [method @GDScript.Color8], which uses "
+"integers from [code]0[/code] to [code]255[/code] and doesn't support "
+"overbright colors.\n"
+"[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/"
+"code] if it is equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). "
+"Otherwise, a Color will always evaluate to [code]true[/code].\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"color_constants.png]Color constants cheatsheet[/url]"
+msgstr ""
+"由紅([member r])、綠([member g])、藍([member b])和 alpha([member a])分"
+"量表示的 RGBA 格式的顏色。每個分量都是一個 16 位浮點值,通常介於 [code]0.0[/"
+"code] 到 [code]1.0[/code] 之間。某些屬性(例如 [member CanvasItem.modulate])"
+"可能支援大於 [code]1.0[/code] 的值,用於表示過亮或 HDR(High Dynamic Range,高"
+"動態範圍)顏色。\n"
+"建立顏色的方法有很多:可以使用 [Color] 的各種建構子,[method from_hsv] 等靜態"
+"方法,以及使用基於 [url=https://en.wikipedia.org/wiki/X11_color_names]X11 顏色"
+"名稱[/url]的標準化顏色集外加 [constant TRANSPARENT]。GDScript 還提供了 "
+"[method @GDScript.Color8],使用的是 [code]0[/code] 到 [code]255[/code] 之間的"
+"整數,但不支援過亮的顏色。\n"
+"[b]注意:[/b]在布林本文中,等於 [code]Color(0, 0, 0, 1)[/code](不透明的黑色)"
+"的 Color 將被評估為 [code]false[/code]。否則,Color 將始終被評估為 "
+"[code]true[/code]。\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/4.1/img/"
+"color_constants.png]Color 常數速查表[/url]"
+
+msgid "2D GD Paint Demo"
+msgstr "2D GD 畫圖演示"
+
+msgid "Tween Demo"
+msgstr "Tween 演示"
+
+msgid "GUI Drag And Drop Demo"
+msgstr "GUI 拖放演示"
+
+msgid ""
+"Constructs a default [Color] from opaque black. This is the same as [constant "
+"BLACK].\n"
+"[b]Note:[/b] in C#, constructs an empty color with all of its components set "
+"to [code]0.0[/code] (transparent black)."
+msgstr ""
+"用不透明的黑色建構預設的 [Color],與 [constant BLACK] 相同。\n"
+"[b]注意:[/b]在 C# 中建構的空顏色,其所有分量都為 [code]0.0[/code](透明黑)。"
+
+msgid ""
+"Constructs a [Color] from the existing color, with [member a] set to the "
+"given [param alpha] value.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var red = Color(Color.RED, 0.2) # 20% opaque red.\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var red = new Color(Colors.Red, 0.2f); // 20% opaque red.\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"從現有的顏色建構 [Color],[member a] 設定為給定的 [param alpha] 值。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var red = Color(Color.RED, 0.2) # 20% 不透明紅色。\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var red = new Color(Colors.Red, 0.2f); // 20% 不透明紅色。\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid "Constructs a [Color] as a copy of the given [Color]."
+msgstr "建構給定 [Color] 的副本。"
+
+msgid ""
+"Constructs a [Color] either from an HTML color code or from a standardized "
+"color name. The supported color names are the same as the constants."
+msgstr ""
+"從 HTML 顏色程式碼或標準化的顏色名稱中建構 [Color]。支援的顏色名稱與常數名相"
+"同。"
+
+msgid ""
+"Constructs a [Color] either from an HTML color code or from a standardized "
+"color name, with [param alpha] on the range of 0.0 to 1.0. The supported "
+"color names are the same as the constants."
+msgstr ""
+"從 HTML 顏色程式碼或標準化的顏色名稱中建構 [Color],[param alpha] 的範圍為 "
+"0.0 到 1.0。支援的顏色名稱與常數名相同。"
+
+msgid ""
+"Constructs a [Color] from RGB values, typically between 0.0 and 1.0. [member "
+"a] is set to 1.0.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(0.2, 1.0, 0.7) # Similar to `Color8(51, 255, 178, 255)`\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(0.2f, 1.0f, 0.7f); // Similar to `Color.Color8(51, 255, "
+"178, 255)`\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"從通常介於 0.0 和 1.0 之間的 RGB 值建構一個 [Color]。[member a] 被設定為 "
+"1.0。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(0.2, 1.0, 0.7) # 類似於 `Color8(51, 255, 178, 255)`\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(0.2f, 1.0f, 0.7f); // 類似於 `Color.Color8(51, 255, "
+"178, 255)`\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Constructs a [Color] from RGBA values, typically between 0.0 and 1.0.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(0.2, 1.0, 0.7, 0.8) # Similar to `Color8(51, 255, 178, "
+"204)`\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(0.2f, 1.0f, 0.7f, 0.8f); // Similar to `Color."
+"Color8(51, 255, 178, 255, 204)`\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"從通常介於 0.0 和 1.0 之間的 RGBA 值建構一個 [Color]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(0.2, 1.0, 0.7, 0.8) # 類似於 `Color8(51, 255, 178, 204)`\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(0.2f, 1.0f, 0.7f, 0.8f); // 類似於 `Color.Color8(51, "
+"255, 178, 255, 204)`\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a new color resulting from overlaying this color over the given "
+"color. In a painting program, you can imagine it as the [param over] color "
+"painted over this color (including alpha).\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%\n"
+"var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%\n"
+"var blended_color = bg.blend(fg) # Brown with alpha of 75%\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var bg = new Color(0.0f, 1.0f, 0.0f, 0.5f); // Green with alpha of 50%\n"
+"var fg = new Color(1.0f, 0.0f, 0.0f, 0.5f); // Red with alpha of 50%\n"
+"Color blendedColor = bg.Blend(fg); // Brown with alpha of 75%\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回將該顏色混合到給定顏色上所產生的新顏色。在繪畫程式中,你可以將其想像為在該"
+"顏色(包括 alpha)上繪製的 [param over] 顏色。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var bg = Color(0.0, 1.0, 0.0, 0.5) # 50% 不透明的綠色\n"
+"var fg = Color(1.0, 0.0, 0.0, 0.5) # 50% 不透明的紅色\n"
+"var blended_color = bg.blend(fg) # 75% 不透明的棕色\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var bg = new Color(0.0f, 1.0f, 0.0f, 0.5f); // 50% 不透明的綠色\n"
+"var fg = new Color(1.0f, 0.0f, 0.0f, 0.5f); // 50% 不透明的紅色\n"
+"Color blendedColor = bg.Blend(fg); // 75% 不透明的棕色\n"
+"[/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"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var darkgreen = green.darkened(0.2) # 20% darker than regular green\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var green = new Color(0.0f, 1.0f, 0.0f);\n"
+"Color darkgreen = green.Darkened(0.2f); // 20% darker than regular green\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回通過指定 [param amount](從 0.0 到 1.0 的比率)使該顏色變暗而產生的新顏"
+"色。另見 [method lightened]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var darkgreen = green.darkened(0.2) # 比普通的綠色深 20%\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var green = new Color(0.0f, 1.0f, 0.0f);\n"
+"Color darkgreen = green.Darkened(0.2f); // 比普通的綠色深 20%\n"
+"[/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]."
+msgstr ""
+"從 RGBE9995 格式的整數解碼 [Color]。見 [constant Image.FORMAT_RGBE9995]。"
+
+msgid ""
+"Creates a [Color] from the given string, which can be either an HTML color "
+"code or a named color (case-insensitive). Returns [param default] if the "
+"color cannot be inferred from the string."
+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).\n"
+"In GDScript and C#, the [int] is best visualized with hexadecimal notation "
+"([code]\"0x\"[/code] prefix, making it [code]\"0xRRGGBBAA\"[/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]"
+msgstr ""
+"返回與提供的整數 [param hex] 相關聯的 [Color],使用 32 位 RGBA 格式(每通道 8 "
+"位)。\n"
+"在 GDScript 和 C# 中,展示該 [int] 的最好方法是十六進位標記法(使用 "
+"[code]\"0x\"[/code] 前綴,得到 [code]\"0xRRGGBBAA\"[/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).\n"
+"In GDScript and C#, the [int] is best visualized with hexadecimal notation "
+"([code]\"0x\"[/code] prefix, making it [code]\"0xRRRRGGGGBBBBAAAA\"[/code])."
+msgstr ""
+"返回與提供的整數 [param hex] 相關聯的 [Color],使用 64 位 RGBA 格式(每通道 8 "
+"位)。\n"
+"在 GDScript 和 C# 中,展示該 [int] 的最好方法是十六進位標記法(使用 "
+"[code]\"0x\"[/code] 前綴,得到 [code]\"0xRRRRGGGGBBBBAAAA\"[/code])。"
+
+msgid ""
+"Returns a new color from [param rgba], an HTML hexadecimal color string. "
+"[param rgba] is not case-sensitive, and may be prefixed by a hash sign "
+"([code]#[/code]).\n"
+"[param rgba] must be a valid three-digit or six-digit hexadecimal color "
+"string, and may contain an alpha channel value. If [param rgba] does not "
+"contain an alpha channel value, an alpha channel value of 1.0 is applied. If "
+"[param rgba] is invalid, returns an empty color.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var blue = Color.html(\"#0000ff\") # blue is Color(0.0, 0.0, 1.0, 1.0)\n"
+"var green = Color.html(\"#0F0\") # green is Color(0.0, 1.0, 0.0, 1.0)\n"
+"var col = Color.html(\"663399cc\") # col is Color(0.4, 0.2, 0.6, 0.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var blue = Color.FromHtml(\"#0000ff\"); // blue is Color(0.0, 0.0, 1.0, 1.0)\n"
+"var green = Color.FromHtml(\"#0F0\"); // green is Color(0.0, 1.0, 0.0, "
+"1.0)\n"
+"var col = Color.FromHtml(\"663399cc\"); // col is Color(0.4, 0.2, 0.6, 0.8)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"從 HTML 十六進位顏色字串 [param rgba] 返回一個新顏色。[param rgba] 不區分大小"
+"寫,可以使用雜湊符號([code]#[/code])作為前綴。\n"
+"[param rgba] 必須是有效的三位或六位元十六進位顏色字串,並且可以包含 alpha 通道"
+"值。如果 [param rgba] 不包含 alpha 通道值,則套用 alpha 通道值 1.0。如果 "
+"[param rgba] 無效,則返回一個空顏色。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var blue = Color.html(\"#0000ff\") # blue 為 Color(0.0, 0.0, 1.0, 1.0)\n"
+"var green = Color.html(\"#0F0\") # green 為 Color(0.0, 1.0, 0.0, 1.0)\n"
+"var col = Color.html(\"663399cc\") # col 為 Color(0.4, 0.2, 0.6, 0.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var blue = Color.FromHtml(\"#0000ff\"); // blue 為 Color(0.0, 0.0, 1.0, 1.0)\n"
+"var green = Color.FromHtml(\"#0F0\"); // green 為 Color(0.0, 1.0, 0.0, "
+"1.0)\n"
+"var col = Color.FromHtml(\"663399cc\"); // col 為 Color(0.4, 0.2, 0.6, 0.8)\n"
+"[/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."
+msgstr ""
+"如果該顏色和 [param to] 近似相等,則返回 [code]true[/code],判斷近似相等的方法"
+"是通過在每個分量上運作 [method @GlobalScope.is_equal_approx]。"
+
+msgid ""
+"Returns the linear interpolation between this color's components and [param "
+"to]'s components. The interpolation factor [param weight] should be between "
+"0.0 and 1.0 (inclusive). See also [method @GlobalScope.lerp].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var red = Color(1.0, 0.0, 0.0)\n"
+"var aqua = Color(0.0, 1.0, 0.8)\n"
+"\n"
+"red.lerp(aqua, 0.2) # Returns Color(0.8, 0.2, 0.16)\n"
+"red.lerp(aqua, 0.5) # Returns Color(0.5, 0.5, 0.4)\n"
+"red.lerp(aqua, 1.0) # Returns Color(0.0, 1.0, 0.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var red = new Color(1.0f, 0.0f, 0.0f);\n"
+"var aqua = new Color(0.0f, 1.0f, 0.8f);\n"
+"\n"
+"red.Lerp(aqua, 0.2f); // Returns Color(0.8f, 0.2f, 0.16f)\n"
+"red.Lerp(aqua, 0.5f); // Returns Color(0.5f, 0.5f, 0.4f)\n"
+"red.Lerp(aqua, 1.0f); // Returns Color(0.0f, 1.0f, 0.8f)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回將該顏色的分量和 [param to] 的分量進行線性插值的結果。插值係數 [param "
+"weight] 應該在 0.0 和 1.0 之間(閉區間)。另請參閱 [method @GlobalScope."
+"lerp]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var red = Color(1.0, 0.0, 0.0)\n"
+"var aqua = Color(0.0, 1.0, 0.8)\n"
+"\n"
+"red.lerp(aqua, 0.2) # 返回 Color(0.8, 0.2, 0.16)\n"
+"red.lerp(aqua, 0.5) # 返回 Color(0.5, 0.5, 0.4)\n"
+"red.lerp(aqua, 1.0) # 返回 Color(0.0, 1.0, 0.8)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var red = new Color(1.0f, 0.0f, 0.0f);\n"
+"var aqua = new Color(0.0f, 1.0f, 0.8f);\n"
+"\n"
+"red.Lerp(aqua, 0.2f); // 返回 Color(0.8f, 0.2f, 0.16f)\n"
+"red.Lerp(aqua, 0.5f); // 返回 Color(0.5f, 0.5f, 0.4f)\n"
+"red.Lerp(aqua, 1.0f); // 返回 Color(0.0f, 1.0f, 0.8f)\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns a new color resulting from making this color lighter by the specified "
+"[param amount], which should be a ratio from 0.0 to 1.0. See also [method "
+"darkened].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var light_green = green.lightened(0.2) # 20% lighter than regular green\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var green = new Color(0.0f, 1.0f, 0.0f);\n"
+"Color lightGreen = green.Lightened(0.2f); // 20% lighter than regular green\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回通過指定 [param amount](從 0.0 到 1.0 的比率)使該顏色變亮而產生的新顏"
+"色。另見 [method darkened]。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var green = Color(0.0, 1.0, 0.0)\n"
+"var light_green = green.lightened(0.2) # 比普通的綠色要淡 20%\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var green = new Color(0.0f, 1.0f, 0.0f);\n"
+"Color lightGreen = green.Lightened(0.2f); // 比普通的綠色要淡 20%\n"
+"[/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 "
+"format.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr32()) # Prints 4281565439\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToAbgr32()); // Prints 4281565439\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 ABGR 格式(每個分量為 8 位)的 32 位元整數的顏色。ABGR 是預設 RGBA "
+"格式的反轉版本。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr32()) # 輸出 4281565439\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToAbgr32()); // 輸出 4281565439\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to a 64-bit integer in ABGR format (each "
+"component is 16 bits). ABGR is the reversed version of the default RGBA "
+"format.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr64()) # Prints -225178692812801\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToAbgr64()); // Prints -225178692812801\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 ABGR 格式(每個分量為 16 位)的 64 位元整數的顏色。ABGR 是預設 "
+"RGBA 格式的反轉版本。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_abgr64()) # 輸出 -225178692812801\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToAbgr64()); // 輸出 -225178692812801\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to a 32-bit integer in ARGB format (each "
+"component is 8 bits). ARGB is more compatible with DirectX.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb32()) # Prints 4294934323\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToArgb32()); // Prints 4294934323\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 ARGB 格式(每個分量為 8 位)的 32 位元整數的顏色。ARGB 與 DirectX "
+"更相容。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb32()) # 輸出 4294934323\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToArgb32()); // 輸出 4294934323\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to a 64-bit integer in ARGB format (each "
+"component is 16 bits). ARGB is more compatible with DirectX.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb64()) # Prints -2147470541\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToArgb64()); // Prints -2147470541\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 ARGB 格式(每個分量為 16 位)的 64 位元整數的顏色。ARGB 與 DirectX "
+"更相容。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_argb64()) # 輸出 -2147470541\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1.0f, 0.5f, 0.2f);\n"
+"GD.Print(color.ToArgb64()); // 輸出 -2147470541\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to an HTML hexadecimal color [String] in RGBA "
+"format, without the hash ([code]#[/code]) prefix.\n"
+"Setting [param with_alpha] to [code]false[/code], excludes alpha from the "
+"hexadecimal string, using RGB format instead of RGBA format.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var white = Color(1, 1, 1, 0.5)\n"
+"var with_alpha = white.to_html() # Returns \"ffffff7f\"\n"
+"var without_alpha = white.to_html(false) # Returns \"ffffff\"\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var white = new Color(1, 1, 1, 0.5f);\n"
+"string withAlpha = white.ToHtml(); // Returns \"ffffff7f\"\n"
+"string withoutAlpha = white.ToHtml(false); // Returns \"ffffff\"\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回將該顏色轉換為 RGBA 格式的 HTML 十六進位顏色 [String],不帶([code]#[/"
+"code])前綴。\n"
+"將 [param with_alpha] 設定為 [code]false[/code],會從十六進位字串中排除 "
+"alpha,使用 RGB 格式而不是 RGBA 格式。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var white = Color(1, 1, 1, 0.5)\n"
+"var with_alpha = white.to_html() # 返回 \"ffffff7f\"\n"
+"var without_alpha = white.to_html(false) # 返回 \"ffffff\"\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var white = new Color(1, 1, 1, 0.5f);\n"
+"string withAlpha = white.ToHtml(); // 返回 \"ffffff7f\"\n"
+"string withoutAlpha = white.ToHtml(false); // 返回 \"ffffff\"\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to a 32-bit integer in RGBA format (each "
+"component is 8 bits). RGBA is Godot's default format.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba32()) # Prints 4286526463\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1, 0.5f, 0.2f);\n"
+"GD.Print(color.ToRgba32()); // Prints 4286526463\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 RGBA 格式(每個分量為 8 位)的 32 位元整數的顏色。RGBA 是 Godot 的"
+"默認格式。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba32()) # 輸出 4286526463\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1, 0.5f, 0.2f);\n"
+"GD.Print(color.ToRgba32()); // 輸出 4286526463\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the color converted to a 64-bit integer in RGBA format (each "
+"component is 16 bits). RGBA is Godot's default format.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba64()) # Prints -140736629309441\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1, 0.5f, 0.2f);\n"
+"GD.Print(color.ToRgba64()); // Prints -140736629309441\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"返回轉換為 RGBA 格式(每個分量為 16 位)的 64 位元整數的顏色。RGBA 是 Godot 的"
+"預設格式。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"var color = Color(1, 0.5, 0.2)\n"
+"print(color.to_rgba64()) # 輸出 -140736629309441\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"var color = new Color(1, 0.5f, 0.2f);\n"
+"GD.Print(color.ToRgba64()); // 輸出 -140736629309441\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"The color's alpha component, typically on the range of 0 to 1. A value of 0 "
+"means that the color is fully transparent. A value of 1 means that the color "
+"is fully opaque."
+msgstr ""
+"顏色的 Alpha 分量,一般在 0 到 1 的範圍內。0 表示該顏色完全透明。1 表示該顏色"
+"完全不透明。"
+
+msgid "Wrapper for [member a] that uses the range 0 to 255, instead of 0 to 1."
+msgstr "對 [member a] 的封裝,使用 0 到 255 的範圍而不是 0 到 1。"
+
+msgid "The color's blue component, typically on the range of 0 to 1."
+msgstr "顏色的藍色分量,一般在 0 到 1 的範圍內。"
+
+msgid "Wrapper for [member b] that uses the range 0 to 255, instead of 0 to 1."
+msgstr "對 [member b] 的封裝,使用 0 到 255 的範圍而不是 0 到 1。"
+
+msgid "The color's green component, typically on the range of 0 to 1."
+msgstr "顏色的綠色分量,一般在 0 到 1 的範圍內。"
+
+msgid "Wrapper for [member g] that uses the range 0 to 255, instead of 0 to 1."
+msgstr "對 [member g] 的封裝,使用 0 到 255 的範圍而不是 0 到 1。"
+
+msgid "The HSV hue of this color, on the range 0 to 1."
+msgstr "這個顏色的 HSV 色相,範圍是 0 到 1。"
+
+msgid "The color's red component, typically on the range of 0 to 1."
+msgstr "顏色的紅色分量,通常在 0 到 1 的範圍內。"
+
+msgid "Wrapper for [member r] that uses the range 0 to 255, instead of 0 to 1."
+msgstr "對 [member r] 的封裝,使用 0 到 255 的範圍而不是 0 到 1。"
+
+msgid "The HSV saturation of this color, on the range 0 to 1."
+msgstr "這個顏色的 HSV 飽和度,範圍為 0 到 1。"
+
+msgid "The HSV value (brightness) of this color, on the range 0 to 1."
+msgstr "這個顏色的 HSV 值(亮度),範圍為 0 至 1。"
+
+msgid "Alice blue color."
+msgstr "愛麗絲藍。"
+
+msgid "Antique white color."
+msgstr "古董白。"
+
+msgid "Aqua color."
+msgstr "水色。"
+
+msgid "Aquamarine color."
+msgstr "海藍色。"
+
+msgid "Azure color."
+msgstr "天藍色。"
+
+msgid "Beige color."
+msgstr "米黃色。"
+
+msgid "Bisque color."
+msgstr "橘黃色。"
+
+msgid "Black color. In GDScript, this is the default value of any color."
+msgstr "黑色。在 GDScript 中,這是所有顏色的預設值。"
+
+msgid "Blanched almond color."
+msgstr "杏仁白色。"
+
+msgid "Blue color."
+msgstr "藍色。"
+
+msgid "Blue violet color."
+msgstr "藍紫色的顏色。"
+
+msgid "Brown color."
+msgstr "棕色。"
+
+msgid "Burlywood color."
+msgstr "硬木色。"
+
+msgid "Cadet blue color."
+msgstr "軍服藍。"
+
+msgid "Chartreuse color."
+msgstr "黃褐色。"
+
+msgid "Chocolate color."
+msgstr "巧克力色。"
+
+msgid "Coral color."
+msgstr "珊瑚色。"
+
+msgid "Cornflower blue color."
+msgstr "矢車菊藍色。"
+
+msgid "Cornsilk color."
+msgstr "玉米須色。"
+
+msgid "Crimson color."
+msgstr "緋紅的顏色。"
+
+msgid "Cyan color."
+msgstr "青色。"
+
+msgid "Dark blue color."
+msgstr "深藍色。"
+
+msgid "Dark cyan color."
+msgstr "深青色。"
+
+msgid "Dark goldenrod color."
+msgstr "深色菊科植物的顏色。"
+
+msgid "Dark gray color."
+msgstr "深灰色。"
+
+msgid "Dark green color."
+msgstr "深綠色。"
+
+msgid "Dark khaki color."
+msgstr "深卡其色。"
+
+msgid "Dark magenta color."
+msgstr "深洋紅色。"
+
+msgid "Dark olive green color."
+msgstr "深橄欖綠色。"
+
+msgid "Dark orange color."
+msgstr "深橙色。"
+
+msgid "Dark orchid color."
+msgstr "深色的蘭花色。"
+
+msgid "Dark red color."
+msgstr "深紅色。"
+
+msgid "Dark salmon color."
+msgstr "深鮭魚色。"
+
+msgid "Dark sea green color."
+msgstr "深海綠色。"
+
+msgid "Dark slate blue color."
+msgstr "深板藍的顏色。"
+
+msgid "Dark slate gray color."
+msgstr "暗石板灰色。"
+
+msgid "Dark turquoise color."
+msgstr "深綠松石色。"
+
+msgid "Dark violet color."
+msgstr "深紫羅蘭色。"
+
+msgid "Deep pink color."
+msgstr "深粉色。"
+
+msgid "Deep sky blue color."
+msgstr "深邃的天藍色。"
+
+msgid "Dim gray color."
+msgstr "暗灰色。"
+
+msgid "Dodger blue color."
+msgstr "道奇藍色。"
+
+msgid "Firebrick color."
+msgstr "耐火磚紅色。"
+
+msgid "Floral white color."
+msgstr "花白色。"
+
+msgid "Forest green color."
+msgstr "森林綠色。"
+
+msgid "Fuchsia color."
+msgstr "洋紅色。"
+
+msgid "Gainsboro color."
+msgstr "庚斯伯勒灰色。"
+
+msgid "Ghost white color."
+msgstr "幽靈白顏色。"
+
+msgid "Gold color."
+msgstr "金色。"
+
+msgid "Goldenrod color."
+msgstr "金菊色。"
+
+msgid "Gray color."
+msgstr "灰色。"
+
+msgid "Green color."
+msgstr "綠色。"
+
+msgid "Green yellow color."
+msgstr "綠黃色。"
+
+msgid "Honeydew color."
+msgstr "蜜露色。"
+
+msgid "Hot pink color."
+msgstr "亮粉色。"
+
+msgid "Indian red color."
+msgstr "印度紅色。"
+
+msgid "Indigo color."
+msgstr "靛青色。"
+
+msgid "Ivory color."
+msgstr "象牙色。"
+
+msgid "Khaki color."
+msgstr "卡其色。"
+
+msgid "Lavender color."
+msgstr "薰衣草色。"
+
+msgid "Lavender blush color."
+msgstr "薰衣草紫紅色。"
+
+msgid "Lawn green color."
+msgstr "草坪綠色。"
+
+msgid "Lemon chiffon color."
+msgstr "檸檬雪紡色。"
+
+msgid "Light blue color."
+msgstr "淺藍色。"
+
+msgid "Light coral color."
+msgstr "淺珊瑚色。"
+
+msgid "Light cyan color."
+msgstr "淡青色。"
+
+msgid "Light goldenrod color."
+msgstr "亮金菊黃色。"
+
+msgid "Light gray color."
+msgstr "淺灰色。"
+
+msgid "Light green color."
+msgstr "淺綠色。"
+
+msgid "Light pink color."
+msgstr "淺粉色。"
+
+msgid "Light salmon color."
+msgstr "淺鮭魚色。"
+
+msgid "Light sea green color."
+msgstr "淺海綠色。"
+
+msgid "Light sky blue color."
+msgstr "淺天藍色。"
+
+msgid "Light slate gray color."
+msgstr "淺板岩灰色。"
+
+msgid "Light steel blue color."
+msgstr "淺鋼藍色。"
+
+msgid "Light yellow color."
+msgstr "淺黃色。"
+
+msgid "Lime color."
+msgstr "青檸色。"
+
+msgid "Lime green color."
+msgstr "石灰綠色。"
+
+msgid "Linen color."
+msgstr "亞麻色。"
+
+msgid "Magenta color."
+msgstr "洋紅色。"
+
+msgid "Maroon color."
+msgstr "栗色。"
+
+msgid "Medium aquamarine color."
+msgstr "中等海藍寶石色。"
+
+msgid "Medium blue color."
+msgstr "中藍色。"
+
+msgid "Medium orchid color."
+msgstr "中等蘭色。"
+
+msgid "Medium purple color."
+msgstr "中等紫色。"
+
+msgid "Medium sea green color."
+msgstr "中海綠色。"
+
+msgid "Medium slate blue color."
+msgstr "中等板岩藍色。"
+
+msgid "Medium spring green color."
+msgstr "中等春天綠色。"
+
+msgid "Medium turquoise color."
+msgstr "中等綠松石色。"
+
+msgid "Medium violet red color."
+msgstr "中等紫紅色。"
+
+msgid "Midnight blue color."
+msgstr "午夜藍色。"
+
+msgid "Mint cream color."
+msgstr "薄荷奶油色。"
+
+msgid "Misty rose color."
+msgstr "朦朧的玫瑰色。"
+
+msgid "Moccasin color."
+msgstr "鹿皮鞋顏色。"
+
+msgid "Navajo white color."
+msgstr "納瓦白。"
+
+msgid "Navy blue color."
+msgstr "藏青色。"
+
+msgid "Old lace color."
+msgstr "舊蕾絲色。"
+
+msgid "Olive color."
+msgstr "橄欖色。"
+
+msgid "Olive drab color."
+msgstr "暗淡橄欖色。"
+
+msgid "Orange color."
+msgstr "橙色。"
+
+msgid "Orange red color."
+msgstr "橘紅色。"
+
+msgid "Orchid color."
+msgstr "蘭花色。"
+
+msgid "Pale goldenrod color."
+msgstr "淡金色。"
+
+msgid "Pale green color."
+msgstr "淡綠色。"
+
+msgid "Pale turquoise color."
+msgstr "淡綠松石色。"
+
+msgid "Pale violet red color."
+msgstr "淡紫紅色。"
+
+msgid "Papaya whip color."
+msgstr "木瓜鞭色。"
+
+msgid "Peach puff color."
+msgstr "桃花粉。"
+
+msgid "Peru color."
+msgstr "秘魯色。"
+
+msgid "Pink color."
+msgstr "粉紅色。"
+
+msgid "Plum color."
+msgstr "梅花色。"
+
+msgid "Powder blue color."
+msgstr "淺藍色。"
+
+msgid "Purple color."
+msgstr "紫色。"
+
+msgid "Rebecca purple color."
+msgstr "麗蓓嘉紫色。"
+
+msgid "Red color."
+msgstr "紅色。"
+
+msgid "Rosy brown color."
+msgstr "玫瑰棕。"
+
+msgid "Royal blue color."
+msgstr "寶藍色。"
+
+msgid "Saddle brown color."
+msgstr "鞍棕色。"
+
+msgid "Salmon color."
+msgstr "鮭魚色。"
+
+msgid "Sandy brown color."
+msgstr "沙褐色。"
+
+msgid "Sea green color."
+msgstr "海綠色。"
+
+msgid "Seashell color."
+msgstr "貝殼色。"
+
+msgid "Sienna color."
+msgstr "西恩娜色。"
+
+msgid "Silver color."
+msgstr "銀色。"
+
+msgid "Sky blue color."
+msgstr "天藍色。"
+
+msgid "Slate blue color."
+msgstr "石板藍色。"
+
+msgid "Slate gray color."
+msgstr "石板灰。"
+
+msgid "Snow color."
+msgstr "雪白。"
+
+msgid "Spring green color."
+msgstr "春綠。"
+
+msgid "Steel blue color."
+msgstr "鋼藍色。"
+
+msgid "Tan color."
+msgstr "棕褐色。"
+
+msgid "Teal color."
+msgstr "青色。"
+
+msgid "Thistle color."
+msgstr "薊色。"
+
+msgid "Tomato color."
+msgstr "番茄色。"
+
+msgid "Transparent color (white with zero alpha)."
+msgstr "透明色(Alpha 為零的白色)。"
+
+msgid "Turquoise color."
+msgstr "松石綠。"
+
+msgid "Violet color."
+msgstr "紫羅蘭色。"
+
+msgid "Web gray color."
+msgstr "網格灰。"
+
+msgid "Web green color."
+msgstr "網路綠。"
+
+msgid "Web maroon color."
+msgstr "網路栗。"
+
+msgid "Web purple color."
+msgstr "網路紫。"
+
+msgid "Wheat color."
+msgstr "小麥色。"
+
+msgid "White color."
+msgstr "白色。"
+
+msgid "White smoke color."
+msgstr "白煙色。"
+
+msgid "Yellow color."
+msgstr "黃色。"
+
+msgid "Yellow green color."
+msgstr "黃綠色。"
+
+msgid ""
+"Returns [code]true[/code] if the colors are not exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"如果顏色不完全相等,則返回 [code]true[/code]。\n"
+"[b]注意:[/b]由於浮點數精度誤差,請考慮改用 [method is_equal_approx],會更可"
+"靠。"
+
+msgid ""
+"Multiplies each component of the [Color] by the components of the given "
+"[Color]."
+msgstr "將該 [Color] 的每個分量乘以給定 [Color] 的對應分量。"
+
+msgid "Multiplies each component of the [Color] by the given [float]."
+msgstr "將該 [Color] 的每個分量乘以給定的 [float]。"
+
+msgid "Multiplies each component of the [Color] by the given [int]."
+msgstr "將該 [Color] 的每個分量乘以給定的 [int]。"
+
+msgid ""
+"Adds each component of the [Color] with the components of the given [Color]."
+msgstr "將該 [Color] 的每個分量加上給定 [Color] 的對應分量。"
+
+msgid ""
+"Subtracts each component of the [Color] by the components of the given "
+"[Color]."
+msgstr "將該 [Color] 的每個分量減去給定 [Color] 的對應分量。"
+
+msgid ""
+"Divides each component of the [Color] by the components of the given [Color]."
+msgstr "將該 [Color] 的每個分量除以給定 [Color] 的每個分量。"
+
+msgid "Divides each component of the [Color] by the given [float]."
+msgstr "將該 [Color] 的每個分量除以給定的 [float]。"
+
+msgid "Divides each component of the [Color] by the given [int]."
+msgstr "將該 [Color] 的每個分量除以給定的 [int]。"
+
+msgid ""
+"Returns [code]true[/code] if the colors are exactly equal.\n"
+"[b]Note:[/b] Due to floating-point precision errors, consider using [method "
+"is_equal_approx] instead, which is more reliable."
+msgstr ""
+"如果顏色完全相同,則返回 [code]true[/code]。\n"
+"[b]注意:[/b]由於浮點精度誤差,請考慮改用更可靠的 [method is_equal_approx]。"
+
+msgid ""
+"Access color components using their index. [code][0][/code] is equivalent to "
+"[member r], [code][1][/code] is equivalent to [member g], [code][2][/code] is "
+"equivalent to [member b], and [code][3][/code] is equivalent to [member a]."
+msgstr ""
+"使用索引存取顏色分量。[code][0][/code] 相當於 [member r],[code][1][/code] 相"
+"當於 [member g],[code][2][/code] 相當於 [member b],[code][3][/code] 相當於 "
+"[member a]."
+
+msgid ""
+"Returns the same value as if the [code]+[/code] was not there. Unary [code]+[/"
+"code] does nothing, but sometimes it can make your code more readable."
+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 "A widget that provides an interface for selecting or modifying a color."
+msgstr "提供用於選擇或修改顏色的介面的小工具。"
+
+msgid ""
+"A widget that provides an interface for selecting or modifying a color. It "
+"can optionally provide functionalities like a color sampler (eyedropper), "
+"color modes, and presets.\n"
+"[b]Note:[/b] This control is the color picker widget itself. You can use a "
+"[ColorPickerButton] instead if you need a button that brings up a "
+"[ColorPicker] in a popup."
+msgstr ""
+"提供用於選擇或修改顏色的介面的小工具。還可以提供取色器(吸管)、顏色模式、預設"
+"等功能。\n"
+"[b]注意:[/b]這個控制項就是取色器本身。如果你需要一個能夠彈出 [ColorPicker] 窗"
+"口的按鈕,可以改用 [ColorPickerButton]。"
+
+msgid ""
+"Adds the given color to a list of color presets. The presets are displayed in "
+"the color picker and the user will be able to select them.\n"
+"[b]Note:[/b] The presets list is only for [i]this[/i] color picker."
+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 "目前選擇的顏色。"
+
+msgid "The currently selected color mode. See [enum ColorModeType]."
+msgstr "目前選擇的顏色模式。見 [enum ColorModeType]。"
+
+msgid "If [code]true[/code], the color mode buttons are visible."
+msgstr "如果為 [code]true[/code],則顏色模式按鈕可見。"
+
+msgid ""
+"If [code]true[/code], the color will apply only after the user releases the "
+"mouse button, otherwise it will apply immediately even in mouse motion event "
+"(which can cause performance issues)."
+msgstr ""
+"如果為 [code]true[/code],只有在使用者鬆開滑鼠按鈕後才會套用顏色,否則即使在鼠"
+"標移動事件中也會立即套用(會造成性能問題)。"
+
+msgid "If [code]true[/code], shows an alpha channel slider (opacity)."
+msgstr "如果為 [code]true[/code],則顯示 Alpha 通道滑動條(不透明度)。"
+
+msgid "If [code]true[/code], the hex color code input field is visible."
+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],則顏色取樣器和顏色預覽可見。"
+
+msgid "If [code]true[/code], the color sliders are visible."
+msgstr "如果為 [code]true[/code],則顏色滑桿可見。"
+
+msgid "Emitted when the color is changed."
+msgstr "更改顏色時發出。"
+
+msgid "Emitted when a preset is added."
+msgstr "新增預設時發出。"
+
+msgid "Emitted when a preset is removed."
+msgstr "移除預設時發出。"
+
+msgid "Allows editing the color with Red/Green/Blue sliders."
+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 色彩模型矩形色彩空間。"
+
+msgid "HSV Color Model rectangle color space with a wheel."
+msgstr "HSV 色彩模型矩形色彩空間,帶輪。"
+
+msgid "HSV Color Model circle color space. Use Saturation as a radius."
+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 ""
+"Overrides the [theme_item Slider.center_grabber] theme property of the "
+"sliders."
+msgstr "覆蓋滑桿的 [theme_item HSlider.center_grabber] 主題屬性。"
+
+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] 周圍的邊距。"
+
+msgid "The height of the saturation-value selection box."
+msgstr "飽和值選擇框的高度。"
+
+msgid "The width of the saturation-value selection box."
+msgstr "飽和度選擇框的寬度。"
+
+msgid "The icon for the \"Add Preset\" button."
+msgstr "“新增預設”按鈕的圖示。"
+
+msgid "The texture for the arrow grabber."
+msgstr "箭頭抓取器的紋理。"
+
+msgid "Custom texture for the hue selection slider on the right."
+msgstr "右側的色相選擇滑桿的自訂紋理。"
+
+msgid "Custom texture for the H slider in the OKHSL color mode."
+msgstr "OKHSL 顏色模式的 H 滑桿的自訂紋理。"
+
+msgid "The icon for color preset drop down menu when expanded."
+msgstr "顏色預設下拉式功能表展開時使用的圖示。"
+
+msgid "The icon for color preset drop down menu when folded."
+msgstr "顏色預設下拉式功能表折疊時使用的圖示。"
+
+msgid ""
+"The indicator used to signalize that the color value is outside the 0-1 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 "螢幕取色器按鈕的圖示。"
+
+msgid "The icon for circular picker shapes."
+msgstr "圓形拾取器形狀的圖示。"
+
+msgid "The icon for rectangular picker shapes."
+msgstr "矩形拾取器形狀的圖示。"
+
+msgid "The icon for rectangular wheel picker shapes."
+msgstr "矩形輪拾取器形狀的圖示。"
+
+msgid "A button that brings up a [ColorPicker] when pressed."
+msgstr "點擊後會顯示 [ColorPicker] 的按鈕。"
+
+msgid ""
+"Encapsulates a [ColorPicker], making it accessible by pressing a button. "
+"Pressing the button will toggle the [ColorPicker]'s visibility.\n"
+"See also [BaseButton] which contains common properties and methods associated "
+"with this node.\n"
+"[b]Note:[/b] By default, the button may not be wide enough for the color "
+"preview swatch to be visible. Make sure to set [member Control."
+"custom_minimum_size] to a big enough value to give the button enough space."
+msgstr ""
+"封裝一個 [ColorPicker],按下按鈕即可存取該控制項。按下按鈕會切換 "
+"[ColorPicker] 的可見性。\n"
+"另見 [BaseButton],其中包含與該節點關聯的通用屬性和方法。\n"
+"[b]注意:[/b]預設情況下,按鈕的寬度可能不足以使顏色預覽色板可見。確保將 "
+"[member Control.custom_minimum_size] 設定為足夠大的值,以便為按鈕提供足夠的空"
+"間。"
+
+msgid ""
+"Returns the [ColorPicker] that this node toggles.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it may "
+"cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+"返回此節點所切換的 [ColorPicker]。\n"
+"[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."
+msgstr ""
+"如果為 [code]true[/code],則顯示的 [ColorPicker] 中的 Alpha 通道將可見。"
+
+msgid "Emitted when the color changes."
+msgstr "顏色改變時發出。"
+
+msgid ""
+"Emitted when the [ColorPicker] is created (the button is pressed for the "
+"first time)."
+msgstr "建立 [ColorPicker] 時(第一次按下按鈕)發出。"
+
+msgid "Emitted when the [ColorPicker] is closed."
+msgstr "當 [ColorPicker] 關閉時發出。"
+
+msgid "The background of the color preview rect on the button."
+msgstr "顏色預覽的背景將在按鈕上顯示。"
+
+msgid "A control that displays a solid color rectangle."
+msgstr "顯示單色矩形的控制項。"
+
+msgid ""
+"Displays a rectangle filled with a solid [member color]. If you need to "
+"display the border alone, consider using a [Panel] instead."
+msgstr ""
+"顯示一個用純色 [member color] 填充的矩形。如果你需要單獨顯示邊框,請考慮改用 "
+"[Panel]。"
+
+msgid "The fill color of the rectangle."
+msgstr "該矩形的填充顏色。"
+
+msgid "An optionally compressed [Cubemap]."
+msgstr "可選壓縮的 [Cubemap] 。"
+
+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"
+"- Lossless (WebP or PNG, uncompressed on the GPU)\n"
+"- Lossy (WebP, uncompressed on the GPU)\n"
+"- VRAM Compressed (compressed on the GPU)\n"
+"- VRAM Uncompressed (uncompressed on the GPU)\n"
+"- Basis Universal (compressed on the GPU. Lower file sizes than VRAM "
+"Compressed, but slower to compress and lower quality than VRAM Compressed)\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"
+"- 無損(WebP 或 PNG,在 GPU 上不壓縮)\n"
+"- 有損(WebP,在 GPU 上不壓縮)\n"
+"- VRAM 壓縮(在 GPU 上壓縮)\n"
+"- VRAM 未壓縮(在 GPU 上不壓縮)\n"
+"- Basis Universal(在 GPU 上壓縮。與 VRAM 壓縮相比,檔更小,但壓縮速度更慢、品"
+"質更低)\n"
+"只有 [b]VRAM 壓縮[/b]實際上減少了 GPU 上的記憶體使用。[b]無損[/b]和[b]有損[/b]"
+"壓縮方法將減少磁片上所需的儲存空間,但它們不會減少 GPU 上的記憶體使用,因為紋"
+"理未經壓縮地被發送到 GPU。\n"
+"使用 [b]VRAM 壓縮[/b]還可以縮短載入時間,因為與使用無損或失真壓縮的紋理相比,"
+"VRAM 壓縮的紋理載入速度更快。VRAM 壓縮會表現出明顯的偽影,並且它旨在用於 3D 渲"
+"染,而不是 2D。\n"
+"有關立方體貼圖的一般描述,請參閱 [Cubemap]。"
+
+msgid "An optionally compressed [CubemapArray]."
+msgstr "立方體貼圖紋理陣列(見 [CubemapArray])。"
+
+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"
+"- Lossless (WebP or PNG, uncompressed on the GPU)\n"
+"- Lossy (WebP, uncompressed on the GPU)\n"
+"- VRAM Compressed (compressed on the GPU)\n"
+"- VRAM Uncompressed (uncompressed on the GPU)\n"
+"- Basis Universal (compressed on the GPU. Lower file sizes than VRAM "
+"Compressed, but slower to compress and lower quality than VRAM Compressed)\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"
+"- 無損(WebP 或 PNG,在 GPU 上不壓縮)\n"
+"- 有損(WebP,在 GPU 上不壓縮)\n"
+"- VRAM 壓縮(在 GPU 上壓縮)\n"
+"- VRAM 未壓縮(在 GPU 上不壓縮)\n"
+"- Basis Universal(在 GPU 上壓縮。與 VRAM 壓縮相比,檔更小,但壓縮速度更慢、品"
+"質更低)\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"
+"- Lossless (WebP or PNG, uncompressed on the GPU)\n"
+"- Lossy (WebP, uncompressed on the GPU)\n"
+"- VRAM Compressed (compressed on the GPU)\n"
+"- VRAM Uncompressed (uncompressed on the GPU)\n"
+"- Basis Universal (compressed on the GPU. Lower file sizes than VRAM "
+"Compressed, but slower to compress and lower quality than VRAM Compressed)\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"
+"- 無損(WebP 或 PNG,在 GPU 上不壓縮)\n"
+"- 有損(WebP,在 GPU 上不壓縮)\n"
+"- VRAM 壓縮(在 GPU 上壓縮)\n"
+"- VRAM 未壓縮(在 GPU 上不壓縮)\n"
+"- Basis Universal(在 GPU 上壓縮。與 VRAM 壓縮相比,檔更小,但壓縮速度更慢、品"
+"質更低)\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] 載入紋理。"
+
+msgid "The [CompressedTexture2D]'s file path to a [code].ctex[/code] file."
+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"
+"- Lossless (WebP or PNG, uncompressed on the GPU)\n"
+"- Lossy (WebP, uncompressed on the GPU)\n"
+"- VRAM Compressed (compressed on the GPU)\n"
+"- VRAM Uncompressed (uncompressed on the GPU)\n"
+"- Basis Universal (compressed on the GPU. Lower file sizes than VRAM "
+"Compressed, but slower to compress and lower quality than VRAM Compressed)\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"
+"- 無損(WebP 或 PNG,在 GPU 上不壓縮)\n"
+"- 有損(WebP,在 GPU 上不壓縮)\n"
+"- VRAM 壓縮(在 GPU 上壓縮)\n"
+"- VRAM 未壓縮(在 GPU 上不壓縮)\n"
+"- Basis Universal(在 GPU 上壓縮。與 VRAM 壓縮相比,檔更小,但壓縮速度更慢、品"
+"質更低)\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 ""
+"Base class for [CompressedTexture2DArray] and [CompressedTexture3D]. Cannot "
+"be used directly, but contains all the functions necessary for accessing the "
+"derived resource types. See also [TextureLayered]."
+msgstr ""
+"[CompressedTexture2DArray] 和 [CompressedTexture3D] 的基底類別。不能直接使用,"
+"但包含了存取衍生資源型別所需的所有函式。另見 [TextureLayered]。"
+
+msgid "Loads the texture at [param path]."
+msgstr "載入位於 [param path] 的紋理。"
+
+msgid "The path the texture should be loaded from."
+msgstr "載入紋理所使用的路徑。"
+
+msgid "A 2D polyline shape used for physics collision."
+msgstr "用於物理碰撞的 2D 多線段形狀。"
+
+msgid ""
+"The array of points that make up the [ConcavePolygonShape2D]'s line segments. "
+"The array (of length divisible by two) is naturally divided into pairs (one "
+"pair for each segment); each pair consists of the starting point of a segment "
+"and the endpoint of a segment."
+msgstr ""
+"頂點陣列,構成 [ConcavePolygonShape2D] 的線段。該(長度能被二整除的)陣列自然"
+"兩兩群組(每組代表一條線段);每組都由一條線段的起點和終點構成。"
+
+msgid "A 3D trimesh shape used for physics collision."
+msgstr "用於物理碰撞的 3D 三角網格形狀。"
+
+msgid ""
+"Returns the faces of the trimesh shape as an array of vertices. The array (of "
+"length divisible by three) is naturally divided into triples; each triple of "
+"vertices defines a triangle."
+msgstr ""
+"以頂點陣列的形式返回三角網格形狀中的面。該(長度能被三整除的)陣列自然三三分"
+"組;每組中的三個頂點定義一個三角形。"
+
+msgid ""
+"Sets the faces of the trimesh shape from an array of vertices. The [param "
+"faces] array should be composed of triples such that each triple of vertices "
+"defines a triangle."
+msgstr ""
+"根據頂點陣列設定三角網格形狀的面。[param faces] 陣列應更多由若干三元組構成,每"
+"三個頂點定義一個三角形。"
+
+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 ""
+"如果設定為 [code]true[/code],則碰撞會發生在凹形面的兩側。否則,它們只會沿著面"
+"法線發生。"
+
+msgid ""
+"A physics joint that connects two 3D physics bodies in a way that simulates a "
+"ball-and-socket joint."
+msgstr "以類比球窩關節的方式連接兩個 3D 物理物體的物理關節。"
+
+msgid ""
+"A physics joint that connects two 3D physics bodies in a way that simulates a "
+"ball-and-socket joint. The twist axis is initiated as the X axis of the "
+"[ConeTwistJoint3D]. Once the physics bodies swing, the twist axis is "
+"calculated as the middle of the X axes of the joint in the local space of the "
+"two physics bodies. Useful for limbs like shoulders and hips, lamps hanging "
+"off a ceiling, etc."
+msgstr ""
+"以類比球窩關節的方式連接兩個 3D 物理物體的物理關節。扭轉軸被初始化為 "
+"[ConeTwistJoint3D] 的 X 軸。一旦物理體擺動,扭轉軸將被計算為兩個物理體局部空間"
+"中關節的 X 軸的中間值。可用作肩膀、臀部等肢體,也可以用作從天花板蕩下的燈之類"
+"的對象。"
+
+msgid "Returns the value of the specified parameter."
+msgstr "返回指定參數的值。"
+
+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."
+msgstr ""
+"擺動或扭轉的速度。\n"
+"越高,速度越快。"
+
+msgid ""
+"Defines, how fast the swing- and twist-speed-difference on both sides gets "
+"synced."
+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 "關節開始扭轉的難易程度。如果太低,則需要更多的力才能開始扭轉關節。"
+
+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,則扭轉被鎖定。"
+
+msgid "Represents the size of the [enum Param] enum."
+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 "刪除指定小節以及其中的所有鍵值對。如果該小節不存在,則會引發錯誤。"
+
+msgid ""
+"Deletes the specified key in a section. Raises an error if either the section "
+"or the key do not exist."
+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 "返回所有已定義小節的識別字的陣列。"
+
+msgid ""
+"Returns the current value for the specified section and key. If either the "
+"section or the key do not exist, the method returns the fallback [param "
+"default] value. If [param default] is not specified or set to [code]null[/"
+"code], an error is also raised."
+msgstr ""
+"返回指定小節和鍵的目前值。如果該小節或鍵不存在,則該方法返回後備值 [param "
+"default]。如果未指定 [param default] 或將其設定為 [code]null[/code],則會引發"
+"一個錯誤。"
+
+msgid "Returns [code]true[/code] if the specified section exists."
+msgstr "如果指定的小節存在,則返回 [code]true[/code]。"
+
+msgid "Returns [code]true[/code] if the specified section-key pair exists."
+msgstr "如果指定的小節-鍵對存在,則返回 [code]true[/code]。"
+
+msgid ""
+"Loads the config file specified as a parameter. The file's contents are "
+"parsed and loaded in the [ConfigFile] object which the method was called on.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"載入指定為參數的設定檔。解析檔的內容並將其載入到呼叫該方法的 [ConfigFile] 對象"
+"中。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Loads the encrypted config file specified as a parameter, using the provided "
+"[param key] to decrypt it. The file's contents are parsed and loaded in the "
+"[ConfigFile] object which the method was called on.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"載入指定為參數的加密設定檔,使用提供的 [param key] 對其解密。解析檔的內容並將"
+"其載入到呼叫該方法的 [ConfigFile] 物件中。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Loads the encrypted config file specified as a parameter, using the provided "
+"[param password] to decrypt it. The file's contents are parsed and loaded in "
+"the [ConfigFile] object which the method was called on.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"載入作為參數的加密設定檔,使用提供的 [param password] 解密。該檔的內容被解析並"
+"載入到呼叫該方法的 [ConfigFile] 物件中。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Parses the passed string as the contents of a config file. The string is "
+"parsed and loaded in the ConfigFile object which the method was called on.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"將傳遞的字串解析為設定檔的內容。該字串被解析並載入到呼叫該方法的 ConfigFile 對"
+"象中。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Saves the contents of the [ConfigFile] object to the file specified as a "
+"parameter. The output file uses an INI-style structure.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"將 [ConfigFile] 物件的內容保存到指定為參數的檔中。輸出檔使用 INI 樣式的結"
+"構。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
+"specified as a parameter, using the provided [param key] to encrypt it. The "
+"output file uses an INI-style structure.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"使用提供的 [param key] 將 [ConfigFile] 物件的內容保存到作為參數指定的 AES-256 "
+"加密檔中。輸出檔使用 INI 樣式的結構。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Saves the contents of the [ConfigFile] object to the AES-256 encrypted file "
+"specified as a parameter, using the provided [param password] to encrypt it. "
+"The output file uses an INI-style structure.\n"
+"Returns [constant OK] on success, or one of the other [enum Error] values if "
+"the operation failed."
+msgstr ""
+"將 [ConfigFile] 物件的內容保存到作為參數指定的 AES-256 加密檔中,使用提供的 "
+"[param password] 進行加密。輸出檔使用 INI 風格的結構。\n"
+"返回 [enum Error] 錯誤碼常數(成功時為 [constant OK])。"
+
+msgid ""
+"Assigns a value to the specified key of the specified section. If either the "
+"section or the key do not exist, they are created. Passing a [code]null[/"
+"code] value deletes the specified key if it exists, and deletes the section "
+"if it ends up empty once the key has been removed."
+msgstr ""
+"為指定小節的指定鍵賦值。如果小節或鍵不存在,則建立它們。如果指定的鍵存在,傳"
+"遞 [code]null[/code] 值就會移除指定的鍵,如果鍵被移除後,小節最終是空的,就會"
+"移除小節。"
+
+msgid "A dialog used for confirmation of actions."
+msgstr "用於確認動作的對話方塊。"
+
+msgid ""
+"A dialog used for confirmation of actions. This window is similar to "
+"[AcceptDialog], but pressing its Cancel button can have a different outcome "
+"from pressing the OK button. The order of the two buttons varies depending on "
+"the host OS.\n"
+"To get cancel action, you can use:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"get_cancel_button().pressed.connect(self.canceled)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetCancelButton().Pressed += Canceled;\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"用於確認動作的對話方塊。這個視窗類似於 [AcceptDialog],但按下“取消”按鈕和按"
+"下“確定”按鈕的效果是不同的。這兩個按鈕的順序取決於主機作業系統。\n"
+"要獲得取消操作,你可以使用:\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"get_cancel_button().pressed.connect(self.canceled)\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"GetCancelButton().Pressed += Canceled;\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Returns the cancel button.\n"
+"[b]Warning:[/b] This is a required internal node, removing and freeing it may "
+"cause a crash. If you wish to hide it or any of its children, use their "
+"[member CanvasItem.visible] property."
+msgstr ""
+"返回取消按鈕。\n"
+"[b]警告:[/b]這是一個必需的內部節點,移除並釋放它可能會導致當機。如果你希望隱"
+"藏它或其任何子項,請使用其 [member CanvasItem.visible] 屬性。"
+
+msgid ""
+"The text displayed by the cancel button (see [method get_cancel_button])."
+msgstr "取消按鈕顯示的文字(見 [method get_cancel_button])。"
+
+msgid "Base class for all GUI containers."
+msgstr "所有 GUI 容器的基底類別。"
+
+msgid ""
+"Base class for all GUI containers. A [Container] automatically arranges its "
+"child controls in a certain way. This class can be inherited to make custom "
+"container types."
+msgstr ""
+"所有 GUI 容器的基礎節點。[Container] 包含其他控制項,並自動以某種方式排列它"
+"們。可以繼承此類來生成自訂的容器類。"
+
+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."
+msgstr "在給定的矩形中適配子控制項。這主要是用於建立自訂容器類的輔助工具。"
+
+msgid ""
+"Queue resort of the contained children. This is called automatically anyway, "
+"but can be called upon request."
+msgstr "將子節點的重排加入佇列。雖然會被自動呼叫,但也可以在需要時手動呼叫。"
+
+msgid "Emitted when children are going to be sorted."
+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 "對子節點進行排序時的通知,必須立即服從。"
+
+msgid ""
+"Base class for all GUI controls. Adapts its position and size based on its "
+"parent control."
+msgstr "所有 GUI 控制項的基底類別。根據其父控制項調整其位置和大小。"
+
+msgid ""
+"Base class for all UI-related nodes. [Control] features a bounding rectangle "
+"that defines its extents, an anchor position relative to its parent control "
+"or the current viewport, and offsets relative to the anchor. The offsets "
+"update automatically when the node, any of its parents, or the screen size "
+"change.\n"
+"For more information on Godot's UI system, anchors, offsets, and containers, "
+"see the related tutorials in the manual. To build flexible UIs, you'll need a "
+"mix of UI elements that inherit from [Control] and [Container] nodes.\n"
+"[b]User Interface nodes and input[/b]\n"
+"Godot propagates input events via viewports. Each [Viewport] is responsible "
+"for propagating [InputEvent]s to their child nodes. As the [member SceneTree."
+"root] is a [Window], this already happens automatically for all UI elements "
+"in your game.\n"
+"Input events are propagated through the [SceneTree] from the root node to all "
+"child nodes by calling [method Node._input]. For UI elements specifically, it "
+"makes more sense to override the virtual method [method _gui_input], which "
+"filters out unrelated input events, such as by checking z-order, [member "
+"mouse_filter], focus, or if the event was inside of the control's bounding "
+"box.\n"
+"Call [method accept_event] so no other node receives the event. Once you "
+"accept an input, it becomes handled so [method Node._unhandled_input] will "
+"not process it.\n"
+"Only one [Control] node can be in focus. Only the node in focus will receive "
+"events. To get the focus, call [method grab_focus]. [Control] nodes lose "
+"focus when another node grabs it, or if you hide the node in focus.\n"
+"Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a "
+"[Control] node to ignore mouse or touch events. You'll need it if you place "
+"an icon on top of a button.\n"
+"[Theme] resources change the Control's appearance. If you change the [Theme] "
+"on a [Control] node, it affects all of its children. To override some of the "
+"theme's parameters, call one of the [code]add_theme_*_override[/code] "
+"methods, like [method add_theme_font_override]. You can override the theme "
+"with the Inspector.\n"
+"[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you "
+"can't access their values using [method Object.get] and [method Object.set]. "
+"Instead, use the [code]get_theme_*[/code] and [code]add_theme_*_override[/"
+"code] methods provided by this class."
+msgstr ""
+"所有 UI 相關節點的基底類別。[Control] 具有定義其範圍的邊界矩形,相對於父控制項"
+"或當前視口的錨點位置,以及相對於錨點的偏移。當節點、任何父節點或螢幕尺寸發生變"
+"化時,偏移就會自動更新。\n"
+"更多關於 Godot 的 UI 系統、錨點、偏移和容器的資訊,請參閱手冊中的相關教學。要"
+"建構靈活的 UI,你需要混合使用從 [Control] 和 [Container] 節點繼承的 UI 元"
+"素。\n"
+"[b]使用者介面節點與輸入[/b]\n"
+"Godot 使用視口來傳播輸入事件。視口負責將 [InputEvent] 傳播給它的子節點。因為 "
+"[member SceneTree.root] 是 [Window],所以遊戲中的所有 UI 元素都會自動進行傳"
+"播。\n"
+"輸入事件通過呼叫 [method Node._input] 在 [SceneTree] 中傳播,從根節點傳播到所"
+"有子節點。對 UI 元素而言,覆蓋的最好是 [method _gui_input],可以篩選掉無關的輸"
+"入事件,例如它會對 Z 順序、[member mouse_filter]、焦點、事件是否在該控制項的邊"
+"界框內等條件進行檢查。\n"
+"請呼叫 [method accept_event],這樣其他節點就不會收到該事件。輸入被接受後,就會"
+"被標記為已處理,[method Node._unhandled_input] 不會對它進行處理。\n"
+"只能有一個 [Control] 節點處於焦點。只有處於焦點的節點才會接收到事件。要獲得焦"
+"點,請呼叫 [method grab_focus]。導致 [Control] 節點失去焦點的情況有:其他節點"
+"獲得了焦點、隱藏了聚焦節點。\n"
+"將 [member mouse_filter] 設定為 [constant MOUSE_FILTER_IGNORE] 可以讓 "
+"[Control] 節點忽略滑鼠或觸摸事件。如果你在按鈕上放了一個圖示,就會需要用到。\n"
+"[Theme] 資源會更改控制項的外觀。如果你更改了 [Control] 節點上的 [Theme],則會"
+"影響其所有子節點。要覆蓋某些主題的參數,請呼叫 [code]add_theme_*_override[/"
+"code] 方法,例如 [method add_theme_font_override]。你可以使用屬性面板覆蓋主"
+"題。\n"
+"[b]注意:[/b]主題項[i]不是[/i] [Object] 的屬性。這意味著你無法使用 [method "
+"Object.get] 和 [method Object.set] 存取它們的值。請改用這個類的 "
+"[code]get_theme_*[/code] 和 [code]add_theme_*_override[/code] 方法。"
+
+msgid "GUI documentation index"
+msgstr "GUI 文件索引"
+
+msgid "Control node gallery"
+msgstr "控制項節點一覽"
+
+msgid "Multiple resolutions"
+msgstr "多解析度"
+
+msgid "All GUI Demos"
+msgstr "所有 GUI 演示"
+
+msgid ""
+"Godot calls this method to test if [param data] from a control's [method "
+"_get_drag_data] can be dropped at [param at_position]. [param at_position] is "
+"local to this control.\n"
+"This method should only be used to test the data. Process the data in [method "
+"_drop_data].\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _can_drop_data(position, data):\n"
+" # Check position if it is relevant to you\n"
+" # Otherwise, just check data\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override bool _CanDropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" // Check position if it is relevant to you\n"
+" // Otherwise, just check data\n"
+" return data.VariantType == Variant.Type.Dictionary && data."
+"AsGodotDictionary().ContainsKey(\"expected\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Godot 呼叫這個方法來檢查是否能夠將來自某個控制項 [method _get_drag_data] 方法"
+"的 [param data] 拖放到 [param at_position]。[param at_position] 使用的是這個控"
+"制項的局部坐標系。\n"
+"這個方法應該只用於檢查資料。請在 [method _drop_data] 中處理資料。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _can_drop_data(position, data):\n"
+" # 如果和位置相關就檢查 position\n"
+" # 否則只檢查 data 即可\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override bool _CanDropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" // 如果和位置相關就檢查 position\n"
+" // 否則只檢查 data 即可\n"
+" return data.VariantType == Variant.Type.Dictionary && data."
+"AsGodotDictionary().ContainsKey(\"expected\");\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Godot calls this method to pass you the [param data] from a control's [method "
+"_get_drag_data] result. Godot first calls [method _can_drop_data] to test if "
+"[param data] is allowed to drop at [param at_position] where [param "
+"at_position] is local to this control.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _can_drop_data(position, data):\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n"
+"\n"
+"func _drop_data(position, data):\n"
+" var color = data[\"color\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override bool _CanDropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" return data.VariantType == Variant.Type.Dictionary && dict."
+"AsGodotDictionary().ContainsKey(\"color\");\n"
+"}\n"
+"\n"
+"public override void _DropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Godot 呼叫這個方法把 [param data] 傳給你,這是從某個控制項的 [method "
+"_get_drag_data] 獲得的結果。Godot 首先會呼叫 [method _can_drop_data] 來檢查是"
+"否允許把 [param data] 拖放到 [param at_position],這裡的 [param at_position] "
+"使用的是這個控制項的局部坐標系。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _can_drop_data(position, data):\n"
+" return typeof(data) == TYPE_DICTIONARY and data.has(\"color\")\n"
+"\n"
+"func _drop_data(position, data):\n"
+" var color = data[\"color\"]\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override bool _CanDropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" return data.VariantType == Variant.Type.Dictionary && dict."
+"AsGodotDictionary().ContainsKey(\"color\");\n"
+"}\n"
+"\n"
+"public override void _DropData(Vector2 atPosition, Variant data)\n"
+"{\n"
+" Color color = data.AsGodotDictionary()[\"color\"].AsColor();\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+
+msgid ""
+"Godot calls this method to get data that can be dragged and dropped onto "
+"controls that expect drop data. Returns [code]null[/code] if there is no data "
+"to drag. Controls that want to receive drop data should implement [method "
+"_can_drop_data] and [method _drop_data]. [param at_position] is local to this "
+"control. Drag may be forced with [method force_drag].\n"
+"A preview that will follow the mouse that should represent the data can be "
+"set with [method set_drag_preview]. A good time to set the preview is in this "
+"method.\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _get_drag_data(position):\n"
+" var mydata = make_data() # This is your custom method generating the drag "
+"data.\n"
+" set_drag_preview(make_preview(mydata)) # This is your custom method "
+"generating the preview of the drag data.\n"
+" return mydata\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override Variant _GetDragData(Vector2 atPosition)\n"
+"{\n"
+" var myData = MakeData(); // This is your custom method generating the "
+"drag data.\n"
+" SetDragPreview(MakePreview(myData)); // This is your custom method "
+"generating the preview of the drag data.\n"
+" return myData;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]"
+msgstr ""
+"Godot 呼叫該方法來獲取可以拖放到期望放置資料的控制項上的資料。如果沒有要拖動的"
+"資料,則返回 [code]null[/code]。想要接收拖放資料的控制項應該實作 [method "
+"_can_drop_data] 和 [method _drop_data]。[param at_position] 是該控制項的局部位"
+"元置。可以使用 [method force_drag] 強制拖動。\n"
+"可以使用 [method set_drag_preview] 設定跟隨滑鼠顯示資料的預覽。設定預覽的好時"
+"機就是在這個方法中。\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _get_drag_data(position):\n"
+" var mydata = make_data() # This is your custom method generating the drag "
+"data.\n"
+" set_drag_preview(make_preview(mydata)) # 這是你生成拖動資料預覽的自訂方"
+"法。\n"
+" return mydata\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override Variant _GetDragData(Vector2 atPosition)\n"
+"{\n"
+" var myData = MakeData(); // This is your custom method generating the "
+"drag data.\n"
+" SetDragPreview(MakePreview(myData)); // 這是你生成拖動資料預覽的自訂方"
+"法。\n"
+" return myData;\n"
+"}\n"
+"[/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. Returns the tooltip text for "
+"the position [param at_position] in control's local coordinates, which will "
+"typically appear when the cursor is resting over this control. See [method "
+"get_tooltip].\n"
+"[b]Note:[/b] If this method returns an empty [String], no tooltip is "
+"displayed."
+msgstr ""
+"使用者實作的虛方法。返回位於控制項局部坐標系中 [param at_position] 位置的工具"
+"提示文字,工具提示一般會在滑鼠停留在該控制項上時顯示。見 [method "
+"get_tooltip]。\n"
+"[b]注意:[/b]如果返回的是空 [String],則不會顯示工具提示。"
+
+msgid ""
+"Virtual method to be implemented by the user. Use this method to process and "
+"accept inputs on UI elements. See [method accept_event].\n"
+"[b]Example usage for clicking a control:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _gui_input(event):\n"
+" if event is InputEventMouseButton:\n"
+" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n"
+" print(\"I've been clicked D:\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override void _GuiInput(InputEvent @event)\n"
+"{\n"
+" if (@event is InputEventMouseButton mb)\n"
+" {\n"
+" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n"
+" {\n"
+" GD.Print(\"I've been clicked D:\");\n"
+" }\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"The event won't trigger if:\n"
+"* clicking outside the control (see [method _has_point]);\n"
+"* control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
+"* control is obstructed by another [Control] on top of it, which doesn't have "
+"[member mouse_filter] set to [constant MOUSE_FILTER_IGNORE];\n"
+"* control's parent has [member mouse_filter] set to [constant "
+"MOUSE_FILTER_STOP] or has accepted the event;\n"
+"* it happens outside the parent's rectangle and the parent has either [member "
+"clip_contents] enabled.\n"
+"[b]Note:[/b] Event position is relative to the control origin."
+msgstr ""
+"由使用者實作的虛方法。使用此方法處理和接受 UI 元素上的輸入。請參閱 [method "
+"accept_event]。\n"
+"[b]點擊控制項的用法範例:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _gui_input(event):\n"
+" if event is InputEventMouseButton:\n"
+" if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:\n"
+" print(\"我已被點擊 D:\")\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override void _GuiInput(InputEvent @event)\n"
+"{\n"
+" if (@event is InputEventMouseButton mb)\n"
+" {\n"
+" if (mb.ButtonIndex == MouseButton.Left && mb.Pressed)\n"
+" {\n"
+" GD.Print(\"我已被點擊 D:\");\n"
+" }\n"
+" }\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"如果出現以下情況,則不會觸發該事件:\n"
+"* 在控制項外點擊(參閱[method _has_point]);\n"
+"* 控制項將 [member mouse_filter] 設定為 [constant MOUSE_FILTER_IGNORE];\n"
+"* 控制項被其上的另一個 [Control] 阻擋,該控制項沒有將 [member mouse_filter] 設"
+"定為 [constant MOUSE_FILTER_IGNORE];\n"
+"* 控制項的父級已將 [member mouse_filter] 設定為 [constant MOUSE_FILTER_STOP] "
+"或已接受該事件;\n"
+"* 它發生在父級的矩形之外,並且父級已啟用 [member clip_contents]。\n"
+"[b]注意:[/b]事件位置相對於該控制項原點。"
+
+msgid ""
+"Virtual method to be implemented by the user. Returns whether the given "
+"[param point] is inside this control.\n"
+"If not overridden, default behavior is checking if the point is within "
+"control's Rect.\n"
+"[b]Note:[/b] If you want to check if a point is inside the control, you can "
+"use [code]Rect2(Vector2.ZERO, size).has_point(point)[/code]."
+msgstr ""
+"由使用者實作的虛方法。返回給定的 [param point] 是否在該控制項內。\n"
+"如果沒有被覆蓋,則預設行為是檢查該點是否在控制項的 Rect 內。\n"
+"[b]注意:[/b]如果要檢查一個點是否在該控制項內部,可以使用 [code]Rect2(Vector2."
+"ZERO, size).has_point(point)[/code]。"
+
+msgid ""
+"Virtual method to be implemented by the user. Returns a [Control] node that "
+"should be used as a tooltip instead of the default one. The [param for_text] "
+"includes the contents of the [member tooltip_text] property.\n"
+"The returned node must be of type [Control] or Control-derived. It can have "
+"child nodes of any type. It is freed when the tooltip disappears, so make "
+"sure you always provide a new instance (if you want to use a pre-existing "
+"node from your scene tree, you can duplicate it and pass the duplicated "
+"instance). When [code]null[/code] or a non-Control node is returned, the "
+"default tooltip will be used instead.\n"
+"The returned node will be added as child to a [PopupPanel], so you should "
+"only provide the contents of that panel. That [PopupPanel] can be themed "
+"using [method Theme.set_stylebox] for the type [code]\"TooltipPanel\"[/code] "
+"(see [member tooltip_text] for an example).\n"
+"[b]Note:[/b] The tooltip is shrunk to minimal size. If you want to ensure "
+"it's fully visible, you might want to set its [member custom_minimum_size] to "
+"some non-zero value.\n"
+"[b]Note:[/b] The node (and any relevant children) should be [member "
+"CanvasItem.visible] when returned, otherwise, the viewport that instantiates "
+"it will not be able to calculate its minimum size reliably.\n"
+"[b]Example of usage with a custom-constructed node:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _make_custom_tooltip(for_text):\n"
+" var label = Label.new()\n"
+" label.text = for_text\n"
+" return label\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override Control _MakeCustomTooltip(string forText)\n"
+"{\n"
+" var label = new Label();\n"
+" label.Text = forText;\n"
+" return label;\n"
+"}\n"
+"[/csharp]\n"
+"[/codeblocks]\n"
+"[b]Example of usage with a custom scene instance:[/b]\n"
+"[codeblocks]\n"
+"[gdscript]\n"
+"func _make_custom_tooltip(for_text):\n"
+" var tooltip = preload(\"res://some_tooltip_scene.tscn\").instantiate()\n"
+" tooltip.get_node(\"Label\").text = for_text\n"
+" return tooltip\n"
+"[/gdscript]\n"
+"[csharp]\n"
+"public override Control _MakeCustomTooltip(string forText)\n"
+"{\n"
+" Node tooltip = ResourceLoader.Load(\"res://"
+"some_tooltip_scene.tscn\").Instantiate();\n"
+" tooltip.GetNode