diff options
Diffstat (limited to 'doc/translations/fr.po')
-rw-r--r-- | doc/translations/fr.po | 1744 |
1 files changed, 1637 insertions, 107 deletions
diff --git a/doc/translations/fr.po b/doc/translations/fr.po index e1d9250acb..96010072b7 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -37,7 +37,7 @@ # GABRIELLE Damien <damiengabrielle@gmail.com>, 2021. # Julien Vanelian <julienvanelian@hotmail.com>, 2021. # Perrier Mathis <mathis.perrier73@gmail.com>, 2021, 2022. -# Blackiris <divjvc@free.fr>, 2021. +# Blackiris <divjvc@free.fr>, 2021, 2022. # AndyNekena <andy.nekena@gmail.com>, 2021. # Legorel <Legorel412@gmail.com>, 2021, 2022. # Romain Hebert <romain.hebert0442@gmail.com>, 2021. @@ -61,7 +61,7 @@ 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: 2022-05-23 22:03+0000\n" +"PO-Revision-Date: 2022-05-31 22:35+0000\n" "Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot-class-reference/fr/>\n" @@ -1289,15 +1289,15 @@ msgstr "" "conséquent, toutes les valeurs numériques seront converties en type [float] " "lors de l'analyse du texte JSON.\n" "[b]Remarque :[/b] Les objets JSON ne préservent par l'ordre des champs comme " -"les dictionnaires de Godot. Il ne faut donc pas présumer de l'ordre des " -"champs si un dictionnaire est construit à partir d'unJSON. Contrairement aux " -"tableaux JSON qui conservent l'ordre de leurs éléments:\n" +"les dictionnaires de Godot. Il ne faut donc pas présumer que l'ordre des " +"champs est respecté si un dictionnaire est construit à partir d'un JSON. À " +"l'inverse, les tableaux JSON conservent l'ordre de leurs éléments :\n" "[codeblock]\n" -"var p = JSON.parse('[\"hello\", \"world\", \"!\"]')\n" +"var p = JSON.parse('[\"salut\", \"le\", \"monde\", \" !\"]')\n" "if typeof(p.result) == TYPE_ARRAY:\n" -" print(p.result[0]) # Prints \"hello\"\n" +" print(p.result[0]) # Affiche \"salut\"\n" "else:\n" -" push_error(\"Unexpected results.\")\n" +" push_error(\"Résultat inattendu.\")\n" "[/codeblock]\n" "Voir également [JSON] pour une façon alternative d'analyser un texte JSON." @@ -5810,14 +5810,13 @@ msgstr "" "d'une piste d'audio." #: doc/classes/Animation.xml -#, fuzzy msgid "" "Sets the stream of the key identified by [code]key_idx[/code] to value " "[code]stream[/code]. The [code]track_idx[/code] must be the index of an " "Audio Track." msgstr "" "Positionne le flux de la clé identifiée par [code]key_idx[/code] à la valeur " -"[code]offset[/code]. Le [code]track_idx[/code] doit être l'index d'une piste " +"[code]stream[/code]. Le [code]track_idx[/code] doit être l'index d'une piste " "audio." #: doc/classes/Animation.xml @@ -6125,13 +6124,12 @@ msgid "Returns the update mode of a value track." msgstr "Retourne le mode de mise à jour d'une piste de valeur." #: doc/classes/Animation.xml -#, fuzzy msgid "" "Returns the interpolated value at the given time (in seconds). The " "[code]track_idx[/code] must be the index of a value track." msgstr "" -"Retourne la valeur interpolée à la [code]time[/code] donnée (en secondes). " -"Le [code]track_idx[/code] doit être l'index d'une piste de Bézier." +"Retourne la valeur interpolée au temps donné (en secondes). Le " +"[code]track_idx[/code] doit être l'index d'une piste de valeur." #: doc/classes/Animation.xml msgid "Sets the update mode (see [enum UpdateMode]) of a value track." @@ -6400,19 +6398,19 @@ msgid "" "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 "" -"Rappel défini par l'utilisateur appelé lorsqu'un nœud personnalisé est " -"traité. Le paramètre [code]time[/code] est un delta relatif, sauf si " -"[code]seek[/code] est [code]true[/code], auquel cas il est absolu.\n" -"Ici, appelez les fonctions [method blend_input], [method blend_node] ou " -"[method blend_animation]. Vous pouvez également utiliser [method " +"Méthode de callback définie par l'utilisateur et appelée quand un nœud " +"personnalisé est traité. Le paramètre [code]time[/code] est un delta " +"relatif, à moins que [code]seek[/code] soit [code]true[/code], auquel cas il " +"est absolu.\n" +"Ici, vous pouvez utiliser les méthodes [method blend_input], [method " +"blend_node] ou [method blend_animation]. Vous pouvez aussi utiliser [method " "get_parameter] et [method set_parameter] pour modifier la mémoire locale.\n" -"Cette fonction doit renvoyer le temps restant pour que l'animation actuelle " -"se termine (en cas de doute, transmettez la valeur du mélange principal " -"appelé)." +"Cette fonction doit renvoyer le temps restant avant la fin de l'animation en " +"cours (en cas de doute, renvoyez la valeur du mélange principal appelé)." #: doc/classes/AnimationNode.xml msgid "Removes an input, call this only when inactive." -msgstr "Supprime une entrée, n'appeler que si le nœud est inactif." +msgstr "Supprime une entrée, à n'appeler que si le nœud est inactif." #: doc/classes/AnimationNode.xml msgid "Adds or removes a path for the filter." @@ -6433,9 +6431,8 @@ msgid "If [code]true[/code], filtering is enabled." msgstr "Si [code]true[/code], le filtrage est activé." #: doc/classes/AnimationNode.xml -#, fuzzy msgid "Emitted when the node was removed from the graph." -msgstr "Appelée quand le nœud est enlevé du graphe." +msgstr "Émis quand le nœud est enlevé du graphe." #: doc/classes/AnimationNode.xml msgid "" @@ -7800,13 +7797,12 @@ msgid "" msgstr "" #: doc/classes/AnimationTreePlayer.xml -#, fuzzy msgid "" "Returns whether node [code]id[/code] and [code]dst_id[/code] are connected " "at the specified slot." msgstr "" -"Renvoie [code]true[/code] (vrai) si [code]a[/code] et [code]b[/code] sont " -"approximativement égaux l'un à l'autre." +"Retourne quand les nœuds [code]id[/code] et [code]dst_id[/code] sont " +"connectés à l'emplacement spécifié.." #: doc/classes/AnimationTreePlayer.xml #, fuzzy @@ -8712,6 +8708,13 @@ msgid "" "print(array1) # Prints [1, 2, 3, 4, 5, 6].\n" "[/codeblock]" msgstr "" +"Ajoute un autre tableau à la fin de ce tableau.\n" +"[codeblock]\n" +"var array1 = [1, 2, 3]\n" +"var array2 = [4, 5, 6]\n" +"array1.append_array(array2)\n" +"print(array1) # Affiche [1, 2, 3, 4, 5, 6].\n" +"[/codeblock]" #: doc/classes/Array.xml msgid "" @@ -8721,6 +8724,11 @@ msgid "" "[/code]. If the array is empty, accessing by index will pause project " "execution when running from the editor." msgstr "" +"Retourne le dernier élément du tableau. Affiche une erreur et retourne " +"[code]null[/code] si le tableau est vide.\n" +"[b]Note :[/b] Appeler cette fonction n'est pas la même chose que " +"[code]array[-1][/code]. Si le tableau est vide, y accéder avec un index " +"mettre le projet en pause quand il sera lancé depuis l'éditeur." #: doc/classes/Array.xml msgid "" @@ -8771,19 +8779,56 @@ msgid "" "[b]Note:[/b] Calling [method bsearch_custom] on an unsorted array results in " "unexpected behavior." msgstr "" +"Cherche la position d'une valeur existante (ou de l'insertion de cette " +"position pour maintenant l'ordre, si la valeur n'est pas déjà présente dans " +"le tableau) en utilisant la recherche dichotomique et une méthode de " +"comparaison personnalisée déclaré dans l'objet [code]obj[/code]. En option, " +"un booléen [code]before[/code] peut être passé. Si [code]false[/code], la " +"position retournée sera après la valeur existante dans le tableau. La " +"méthode de comparaison personnalisée à deux arguments (un élément du tableau " +"et la valeur recherchée) et doit retourner [code]true[/code] si le premier " +"argument est avant le second, et retourne [code]false[/code] sinon.\n" +"[codeblock]\n" +"func cardinal_to_algebraic(a):\n" +" match a:\n" +" \"un\":\n" +" return 1\n" +" \"deux\":\n" +" return 2\n" +" \"trois\":\n" +" return 3\n" +" \"quatre\":\n" +" return 4\n" +" _:\n" +" return 0\n" +"\n" +"func compare(a, b):\n" +" return cardinal_to_algebraic(a) < cardinal_to_algebraic(b)\n" +"\n" +"func _ready():\n" +" var a = [\"un\", \"deux\", \"trois\", \"quatre\"]\n" +" # `compare` est défini dans ce objet, alors on utilise `self` pour le " +"paramètre `obj`.\n" +" print(a.bsearch_custom(\"trois\", self, \"compare\", true)) # Doit " +"afficher 2.\n" +"[/codeblock]\n" +"[b]Note :[/b] Appeler [method bsearch_custom] sur un tableau qui n'est pas " +"dans l'ordre peut donner un résultat inattendu." #: doc/classes/Array.xml msgid "" "Clears the array. This is equivalent to using [method resize] with a size of " "[code]0[/code]." msgstr "" +"Efface le contenu du tableau. C'est équivalent à [method resize] avec une " +"taille de [code]0[/code]." #: doc/classes/Array.xml doc/classes/PoolByteArray.xml #: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml #: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml #: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml msgid "Returns the number of times an element is in the array." -msgstr "" +msgstr "Retourne le nombre de fois qu'un élément apparait dans le tableau." #: doc/classes/Array.xml msgid "" @@ -8830,16 +8875,15 @@ msgstr "" #: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml #: doc/classes/PoolRealArray.xml doc/classes/PoolStringArray.xml #: doc/classes/PoolVector2Array.xml doc/classes/PoolVector3Array.xml -#, fuzzy 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. Returns " "[code]-1[/code] if [code]from[/code] is out of bounds." msgstr "" -"Trouve la première occurrence d'une sous-chaîne de caractères. Retourne le " -"position de départ de la sous-chaîne de caractères ou [code]-1[/code] si non " -"trouvée. Optionnellement, l'index de recherche initial peut être passé (en " -"tant qu'argument) ." +"Recherche une valeur dans le tableau et retourne sa position ou [code]-1[/" +"code] si non trouvée. Optionnellement, la position de départ peut être " +"passé. Retourne [code]-1[/code] si cette valeur [code]from[/code] est en " +"dehors du tableau." #: doc/classes/Array.xml msgid "" @@ -9085,6 +9129,31 @@ msgid "" "OpenGL/Face-culling]winding order[/url] for front faces of triangle " "primitive modes." msgstr "" +"Le [ArrayMesh] est utilisé pour construire un [Mesh] en spécifiant les " +"attributs dans des tableaux.\n" +"L'exemple le plus trivial est la création d'un simple triangle :\n" +"[codeblock]\n" +"var vertices = PoolVector3Array()\n" +"vertices.push_back(Vector3(0, 1, 0))\n" +"vertices.push_back(Vector3(1, 0, 0))\n" +"vertices.push_back(Vector3(0, 0, 1))\n" +"# Initialiser le ArrayMesh.\n" +"var arr_mesh = ArrayMesh.new()\n" +"var arrays = []\n" +"arrays.resize(ArrayMesh.ARRAY_MAX)\n" +"arrays[ArrayMesh.ARRAY_VERTEX] = vertices\n" +"# Créer le Mesh.\n" +"arr_mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)\n" +"var m = MeshInstance.new()\n" +"m.mesh = arr_mesh\n" +"[/codeblock]\n" +"La [MeshInstance] est prête à être ajoutée à la [SceneTree] pour être " +"affichée.\n" +"Voir aussi [ImmediateGeometry], [MeshDataTool] et [SurfaceTool] pour la " +"génération procédurale de géométries.\n" +"[b]Note :[/b] Godot utilise le sens horaire [url=https://learnopengl.com/" +"Advanced-OpenGL/Face-culling]pour le culling [/url] pour les faces avant " +"dans les modes de création de triangles." #: doc/classes/ArrayMesh.xml msgid "" @@ -10570,6 +10639,18 @@ msgid "" "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 "" +"Retourne la position la plus proche de [code]to_position[/code] qui est à " +"l'intérieur du segment entre deux points.\n" +"[codeblock]\n" +"var astar = AStar2D.new()\n" +"astar.add_point(1, Vector2(0, 0))\n" +"astar.add_point(2, Vector2(0, 5))\n" +"astar.connect_points(1, 2)\n" +"var res = astar.get_closest_position_in_segment(Vector2(3, 3)) # Retourne " +"(0, 3)\n" +"[/codeblock]\n" +"Le résultat est un segment qui va de [code]y = 0[/code] à [code]y = 5[/" +"code]. C'est la position la plus proche sur le segment du point donné." #: doc/classes/AStar2D.xml msgid "" @@ -10594,6 +10675,26 @@ msgid "" "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 "" +"Retourne un tableau avec les identifiants des points qui forment le chemin " +"trouvé par AStar2D entre les points donnés. Le tableau est dans l'ordre du " +"point de départ de celui de l'arrivée.\n" +"[codeblock]\n" +"var astar = AStar2D.new()\n" +"astar.add_point(1, Vector2(0, 0))\n" +"astar.add_point(2, Vector2(0, 1), 1) # Le poids par défaut est 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) # Retourne [1, 2, 3]\n" +"[/codeblock]\n" +"Si vous changez le poids du deuxième point à 3, alors le résultat sera " +"plutôt [code][1, 4, 3][/code], parce que même si la distance est plus " +"grande, c'est plus \"facile\" d'aller au point 4 qu'au point 2." #: doc/classes/AStar2D.xml msgid "" @@ -11139,6 +11240,29 @@ msgid "" "Band 21: 22000 Hz\n" "See also [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]." msgstr "" +"Bandes de fréquence :\n" +"Bande 1 : 22 Hz\n" +"Bande 2 : 32 Hz\n" +"Bande 3 : 44 Hz\n" +"Bande 4 : 63 Hz\n" +"Bande 5 : 90 Hz\n" +"Bande 6 : 125 Hz\n" +"Bande 7 : 175 Hz\n" +"Bande 8 : 250 Hz\n" +"Bande 9 : 350 Hz\n" +"Bande 10 : 500 Hz\n" +"Bande 11 : 700 Hz\n" +"Bande 12 : 1000 Hz\n" +"Bande 13 : 1400 Hz\n" +"Bande 14 : 2000 Hz\n" +"Bande 15 : 2800 Hz\n" +"Bande 16 : 4000 Hz\n" +"Bande 17 : 5600 Hz\n" +"Bande 18 : 8000 Hz\n" +"Bande 19 : 11000 Hz\n" +"Bande 20 : 16000 Hz\n" +"Bande 21 : 22000 Hz\n" +"Voir aussi [AudioEffectEQ], [AudioEffectEQ6], [AudioEffectEQ10]." #: doc/classes/AudioEffectEQ6.xml msgid "" @@ -11885,9 +12009,8 @@ msgstr "" "existe, [code]false[/code] autrement." #: doc/classes/AudioStreamGeneratorPlayback.xml -#, fuzzy msgid "Clears the audio sample data buffer." -msgstr "Efface l'historique des annulations." +msgstr "Efface la mémoire tampon des échantillons audio." #: doc/classes/AudioStreamGeneratorPlayback.xml msgid "" @@ -13592,6 +13715,30 @@ msgid "" "given time. Use [TouchScreenButton] for buttons that trigger gameplay " "movement or actions, as [TouchScreenButton] supports multitouch." msgstr "" +"Button est le bouton standard avec thème. Il peut contenir du texte et une " +"icône, et sera affiché suivant le [Theme] actuellement défini.\n" +"[b]Exemple de création d'un bouton par le lui et lui assigner une action " +"quand il est appuyé :[/b]\n" +"[codeblock]\n" +"func _ready():\n" +" var button = Button.new()\n" +" button.text = \"Cliquez moi\"\n" +" button.connect(\"pressed\", self, \"_button_pressed\")\n" +" add_child(button)\n" +"\n" +"func _button_pressed():\n" +" print(\"On m'a cliqué !\")\n" +"[/codeblock]\n" +"Les boutons (comme tous les nœuds Control) peuvent aussi être créés depuis " +"l'éditeur, mais dans certains cas, il peut être nécessaire de le faire par " +"le code.\n" +"Voir aussi [BaseButton] qui contient les propriétés et méthodes communes " +"associées à ce nœud.\n" +"[b]Note :[/b] Les boutons n'interceptent pas les tapes et ne supporte donc " +"pas le multitouch, puisque la souris ne peut presser qu'un seul bouton à la " +"fois. Utilisez [TouchScreenButton] pour les boutons qui traitent les entrées " +"pour les mouvements et les actions, puisque [TouchScreenButton] supporte le " +"multitouch." #: doc/classes/Button.xml doc/classes/Dictionary.xml #: doc/classes/GridContainer.xml doc/classes/OS.xml @@ -13605,6 +13752,8 @@ msgid "" "Text alignment policy for the button's text, use one of the [enum TextAlign] " "constants." msgstr "" +"L'alignement du texte du bouton, qui est une des constantes de [enum " +"TextAlign]." #: doc/classes/Button.xml msgid "" @@ -13724,6 +13873,8 @@ msgid "" "Returns an [Array] of [Button]s who have this as their [ButtonGroup] (see " "[member BaseButton.group])." msgstr "" +"Retourne une [Array] de [Button] qui sont dans ce [ButtonGroup] (voir " +"[member BaseButton.group])." #: doc/classes/ButtonGroup.xml msgid "Returns the current pressed button." @@ -13797,6 +13948,8 @@ msgid "" "Returns [code]true[/code] if the given [code]layer[/code] in the [member " "cull_mask] is enabled, [code]false[/code] otherwise." msgstr "" +"Retourne [code]true[/code] si le calque [code]layer[/code] spécifié dans ce " +"[member cull_mask] est actif, ou [code]false[/code] sinon." #: doc/classes/Camera.xml msgid "" @@ -13944,6 +14097,15 @@ msgid "" "- ~102.45 degrees in a 16:9 viewport\n" "- ~117.06 degrees in a 21:9 viewport" msgstr "" +"L'angle du champs de vision de la caméra (en degrés). Seulement disponible " +"en mode perspective. Comme [member keep_aspect] verrouille un axe, " +"[code]fov[/code] définit l'angle du champs de vision de l'autre axe.\n" +"Pour référence, l'angle de champs de vision par défaut ([code]70.0[/code]) " +"est équivalent à un champs de vision horizontal de :\n" +"- ~86.07 degrés pour un ratio de 4:3\n" +"- ~96.50 degrés pour un ratio de 16:10\n" +"- ~102.45 degrés pour un ratio de 16:9\n" +"- ~117.06 degrés pour un ratio de 21:9" #: doc/classes/Camera.xml msgid "" @@ -18367,6 +18529,29 @@ msgid "" "$MyButton.add_stylebox_override(\"normal\", null)\n" "[/codeblock]" msgstr "" +"Crée une surcharge locale pour un thème [StyleBox] nommé [code]name[/code]. " +"Les surcharges locales ont toujours la priorité lors de la récupération des " +"éléments des thèmes pour les contrôles.\n" +"[b]Note :[/b] Une surcharge peut être retirée en utilisant la valeur " +"[code]null[/code]. Ce comportement est obsolète est sera retiré dans Godot " +"4.0, utilisez plutôt [method remove_stylebox_override].\n" +"Voir aussi [method get_stylebox].\n" +"[b]Exemple de modification d'une propriété d'une StyleBox après l'avoir " +"dupliquée :[/b]\n" +"[codeblock]\n" +"# Le code ci-dessous part du principe que le nœud enfant \"MyButton\" à une " +"StyleBoxFlat qui lui est assignée.\n" +"# Les ressources sont partagées entre les instances, il est donc nécessaire " +"de les dupliquer\n" +"# pour éviter que les modifications ne se répercutent sur les autres " +"boutons.\n" +"var new_stylebox_normal = $MyButton.get_stylebox(\"normal\").duplicate()\n" +"new_stylebox_normal.border_width_top = 3\n" +"new_stylebox_normal.border_color = Color(0, 1, 0.5)\n" +"$MyButton.add_stylebox_override(\"normal\", new_stylebox_normal)\n" +"# Retirer la surcharge de la stylebox.\n" +"$MyButton.add_stylebox_override(\"normal\", null)\n" +"[/codeblock]" #: doc/classes/Control.xml msgid "" @@ -18382,6 +18567,18 @@ msgid "" " return typeof(data) == TYPE_DICTIONARY and data.has(\"expected\")\n" "[/codeblock]" msgstr "" +"Godot appelle cette méthode pour vérifier si [code]data[/code] de la méthode " +"[method get_drag_data] du contrôle peut être déposé à [code]position[/code]. " +"[code]position[/code] est local à ce contrôle.\n" +"Cette méthode ne devrait être utilisée uniquement que pour tester les " +"données. Le traitement de ces données doit se faire dans [method " +"drop_data].\n" +"[codeblock]\n" +"func can_drop_data(position, data):\n" +" # Vérifiez la \"position\" dans le as où elle a de l'intérêt,\n" +" # Sinon, vérifiez juste \"data\"\n" +" return typeof(data) == TYPE_DICTIONARY and data.has(\"valeur_attendu\")\n" +"[/codeblock]" #: doc/classes/Control.xml msgid "" @@ -20615,6 +20812,44 @@ msgid "" "[/codeblock]\n" "[b]Note:[/b] Not available in HTML5 exports." msgstr "" +"La classe Crypto permet d'accéder à des fonctionnalités cryptographiques " +"plus avancées dans Godot.\n" +"Pour l'instant, cela inclus la génération de données aléatoires pour des " +"utilsations cryptographiques, la génération de clés RSA et de certificats " +"auto-signés X509, de clé asymétriques de cryptage/décryptage, la signature " +"et la vérification.\n" +"[codeblock]\n" +"extends Node\n" +"\n" +"var crypto = Crypto.new()\n" +"var key = CryptoKey.new()\n" +"var cert = X509Certificate.new()\n" +"\n" +"func _ready():\n" +" # Générer une nouvelle clé RSA.\n" +" key = crypto.generate_rsa(4096)\n" +" # Générer un nouveau certificat auto-signé avec le clé.\n" +" cert = crypto.generate_self_signed_certificate(key, \"CN=mydomain.com," +"O=My Game Company,C=IT\")\n" +" # Enregistrer la clé et le certificat dans le dossier utilisateur.\n" +" key.save(\"user://generated.key\")\n" +" cert.save(\"user://generated.crt\")\n" +" # Cryptage\n" +" var data = \"Des données\"\n" +" var encrypted = crypto.encrypt(key, data.to_utf8())\n" +" # Décryptage\n" +" var decrypted = crypto.decrypt(key, encrypted)\n" +" # Signature\n" +" var signature = crypto.sign(HashingContext.HASH_SHA256, data." +"sha256_buffer(), key)\n" +" # Vérification\n" +" var verified = crypto.verify(HashingContext.HASH_SHA256, data." +"sha256_buffer(), signature, key)\n" +" # Tests\n" +" assert(verified)\n" +" assert(data.to_utf8() == decrypted)\n" +"[/codeblock]\n" +"[b]Note :[/b] N'est pas disponible dans les exports HTML5." #: doc/classes/Crypto.xml msgid "" @@ -20711,8 +20946,7 @@ msgid "" "saved like any other [Resource].\n" "They can be used to generate a self-signed [X509Certificate] via [method " "Crypto.generate_self_signed_certificate] and as private key in [method " -"StreamPeerSSL.accept_stream] along with the appropriate certificate.\n" -"[b]Note:[/b] Not available in HTML5 exports." +"StreamPeerSSL.accept_stream] along with the appropriate certificate." msgstr "" #: doc/classes/CryptoKey.xml @@ -22117,6 +22351,7 @@ msgid "Dictionary type." msgstr "Le type dictionnaire." #: doc/classes/Dictionary.xml +#, fuzzy msgid "" "Dictionary type. Associative container which contains values referenced by " "unique keys. Dictionaries are composed of pairs of keys (which must be " @@ -22160,7 +22395,7 @@ msgid "" "accessing the dictionary with isn't a fixed string (such as a number or " "variable).\n" "[codeblock]\n" -"export(string, \"White\", \"Yellow\", \"Orange\") var my_color\n" +"export(String, \"White\", \"Yellow\", \"Orange\") var my_color\n" "var points_dict = {\"White\": 50, \"Yellow\": 75, \"Orange\": 100}\n" "func _ready():\n" " # We can't use dot syntax here as `my_color` is a variable.\n" @@ -22421,6 +22656,22 @@ msgid "" "values does [i]not[/i] imply the dictionaries are equal, because different " "dictionaries can have identical hash values due to hash collisions." msgstr "" +"Retourne un entier 32-bit de hachage représentant le contenu du " +"dictionnaire. Ça peut être utilisé pour comparer le contenu de plusieurs " +"dictionnaires entre eux :\n" +"[codeblock]\n" +"var dict1 = {0: 10}\n" +"var dict2 = {0: 10}\n" +"# La ligne en dessus affichera `true`, alors que `false` serait affiché si " +"les deux variables étaient comparées directement.\n" +"print(dict1.hash() == dict2.hash())\n" +"[/codeblock]\n" +"[b]Note :[/b] Les dictionnaires avec les mêmes clés et valeurs mais dans un " +"ordre différent auront un hachage différent.\n" +"[b]Note :[/b] Les dictionnaires avec le même content produiront toujours le " +"même hachage. Par contre, la réciproque n'est pas vraie. Retourner un même " +"hachage n'implique [i]pas[/i] que les dictionnaires soient identiques, " +"simplement à cause des collisions dans la fonction de hachage." #: doc/classes/Dictionary.xml msgid "Returns the list of keys in the [Dictionary]." @@ -22575,6 +22826,32 @@ msgid "" " print(\"An error occurred when trying to access the path.\")\n" "[/codeblock]" msgstr "" +"Le type Directory. Il est utilisé pour gérer les dossiers et leur contenu " +"(et pas uniquement ceux du projet).\n" +"Lors de la création d'un nouveau [Directory], le dossier ouvert par défaut " +"sera [code]res://[/code]. Cela peut changer à l'avenir, il est donc " +"préférable de toujours utiliser [method open] pour définir le [Directory] " +"que vous souhaitez gérer, en vérifiant à chaque fois les erreurs émises.\n" +"[b]Note :[/b] Plusieurs types de ressources sont importés (comme les " +"textures et les fichiers audio), et les originaux ne sont pas inclus dans le " +"jeu exporté, puisque seulement la version importée sont alors utilisées. " +"Utilisez plutôt [ResourceLoader] pour accéder à ces ressources importées.\n" +"Voici un exemple qui énumère le contenu d'un dossier :\n" +"[codeblock]\n" +"func dir_contents(path):\n" +" var dir = Directory.new()\n" +" if dir.open(path) == OK:\n" +" dir.list_dir_begin()\n" +" var file_name = dir.get_next()\n" +" while file_name != \"\":\n" +" if dir.current_is_dir():\n" +" print(\"Dossier trouvé: \" + file_name)\n" +" else:\n" +" print(\"Fichier trouvé : \" + file_name)\n" +" file_name = dir.get_next()\n" +" else:\n" +" print(\"Une erreur est survenue lors de l'accès à ce chemin.\")\n" +"[/codeblock]" #: doc/classes/Directory.xml msgid "" @@ -24448,6 +24725,23 @@ msgid "" " return false\n" "[/codeblock]" msgstr "" +"Appelé par le moteur quand la fenêtre d'affiche 2D de l'éditeur est mise à " +"jour. Utiliser le [Control] [code]overlay[/code] pour le dessin. Vous pouvez " +"mettre à jour la fenêtre d'affichage manuellement en appelant [method " +"update_overlays].\n" +"[codeblock]\n" +"func forward_canvas_draw_over_viewport(overlay):\n" +" # Dessine un cercle à la position du curseur de la souris.\n" +" overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color." +"white)\n" +"\n" +"func forward_canvas_gui_input(event):\n" +" if event is InputEventMouseMotion:\n" +" # Re-dessine la fenêtre d'affichage quand le curseur est déplacé.\n" +" update_overlays()\n" +" return true\n" +" return false\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -24482,6 +24776,27 @@ msgid "" " return forward\n" "[/codeblock]" msgstr "" +"Appelé quand il y a un nœud racine dans l'actuelle scène éditée, que [method " +"handles] est implémenté et qu'un [InputEvent] arrive dans la fenêtre " +"d'affichage 2D. Ça intercepte le [InputEvent], et si [code]return true[/" +"code] le [EditorPlugin] consomme le [code]event[/code], sinon il fait suivre " +"le [code]event[/code] aux autres classes Editor. Exemple:\n" +"[codeblock]\n" +"# Empêche le InputEvent d'atteindre d'autres classes Editor\n" +"func forward_spatial_gui_input(camera, event):\n" +" var forward = true\n" +" return forward\n" +"[/codeblock]\n" +"Doit [code]return false[/code] pour faire suivre le [InputEvent] aux autres " +"classes Editor. Exemple :\n" +"[codeblock]\n" +"# Consomme le InputEventMouseMotion et le fait suivre aux autres InputEvent\n" +"func forward_spatial_gui_input(camera, event):\n" +" var forward = false\n" +" if event is InputEventMouseMotion:\n" +" forward = true\n" +" return forward\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -24501,6 +24816,22 @@ msgid "" " return false\n" "[/codeblock]" msgstr "" +"Appelé par le moteur quand la fenêtre d'affiche 3D de l'éditeur est mise à " +"jour. Utiliser le [Control] [code]overlay[/code] pour le dessin. Vous pouvez " +"mettre à jour la fenêtre d'affichage manuellement en appelant [method " +"update_overlays].\n" +"[codeblock]\n" +"func forward_canvas_draw_over_viewport(overlay):\n" +" # Dessine un cercle à la position du curseur de la souris.\n" +" overlay.draw_circle(overlay.get_local_mouse_position(), 64)\n" +"\n" +"func forward_canvas_gui_input(event):\n" +" if event is InputEventMouseMotion:\n" +" # Re-dessine la fenêtre d'affichage quand le curseur est déplacé.\n" +" update_overlays()\n" +" return true\n" +" return false\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -24535,6 +24866,27 @@ msgid "" " return forward\n" "[/codeblock]" msgstr "" +"Appelé quand il y a un nœud racine dans l'actuelle scène éditée, que [method " +"handles] est implémenté et qu'un [InputEvent] arrive dans la fenêtre " +"d'affichage 3D. Ça intercepte le [InputEvent], et si [code]return true[/" +"code] le [EditorPlugin] consomme le [code]event[/code], sinon il fait suivre " +"le [code]event[/code] aux autres classes Editor. Exemple:\n" +"[codeblock]\n" +"# Empêche le InputEvent d'atteindre d'autres classes Editor\n" +"func forward_spatial_gui_input(camera, event):\n" +" var forward = true\n" +" return forward\n" +"[/codeblock]\n" +"Doit [code]return false[/code] pour faire suivre le [InputEvent] aux autres " +"classes Editor. Exemple :\n" +"[codeblock]\n" +"# Consomme le InputEventMouseMotion et le fait suivre aux autres InputEvent\n" +"func forward_spatial_gui_input(camera, event):\n" +" var forward = false\n" +" if event is InputEventMouseMotion:\n" +" forward = true\n" +" return forward\n" +"[/codeblock]" #: doc/classes/EditorPlugin.xml msgid "" @@ -25185,6 +25537,31 @@ msgid "" " iterate(child)\n" "[/codeblock]" msgstr "" +"Les scènes importées peuvent être automatiquement modifiées juste après " +"avoir été importées en définissant la propriété d'importation [b]Script " +"personnalisé[/b] par un script [code]tool[/code] qui hérite de cette " +"classe.\n" +"La méthode de rappel [method post_import] reçoit le nœud racine de la scène " +"importée et retourne la version modifiée de cette même scène. Un exemple " +"d'utilisation :\n" +"[codeblock]\n" +"tool # Nécessaire pour être exécuté dans l'éditeur\n" +"extends EditorScenePostImport\n" +"\n" +"# Cet exemple modifie le nom de tous les nœuds\n" +"\n" +"# Appelé juste après qye la scène est importée et récupère le nœud racine\n" +"func post_import(scene):\n" +" # Modifie le nom de tous les nœuds en \"nouveau_[ancien_nom]\"\n" +" iterate(scene)\n" +" return scene # N'oubliez pas de retourner la scène importée\n" +"\n" +"func iterate(node):\n" +" if node != null:\n" +" node.name = \"nouveau_\" + node.name\n" +" for child in node.get_children():\n" +" iterate(child)\n" +"[/codeblock]" #: doc/classes/EditorScenePostImport.xml msgid "" @@ -25230,6 +25607,25 @@ msgid "" "is visible in the console window started with the Editor (stdout) instead of " "the usual Godot [b]Output[/b] dock." msgstr "" +"Les scripts héritant de cette classe et implémentant la méthode [method " +"_run] peuvent être exécutés depuis l'éditeur de script avec l'option de menu " +"[b]Fichier > Lancer[/b] (ou avec [code]Ctrl+Shift+X[/code]) quand l'éditeur " +"est lancé. C'est utilise pour ajouter des fonctionnalités personnalisées " +"dans l'éditeur de Godot. Pour des additions plus complexes, préférez plutôt " +"utiliser [EditorPlugin].\n" +"[b]Note :[/b] Les scripts doivent activer le mode [code]tool[/code] pour " +"cela.\n" +"[b]Exemple de script :[/b]\n" +"[codeblock]\n" +"tool # Nécessaire pour être exécuté dans l'éditeur\n" +"extends EditorScript\n" +"\n" +"func _run():\n" +" print(\"Un bonjour depuis l'éditeur Godot !\")\n" +"[/codeblock]\n" +"[b]Note :[/b] Le script est exécuté dans le contexte de l'éditeur, ce qui " +"signifie que la sortie est visible dans la console qui a lancé l'éditeur " +"(\"stdout\") et non dans le dock [b]Output[/b] habituel de Godot." #: doc/classes/EditorScript.xml msgid "This method is executed by the Editor when [b]File > Run[/b] is used." @@ -27105,6 +27501,28 @@ msgid "" " $LineEdit.text = str(result)\n" "[/codeblock]" msgstr "" +"Une expression qui peut être faite d'opérations arithmétiques, d'appels de " +"fonctions mathématiques intégrées, d'appels de méthode sur l'instance " +"donnée, ou de constructeur de type intégrés.\n" +"Un exemple d'expression utilisant les fonctions mathématiques intégrées " +"serait [code]sqrt(pow(3,2) + pow(4,2))[/code].\n" +"Dans l'exemple suivant nous utilisons un nœud [LineEdit] pour écrire notre " +"expression et afficher le résultat.\n" +"[codeblock]\n" +"onready var expression = Expression.new()\n" +"\n" +"func _ready():\n" +" $LineEdit.connect(\"text_entered\", self, \"_on_text_entered\")\n" +"\n" +"func _on_text_entered(command):\n" +" var error = expression.parse(command, [])\n" +" if error != OK:\n" +" print(expression.get_error_text())\n" +" return\n" +" var result = expression.execute([], null, true)\n" +" if not expression.has_execute_failed():\n" +" $LineEdit.text = str(result)\n" +"[/codeblock]" #: doc/classes/Expression.xml msgid "" @@ -27505,6 +27923,33 @@ msgid "" " var converted2 = unsigned16_to_signed(read2) # 121\n" "[/codeblock]" msgstr "" +"Enregistre un entier au format 16 bits dans le fichier.\n" +"[b]Note :[/b] La [code]value[/code] doit entre dans l'intervalle [code][0, " +"2^16 - 1][/code]. Toute autre valeur dépassera et sera alors réduite à cet " +"intervalle.\n" +"Pour enregistrer un entier signé, utilisez [method store_64] ou enregistrez " +"une valeur signée contenue dans l'intervalle [code][-2^15, 2^15 - 1][/code] " +"(c'est-à-dire en gardant un bit pour le signe) et calculez le signe " +"manuellement à la lecture. Par exemple :\n" +"[codeblock]\n" +"const MAX_15B = 1 << 15 # 2^15\n" +"const MAX_16B = 1 << 16 # 2^16\n" +"\n" +"func unsigned16_to_signed(unsigned):\n" +" return (unsigned + MAX_15B) % MAX_16B - MAX_15B\n" +"\n" +"func _ready():\n" +" var f = File.new()\n" +" f.open(\"user://file.dat\", File.WRITE_READ)\n" +" f.store_16(-42) # Hors de l'intervalle, la valeur enregistrée sera 65494 " +"(= MAX_16B - 42).\n" +" f.store_16(121) # Dans l'intervalle, 121 sera enregistrée.\n" +" f.seek(0) # Retourner au début pour lire la valeur enregistrée\n" +" var read1 = f.get_16() # 65494\n" +" var read2 = f.get_16() # 121\n" +" var converted1 = unsigned16_to_signed(read1) # -42\n" +" var converted2 = unsigned16_to_signed(read2) # 121\n" +"[/codeblock]" #: doc/classes/File.xml msgid "" @@ -28883,7 +29328,7 @@ msgid "" "Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and " "([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the " "point of intersection as [Vector2]. If no intersection takes place, returns " -"an empty [Variant].\n" +"[code]null[/code].\n" "[b]Note:[/b] The lines are specified using direction vectors, not end points." msgstr "" @@ -28996,8 +29441,8 @@ msgstr "" msgid "" "Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and " "([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point " -"of intersection as [Vector2]. If no intersection takes place, returns an " -"empty [Variant]." +"of intersection as [Vector2]. If no intersection takes place, returns " +"[code]null[/code]." msgstr "" #: doc/classes/Geometry.xml @@ -29421,14 +29866,12 @@ msgid "Use 256 subdivisions." msgstr "Utilise 256 subdivisions." #: doc/classes/GIProbe.xml -#, fuzzy msgid "" "Use 512 subdivisions. This is the highest quality setting, but the slowest. " "On lower-end hardware, this could cause the GPU to stall." msgstr "" -"Utilise 64 subdivisions. C’est le réglage de qualité la plus basse, mais le " -"plus rapide. Utilisez-le si vous le pouvez, mais surtout utilisez-le sur du " -"matériel bas de gamme." +"Utilise 64 subdivisions. C’est le réglage de qualité la plus haute, mais le " +"plus lent. Le GPU peut même ramer sur les appareils peu puissants." #: doc/classes/GIProbe.xml msgid "Represents the size of the [enum Subdiv] enum." @@ -30166,6 +30609,7 @@ msgstr "Retourne la [Color] de la connexion d'entrée à [code]idx[/code]." msgid "" "Returns the number of enabled input slots (connections) to the GraphNode." msgstr "" +"Retourne le nombre d'emplacements entrants (connexions) activés du GraphNode." #: doc/classes/GraphNode.xml msgid "Returns the position of the input connection [code]idx[/code]." @@ -30183,6 +30627,7 @@ msgstr "Retourne la [Color] de la connexion de sortie à [code]idx[/code]." msgid "" "Returns the number of enabled output slots (connections) of the GraphNode." msgstr "" +"Retourne le nombre d'emplacements sortants (connexions) activés du GraphNode." #: doc/classes/GraphNode.xml msgid "Returns the position of the output connection [code]idx[/code]." @@ -30422,6 +30867,8 @@ msgid "" "The background used when [member overlay] is set to [constant " "OVERLAY_BREAKPOINT]." msgstr "" +"L'arrière-plan utilisé quand [member overlay] est à [constant " +"OVERLAY_BREAKPOINT]." #: doc/classes/GraphNode.xml msgid "The [StyleBox] used when [member comment] is enabled." @@ -30444,6 +30891,8 @@ msgid "" "The background used when [member overlay] is set to [constant " "OVERLAY_POSITION]." msgstr "" +"L'arrière-plan utilisé quand [member overlay] est à [constant " +"OVERLAY_POSITION]." #: doc/classes/GraphNode.xml msgid "The background used when the [GraphNode] is selected." @@ -30703,6 +31152,7 @@ msgstr "" "itérations." #: doc/classes/HashingContext.xml +#, fuzzy msgid "" "The HashingContext class provides an interface for computing cryptographic " "hashes over multiple iterations. This is useful for example when computing " @@ -30729,9 +31179,38 @@ msgid "" " var res = ctx.finish()\n" " # Print the result as hex string and array.\n" " printt(res.hex_encode(), Array(res))\n" -"[/codeblock]\n" -"[b]Note:[/b] Not available in HTML5 exports." +"[/codeblock]" msgstr "" +"La classe HashingContext fournis une interface pour calculer les hachages " +"cryptographiques en plusieurs itérations. C'est utile par exemple pour " +"calculer le hachage d'un fichier très volumineux (pour ne pas avoir à le " +"garder complètement en mémoire), d'un flux de réseau, et de flux de données " +"en général (pour ne pas avoir à maintenir des mémoires tampons).\n" +"L'énumération [enum HashType] liste tous les algorithmes de hachage " +"supportés.\n" +"[codeblock]\n" +"const CHUNK_SIZE = 1024\n" +"\n" +"func hash_file(path):\n" +" var ctx = HashingContext.new()\n" +" var file = File.new()\n" +" # Créer un nouveau contexte SHA-256.\n" +" ctx.start(HashingContext.HASH_SHA256)\n" +" # Vérifier que le fichier existe.\n" +" if not file.file_exists(path):\n" +" return\n" +" # Ouvrir le fichier pour le hachage.\n" +" file.open(path, File.READ)\n" +" # Mettre à jour le contexte après la lecture de chaque partie " +"(\"chunk\").\n" +" while not file.eof_reached():\n" +" ctx.update(file.get_buffer(CHUNK_SIZE))\n" +" # Récupérer le hachage calculé.\n" +" var res = ctx.finish()\n" +" # Afficher le résultat sous forme hexadécimal et en tableau.\n" +" printt(res.hex_encode(), Array(res))\n" +"[/codeblock]\n" +"[b]Note :[/b] N'est pas disponible pour les exports HTML5." #: doc/classes/HashingContext.xml msgid "Closes the current context, and return the computed hash." @@ -30946,6 +31425,52 @@ msgid "" "[/codeblock]\n" "[b]Note:[/b] Not available in HTML5 exports." msgstr "" +"La classe HMACContext est utile pour les usages HMAC avancés, comme l'envoi " +"continu de message puisqu'il supporte la création de message en plusieurs " +"fois plutôt qu'en une seule fois.\n" +"[codeblock]\n" +"extends Node\n" +"var ctx = HMACContext.new()\n" +"\n" +"func _ready():\n" +" var key = \"supersecret\".to_utf8()\n" +" var err = ctx.start(HashingContext.HASH_SHA256, key)\n" +" assert(err == OK)\n" +" var msg1 = \"c'est un \".to_utf8()\n" +" var msg2 = \"extra méga super secret\".to_utf8()\n" +" err = ctx.update(msg1)\n" +" assert(err == OK)\n" +" err = ctx.update(msg2)\n" +" assert(err == OK)\n" +" var hmac = ctx.finish()\n" +" print(hmac.hex_encode())\n" +"[/codeblock]\n" +"Et en C#, le code ressemble à :\n" +"[codeblock]\n" +"using Godot;\n" +"using System;\n" +"using System.Diagnostics;\n" +"\n" +"public class CryptoNode : Node\n" +"{\n" +" private HMACContext ctx = new HMACContext();\n" +" public override void _Ready()\n" +" {\n" +" PoolByteArray key = String(\"supersecret\").to_utf8();\n" +" Error err = ctx.Start(HashingContext.HASH_SHA256, key);\n" +" GD.Assert(err == OK);\n" +" PoolByteArray msg1 = String(\"c'est un \").to_utf8();\n" +" PoolByteArray msg2 = String(\"extra méga super secret\").to_utf8();\n" +" err = ctx.Update(msg1);\n" +" GD.Assert(err == OK);\n" +" err = ctx.Update(msg2);\n" +" GD.Assert(err == OK);\n" +" PoolByteArray hmac = ctx.Finish();\n" +" GD.Print(hmac.HexEncode());\n" +" }\n" +"}\n" +"[/codeblock]\n" +"[b]Note :[/b] N'est pas disponible dans les exports HTML5." #: doc/classes/HMACContext.xml msgid "" @@ -30960,6 +31485,8 @@ msgid "" "Initializes the HMACContext. This method cannot be called again on the same " "HMACContext until [method finish] has been called." msgstr "" +"Initialise le HMACContext. Cette méthode ne peut pas être appelée sur le " +"même HMACContext tant que [method finish] n'a pas été appelé." #: doc/classes/HMACContext.xml msgid "" @@ -31210,6 +31737,18 @@ msgid "" "}\n" "[/codeblock]" msgstr "" +"Retourne toutes les entêtes de la réponse dans un Dictionary avec la " +"structure [code]{ \"key\": \"value1; value2\" }[/code] où les clés et " +"valeurs sont dans la même casse que le serveur les a envoyées. Une valeur " +"est une simple chaine de caractères, qui peut avoir une ou plusieurs valeurs " +"séparées par \"; \".\n" +"[b]Exemple :[/b]\n" +"[codeblock]\n" +"{\n" +" \"content-length\": 12,\n" +" \"Content-Type\": \"application/json; charset=UTF-8\",\n" +"}\n" +"[/codeblock]" #: doc/classes/HTTPClient.xml msgid "" @@ -31254,6 +31793,23 @@ msgid "" "# Returns \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" "[/codeblock]" msgstr "" +"Génère le contenu d'une requête GET/POST de style \"application/x-www-form-" +"urlencoded\" à partir d'un dictionnaire, par exemple :\n" +"[codeblock]\n" +"var fields = {\"username\": \"utilisateur\", \"password\": \"mot-de-" +"passe\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"# Returns \"username=utilisateur&password=mot-de-passe\"\n" +"[/codeblock]\n" +"De plus, si une clé a la valeur [code]null[/code], seule la clé sera " +"ajoutée, sans le signe égal ni la valeur. Si la valeur est un tableau, une " +"même clé sera ajoutée pour chaque élément du tableau.\n" +"[codeblock]\n" +"var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, " +"44]}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"# Retourne \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/codeblock]" #: doc/classes/HTTPClient.xml msgid "Reads one chunk from the response." @@ -31285,6 +31841,32 @@ msgid "" "data as a query string in the URL. See [method String.http_escape] for an " "example." msgstr "" +"Envoie une requête à l'hôte connecté.\n" +"Le paramètre de l'URL est en général seulement la partie après l'hôte, donc " +"pour [code]http://somehost.com/index.php[/code], c'est [code]/index.php[/" +"code]. Lors de l'envoi de requête à un serveur de proxy HTTP, ça doit être " +"une URL absolue. Pour les requêtes [constant HTTPClient.METHOD_OPTIONS], " +"[code]*[/code] est aussi autorisé. Pour les requêtes [constant HTTPClient." +"METHOD_CONNECT], ça doit être le composant d'autorité ([code]host:port[/" +"code]).\n" +"Les entêtes sont les entêtes de requêtes HTTP. Pour les méthodes HTTP " +"disponibles, voir [enum Method].\n" +"Pour créer une requête POST avec des données à soumettre au serveur, voici " +"un exemple :\n" +"[codeblock]\n" +"var fields = {\"username\" : \"utilisateur\", \"password\" : \"mot de " +"passe\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"var headers = [\"Content-Type: application/x-www-form-urlencoded\", " +"\"Content-Length: \" + str(query_string.length())]\n" +"var result = http_client.request(http_client.METHOD_POST, \"/index.php\", " +"headers, query_string)\n" +"[/codeblock]\n" +"[b]Note :[/b] Le paramètre [code]request_data[/code] est ignoré si " +"[code]method[/code] est [constant HTTPClient.METHOD_GET]. Parce que les " +"méthodes GET ne contiennent pas de données de requête. À la place, vous " +"pouvez passer les données de la requête sous forme de requête dans l'URL. " +"Voir [method String.http_escape] pour un exemple." #: doc/classes/HTTPClient.xml msgid "" @@ -31306,6 +31888,9 @@ msgid "" "The proxy server is unset if [code]host[/code] is empty or [code]port[/code] " "is -1." msgstr "" +"Définit le serveur de proxy pour les requêtes HTTP.\n" +"Le serveur de proxy n'est pas défini si [code]host[/code] est vide ou si " +"[code]port[/code] est -1." #: doc/classes/HTTPClient.xml doc/classes/HTTPRequest.xml msgid "" @@ -31313,6 +31898,9 @@ msgid "" "The proxy server is unset if [code]host[/code] is empty or [code]port[/code] " "is -1." msgstr "" +"Définit le serveur de proxy pour les requêtes HTTPS.\n" +"Le serveur de proxy n'est pas défini si [code]host[/code] est vide ou si " +"[code]port[/code] est -1." #: doc/classes/HTTPClient.xml msgid "" @@ -32664,6 +33252,8 @@ msgid "" "OpenGL texture format [code]GL_RGB5_A1[/code] where 5 bits of depth for each " "component of RGB and one bit for alpha." msgstr "" +"Le format de texture OpenGL [code]GL_RGB5_A1[/code] où il y a 5 bits pour " +"chaque composant RGB, et un seul pour alpha." #: doc/classes/Image.xml msgid "" @@ -33768,7 +34358,6 @@ msgstr "" "dessiner, ou pour les sélections." #: doc/classes/Input.xml -#, fuzzy msgid "" "Wait cursor. Indicates that the application is busy performing an operation. " "This cursor shape denotes that the application isn't usable during the " @@ -33780,7 +34369,6 @@ msgstr "" "principal est bloqué)." #: doc/classes/Input.xml -#, fuzzy msgid "" "Busy cursor. Indicates that the application is busy performing an operation. " "This cursor shape denotes that the application is still usable during the " @@ -35669,6 +36257,57 @@ msgid "" "}\n" "[/codeblock]" msgstr "" +"Convertit une variable [Variant] en texte JSON et retourne le résultat. " +"Utile pour sérialiser les données pour les enregistrer ou les envoyer à " +"travers le réseau.\n" +"[b]Note :[/b] Les spécifications du JSON ne définissent pas de différence " +"entre les entiers et les flottants, et ne définissent que le type commun " +"[i]nombre[/i]. Donc, convertir un Variant en JSON transformera tous les " +"nombres en [float].\n" +"La paramètre [code]indent[/code] contrôle si et comment le JSON doit être " +"indenté, la chaine de caractères utilisé pour ce paramètre sera utilisé pour " +"l'indentation de la sortie, et même les espaces [code]\" \"[/code] " +"fonctionneront. [code]\\t[/code] et [code]\\n[/code] peuvent aussi être " +"utilisé pour la tabulation, ou pour le retour à la ligne, respectivement.\n" +"[b]Exemples de sortie :[/b]\n" +"[codeblock]\n" +"## JSON.print(my_dictionary) # À la suite, sans aucun retour à la ligne\n" +"{\"name\":\"mon_dictionnaire\",\"version\":\"1.0.0\",\"entities\":[{\"name\":" +"\"élément_0\",\"value\":\"valeur_0\"},{\"name\":\"élément_1\",\"value\":" +"\"valeur_1\"}]}\n" +"\n" +"## JSON.print(my_dictionary, \"\\t\") # Retour à la ligne avec tabulation\n" +"{\n" +" \"name\": \"mon_dictionnaire\",\n" +" \"version\": \"1.0.0\",\n" +" \"entities\": [\n" +" {\n" +" \"name\": \"élément_0\",\n" +" \"value\": \"valeur_0\"\n" +" },\n" +" {\n" +" \"name\": \"élément_1\",\n" +" \"value\": \"valeur_1\"\n" +" }\n" +" ]\n" +"}\n" +"\n" +"## JSON.print(my_dictionary, \"...\") # Retour à la ligne avec \"...\"\n" +"{\n" +"...\"name\": \"mon_dictionnaire\",\n" +"...\"version\": \"1.0.0\",\n" +"...\"entities\": [\n" +"......{\n" +".........\"name\": \"élément_0\",\n" +".........\"value\": \"valeur_0\"\n" +"......},\n" +"......{\n" +".........\"name\": \"élément_1\",\n" +".........\"value\": \"valeur_1\"\n" +"......}\n" +"...]\n" +"}\n" +"[/codeblock]" #: doc/classes/JSONParseResult.xml msgid "Data class wrapper for decoded JSON." @@ -35728,6 +36367,26 @@ msgid "" " push_error(\"Unexpected results.\")\n" "[/codeblock]" msgstr "" +"Un [Variant] contenant un JSON interprété. Utilisez [method @GDScript." +"typeof] ou le mot-clé [code]is[/code] pour vérifier si le type retourné " +"correspond à vos attentes. Par exemple, si le code JSON commence par des " +"accolades ([code]{}[/code]), un [Dictionary] sera retourné. S'il commence " +"par des crochets ([code][][/code]), un [Array] sera retourné.\n" +"[b]Remarque :[/b] La spécification JSON ne définis pas de type différent " +"pour les entiers et flottants, mais seulement un type [i]number[/i]; par " +"conséquent, toutes les valeurs numériques seront converties en type [float] " +"lors de l'analyse du texte JSON.\n" +"[b]Remarque :[/b] Les objets JSON ne préservent par l'ordre des champs comme " +"les dictionnaires de Godot. Il ne faut donc pas présumer que l'ordre des " +"champs est respecté si un dictionnaire est construit à partir d'un JSON. À " +"l'inverse, les tableaux JSON conservent l'ordre de leurs éléments :\n" +"[codeblock]\n" +"var p = JSON.parse('[\"salut\", \"le\", \"monde\", \" !\"]')\n" +"if typeof(p.result) == TYPE_ARRAY:\n" +" print(p.result[0]) # Affiche \"salut\"\n" +"else:\n" +" push_error(\"Résultat inattendu.\")\n" +"[/codeblock]" #: doc/classes/JSONRPC.xml msgid "A helper to handle dictionaries which look like JSONRPC documents." @@ -35826,6 +36485,22 @@ msgid "" "while performing collision tests. This makes them really useful to implement " "characters that collide against a world, but don't require advanced physics." msgstr "" +"Les corps Kinematic sont des types spéciaux de corps qui sont prévus pour " +"être contrôlés par l'utilisateur. Ils ne sont pas affectés par la physique " +"du tout ; contrairement aux autres types de corps, comme les caractères ou " +"les corps rigides, ils sont plutôt similaires aux corps statiques. Ils ont " +"principalement deux principaux usages :\n" +"[b]Les mouvements simulés :[/b] Quand ces corps sont déplacés manuellement, " +"que ça soit par le code ou avec un [AnimationPlayer] (avec [member " +"AnimationPlayer.playback_process_mode] à \"physics\"), la physique calculera " +"automatiquement une estimation de leur vitesse linéaire et angulaire. Ils " +"sont très utiles pour les plateformes qui bougent ou les objets contrôlés " +"par des AnimationPlayer (comme une porte, un pont qui se lève, etc.).\n" +"[b]Les caractères cinétiques :[/b] La classe KinematicBody a aussi une API " +"pour déplacer les objets (avec les méthodes [method move_and_collide] et " +"[method move_and_slide]) tout en testant les collisions. Ils sont donc très " +"utiles pour implémenter des caractères qui peuvent entrer en collision avec " +"le monde, mais ne nécessitent pas de comportement physique avancé." #: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml msgid "Kinematic character (2D)" @@ -35892,14 +36567,14 @@ msgstr "" "direction au cours du dernier appel vers [method move_and_slide]." #: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml -#, fuzzy msgid "" "Returns [code]true[/code] if the body collided with the ceiling on the last " "call of [method move_and_slide] or [method move_and_slide_with_snap]. " "Otherwise, returns [code]false[/code]." msgstr "" -"Retourne [code]true[/code] si le corps est au plafond. Ne se met à jour que " -"lors de l'appel de la [method move_and_slide]." +"Retourne [code]true[/code] si le corps était entré en collision avec le " +"plafond lors du dernier appel à [method move_and_slide] or [method " +"move_and_slide_with_snap]. Retourne [code]false[/code] sinon." #: doc/classes/KinematicBody.xml doc/classes/KinematicBody2D.xml msgid "" @@ -36093,6 +36768,22 @@ msgid "" "while performing collision tests. This makes them really useful to implement " "characters that collide against a world, but don't require advanced physics." msgstr "" +"Les corps Kinematic sont des types spéciaux de corps qui sont prévus pour " +"être contrôlés par l'utilisateur. Ils ne sont pas affectés par la physique " +"du tout ; contrairement aux autres types de corps, comme les caractères ou " +"les corps rigides, ils sont plutôt similaires aux corps statiques. Ils ont " +"principalement deux principaux usages :\n" +"[b]Les mouvements simulés :[/b] Quand ces corps sont déplacés manuellement, " +"que ça soit par le code ou avec un [AnimationPlayer] (avec [member " +"AnimationPlayer.playback_process_mode] à \"physics\"), la physique calculera " +"automatiquement une estimation de leur vitesse linéaire et angulaire. Ils " +"sont très utiles pour les plateformes qui bougent ou les objets contrôlés " +"par des AnimationPlayer (comme une porte, un pont qui se lève, etc.).\n" +"[b]Les caractères cinétiques :[/b] La classe KinematicBody2D a aussi une API " +"pour déplacer les objets (avec les méthodes [method move_and_collide] et " +"[method move_and_slide]) tout en testant les collisions. Ils sont donc très " +"utiles pour implémenter des caractères qui peuvent entrer en collision avec " +"le monde, mais ne nécessitent pas de comportement physique avancé." #: doc/classes/KinematicBody2D.xml msgid "Using KinematicBody2D" @@ -38771,6 +39462,38 @@ msgid "" "OpenGL/Face-culling]winding order[/url] for front faces of triangle " "primitive modes." msgstr "" +"MeshDataTool fournit une accès aux différents sommets d'un [Mesh]. Ça permet " +"de lire et de modifier les données des sommets des maillages. Ça permet " +"aussi de créer un tableau de sommets et d’arêtes.\n" +"Pour utiliser le MeshDataTool, chargez un maillage avec [method " +"create_from_surface]. Quand vous avez terminé de modifier les données, vous " +"pouvez les incorporer dans le même maillage ou un autre avec [method " +"commit_to_surface].\n" +"Ci-dessous un exemple sur comment MeshDataTool peut être utilisé.\n" +"[codeblock]\n" +"var mesh = ArrayMesh.new()\n" +"mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, CubeMesh.new()." +"get_mesh_arrays())\n" +"var mdt = MeshDataTool.new()\n" +"mdt.create_from_surface(mesh, 0)\n" +"for i in range(mdt.get_vertex_count()):\n" +" var vertex = mdt.get_vertex(i)\n" +" # Dans cet exemple, on décalage chaque face du maillage par une unité, " +"ce qui éloigne les faces puisque les normales sont différentes.\n" +" vertex += mdt.get_vertex_normal(i)\n" +" # On enregistre les modifications.\n" +" mdt.set_vertex(i, vertex)\n" +"mesh.surface_remove(0)\n" +"mdt.commit_to_surface(mesh)\n" +"var mi = MeshInstance.new()\n" +"mi.mesh = mesh\n" +"add_child(mi)\n" +"[/codeblock]\n" +"Voir aussi [ArrayMesh], [ImmediateGeometry] et [SurfaceTool] pour la " +"génération procédurale de géométries.\n" +"[b]Note :[/b] Godot utilise le sens horaire [url=https://learnopengl.com/" +"Advanced-OpenGL/Face-culling]pour le culling [/url] pour les faces avant " +"dans les modes de création de triangles." #: doc/classes/MeshDataTool.xml msgid "Clears all data currently in MeshDataTool." @@ -40002,6 +40725,26 @@ msgid "" "phase. This means that you can request any change to the map, using any " "thread, without worrying." msgstr "" +"Le NavigationServer2D est le serveur responsable pour toutes les navigation " +"en 2D. Il gère différents objets, nommés carte, régions et agents.\n" +"Les cartes (\"maps\") sont faites de régions, qui sont faites de maillages " +"de navigation. Ensemble, ces cartes définissent les aires navigables dans le " +"monde 2D. Pour que deux régions soient connectées entre elles, elles doivent " +"avoir une bordure en commun. Une bordure (\"edge\") est considérée connectée " +"à une autre si elles ont deux sommets rapprochés de moins de la distance " +"[member Navigation.edge_connection_margin].\n" +"Pour utiliser le système d'évitement, vous devez utiliser des agents. Vous " +"pouvez définir la vitesse cible d'un agent, puis le serveur émettra une " +"méthode de rappel avec la vitesse modifiée.\n" +"[b]Note :[/b] Le système d'évitement des collisions ignorent les régions. " +"Utiliser la vitesse modifiée telle quelle peut déplacer un agent hors de la " +"surface de navigable. C'est une limite du système d'évitement des collision, " +"et certaines situations plus complexes peuvent nécessiter l'utilisation du " +"moteur physique.\n" +"Le serveur garde en mémoire tous les appels et les exécutent durant la phase " +"de synchronisation. Cela veut dire que vous pouvez demander n'importe quel " +"changement sur l'ensemble des cartes, via n'importe quel fil d'exécution, " +"sans soucis." #: doc/classes/Navigation2DServer.xml doc/classes/NavigationServer.xml msgid "Creates the agent." @@ -40800,9 +41543,8 @@ msgid "" msgstr "" #: doc/classes/NavigationObstacle.xml -#, fuzzy msgid "Returns the [RID] of this obstacle on the [NavigationServer]." -msgstr "Retourne le [RID] de la énième forme d'une zone." +msgstr "Retourne le [RID] de cet obstacle dans le [NavigationServer]." #: doc/classes/NavigationObstacle.xml msgid "" @@ -40841,9 +41583,8 @@ msgid "" msgstr "" #: doc/classes/NavigationObstacle2D.xml -#, fuzzy msgid "Returns the [RID] of this obstacle on the [Navigation2DServer]." -msgstr "Retourne le [RID] de la énième forme d'une zone." +msgstr "Retourne le [RID] de cet obstacle dans le [Navigation2DServer]." #: doc/classes/NavigationObstacle2D.xml msgid "" @@ -40981,6 +41722,26 @@ msgid "" "phase. This means that you can request any change to the map, using any " "thread, without worrying." msgstr "" +"Le NavigationServer est le serveur responsable pour toutes les navigation en " +"3D. Il gère différents objets, nommés carte, régions et agents.\n" +"Les cartes (\"maps\") sont faites de régions, qui sont faites de maillages " +"de navigation. Ensemble, ces cartes définissent les aires navigables dans le " +"monde 3D. Pour que deux régions soient connectées entre elles, elles doivent " +"avoir une bordure en commun. Une bordure (\"edge\") est considérée connectée " +"à une autre si elles ont deux sommets rapprochés de moins de la distance " +"[member Navigation.edge_connection_margin].\n" +"Pour utiliser le système d'évitement, vous devez utiliser des agents. Vous " +"pouvez définir la vitesse cible d'un agent, puis le serveur émettra une " +"méthode de rappel avec la vitesse modifiée.\n" +"[b]Note :[/b] Le système d'évitement des collisions ignorent les régions. " +"Utiliser la vitesse modifiée telle quelle peut déplacer un agent hors de la " +"surface de navigable. C'est une limite du système d'évitement des collision, " +"et certaines situations plus complexes peuvent nécessiter l'utilisation du " +"moteur physique.\n" +"Le serveur garde en mémoire tous les appels et les exécutent durant la phase " +"de synchronisation. Cela veut dire que vous pouvez demander n'importe quel " +"changement sur l'ensemble des cartes, via n'importe quel fil d'exécution, " +"sans soucis." #: doc/classes/NavigationServer.xml #, fuzzy @@ -41983,6 +42744,32 @@ msgid "" "get_node(\"/root/MyGame\")\n" "[/codeblock]" msgstr "" +"Récupère un nœud. Le [NodePath] peut être un chemin relatif (depuis le nœud " +"actuel) ou absolu (dans l'arborescence) vers un nœud. Si le chemin n'existe " +"pas, [code]null[/code] est retourné et une erreur est affichée. Appeler une " +"méthode sur la valeur retournée si le nœud n'existe lancera une erreur comme " +"\"Tentative d'appel de <method> sur une instance null.\".\n" +"[b]Note :[/b] Récupérer un nœud avec un chemin absolu ne fonctionne que si " +"ce nœud est dans l'arborescence (voir [method is_inside_tree]).\n" +"[b]Exemple :[/b] En assumant que le nœud actuel soit \"Personnage\" et que " +"l'arborescence soit la suivante :\n" +"[codeblock]\n" +"/root\n" +"/root/Personnage\n" +"/root/Personnage/Épée\n" +"/root/Personnage/Sac-à-dos/Dague\n" +"/root/MonJeu\n" +"/root/Bassin/Alligator\n" +"/root/Bassin/Moustique\n" +"/root/Bassin/Gobelin\n" +"[/codeblock]\n" +"Les chemins possibles sont :\n" +"[codeblock]\n" +"get_node(\"Épée\")\n" +"get_node(\"Sac-à-dos/Dague\")\n" +"get_node(\"../Bassin/Alligator\")\n" +"get_node(\"/root/MonJeu\")\n" +"[/codeblock]" #: doc/classes/Node.xml msgid "" @@ -42333,8 +43120,8 @@ msgid "" "will only be received by nodes with the same [NodePath], including the exact " "same node name. Behaviour depends on the RPC configuration for the given " "method, see [method rpc_config]. Methods are not exposed to RPCs by default. " -"See also [method rset] and [method rset_config] for properties. Returns an " -"empty [Variant].\n" +"See also [method rset] and [method rset_config] for properties. Returns " +"[code]null[/code].\n" "[b]Note:[/b] You can only safely use RPCs on clients after you received the " "[code]connected_to_server[/code] signal from the [SceneTree]. You also need " "to keep track of the connection state, either by the [SceneTree] signals " @@ -42356,14 +43143,14 @@ msgstr "" #: doc/classes/Node.xml msgid "" "Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] " -"(see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty " -"[Variant]." +"(see [method NetworkedMultiplayerPeer.set_target_peer]). Returns [code]null[/" +"code]." msgstr "" #: doc/classes/Node.xml +#, fuzzy msgid "" -"Sends a [method rpc] using an unreliable protocol. Returns an empty " -"[Variant]." +"Sends a [method rpc] using an unreliable protocol. Returns [code]null[/code]." msgstr "" "Envoie un [method rpc] en utilisant un protocole non fiable. Retourne un " "[Variant] vide." @@ -42372,7 +43159,7 @@ msgstr "" msgid "" "Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] " "using an unreliable protocol (see [method NetworkedMultiplayerPeer." -"set_target_peer]). Returns an empty [Variant]." +"set_target_peer]). Returns [code]null[/code]." msgstr "" #: doc/classes/Node.xml @@ -42956,6 +43743,40 @@ msgid "" "when moving, renaming or deleting a node in the scene tree, but they are " "never updated at runtime." msgstr "" +"Un chemin pré-interprété relatif ou absolu dans l'arborescence, à utiliser " +"avec [method Node.get_node] ou d'autres fonctions similaires. Ça peut être " +"une référence à un nœud, une ressource dans un nœud, ou une propriété dans " +"un nœud ou un ressource. Par exemple, [code]\"Path2D/PathFollow2D/Sprite:" +"texture:size\"[/code] réfère à la propriété [code]size[/code] de la " +"ressource [code]texture[/code] du nœud nommé [code]\"Sprite\"[/code] qui est " +"l'enfant des autres nœuds cités dans le chemin.\n" +"Une simple chaine de caractères contentant le chemin suffit à des méthodes " +"commes [method Node.get_node] qui la convertissent directement en NodePath, " +"mais il est parfois nécessaire d'interpréter ce chemin en utilisant " +"directement le [NodePath] ou format rapide [code]@\"path\"[/code]. Exporter " +"une variable [NodePath] vous donnera un widget de sélection d'un nœud dans " +"le panneau des propriétés dans l'éditeur, ce qui est souvent utile.\n" +"Un [NodePath] est composé d'une liste de noms de nœud séparé par \"/" +"\" (comme le chemin d'un fichier) et avec une liste facultative de \"sous-" +"noms\" séparés par deux points qui peuvent être des ressources ou des " +"propriétés.\n" +"Quelques exemples de NodePath :\n" +"[codeblock]\n" +"# Aucun \"/\" au début veut dire que c'est relatif au nœud actuel.\n" +"@\"A\" # L'enfant direct A\n" +"@\"A/B\" # L'enfant B de A\n" +"@\".\" # Le nœud actuel.\n" +"@\"..\" # Le nœud parent.\n" +"@\"../C\" # Le nœud C voisin.\n" +"# Un \"/\" au début veut dire que c'est absolu dans le SceneTree.\n" +"@\"/root\" # Équivalent à get_tree().get_root().\n" +"@\"/root/Main\" # Si votre principale scène se nomme \"Main\".\n" +"@\"/root/MyAutoload\" # Si vous avez un nœud ou une scène chargée " +"automatiquement.\n" +"[/codeblock]\n" +"[b]Note :[/b] Dans l'éditeur, les propriétés [NodePath] sont automatiquement " +"mise à jour lors de déplacement, renommage ou suppression d'un nœud dans " +"l'arborescence, mais ne sont jamais mis à jour quand le jeu est lancé." #: doc/classes/NodePath.xml doc/classes/PackedScene.xml doc/classes/Panel.xml #: doc/classes/PanelContainer.xml doc/classes/TileMap.xml @@ -42990,6 +43811,32 @@ msgid "" "\"/root/Level/Path2D\"\n" "[/codeblock]" msgstr "" +"Créer un NodePath depuis une chaine de caractères, par ex. [code]\"Path2D/" +"PathFollow2D/Sprite:texture:size\"[/code]. Un chemin est absolu s'il " +"commence par une barre oblique (\"/\"). Les chemins absolus ne sont valides " +"que dans l’arborescente globale, par dans les scènes individuelles. Pour les " +"chemins relatifs, [code]\".\"[/code] et [code]\"..\"[/code] indique le nœud " +"actuel et son parent respectivement.\n" +"Les \"sous-noms\" facultatifs inclus après le chemin du nœud cible peuvent " +"référer une ressource ou une propriété, et peuvent aussi être imbriquées.\n" +"Quelques exemples de NodePath valides (en assumant que ces nœuds existent et " +"contiennent les ressources et propriétés qui sont référencées) :\n" +"[codeblock]\n" +"# Réfère au nœud \"Sprite\".\n" +"\"Path2D/PathFollow2D/Sprite\"\n" +"# Réfère au nœud \"Sprite\" et sa ressource \"texture\".\n" +"# \"get_node()\" retournera \"Sprite\", alors que " +"\"get_node_and_resource()\"\n" +"# retournera à la fois le nœud \"Sprite\" et sa ressource \"texture\".\n" +"\"Path2D/PathFollow2D/Sprite:texture\"\n" +"# Réfère au nœud \"Sprite\" de sa propriété \"position\".\n" +"\"Path2D/PathFollow2D/Sprite:position\"\n" +"# Réfère au nœud \"Sprite\" et au composant \"x\" de sa propriété " +"\"position\".\n" +"\"Path2D/PathFollow2D/Sprite:position:x\"\n" +"# Chemin absolu (de le nœud racine \"root\").\n" +"\"/root/Level/Path2D\"\n" +"[/codeblock]" #: doc/classes/NodePath.xml msgid "" @@ -43016,6 +43863,13 @@ msgid "" "print(nodepath.get_concatenated_subnames()) # texture:load_path\n" "[/codeblock]" msgstr "" +"Retourne tous les sous-noms reliés par deux points ([code]:[/code]) comme " +"séparateur, c'est-à-dire que la partie droite des deux premiers points est " +"un chemin vers un nœud.\n" +"[codeblock]\n" +"var nodepath = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n" +"print(nodepath.get_concatenated_subnames()) # texture:load_path\n" +"[/codeblock]" #: doc/classes/NodePath.xml msgid "" @@ -43028,6 +43882,14 @@ msgid "" "print(node_path.get_name(2)) # Sprite\n" "[/codeblock]" msgstr "" +"Retourne le nom du nœud à l'index [code]idx[/code] (la valeur est entre 0 et " +"[method get_name_count]).\n" +"[codeblock]\n" +"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite\")\n" +"print(node_path.get_name(0)) # Path2D\n" +"print(node_path.get_name(1)) # PathFollow2D\n" +"print(node_path.get_name(2)) # Sprite\n" +"[/codeblock]" #: doc/classes/NodePath.xml msgid "" @@ -43046,6 +43908,13 @@ msgid "" "print(node_path.get_subname(1)) # load_path\n" "[/codeblock]" msgstr "" +"Retourne la ressource ou le nom de propriété indiqué à [code]idx[/code] (de " +"0 jusqu'à [method get_subname_count]).\n" +"[codeblock]\n" +"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite:texture:load_path\")\n" +"print(node_path.get_subname(0)) # texture\n" +"print(node_path.get_subname(1)) # load_path\n" +"[/codeblock]" #: doc/classes/NodePath.xml msgid "" @@ -43089,6 +43958,20 @@ msgid "" "var image = texture.get_data()\n" "[/codeblock]" msgstr "" +"Utilise un [OpenSimplexNoise] pour remplir la texture. Vous pouvez spécifier " +"une taille de texture mais gardez en mémoire qu'une plus grande taille " +"demandera un temps de génération plus long, et que les bruits continus ne " +"fonctionnent qu'avec des textures carrées.\n" +"NoiseTexture peut aussi générer des textures normalmap.\n" +"Cette classe utilise des [Thread] en interne pour générer la texture, donc " +"[method Texture.get_data] peut retourner [code]null[/code] si la génération " +"de la texture n'a pas encore été finie. Dans ce cas, vous devez attendre que " +"la texture soit générée avant d'accéder aux données :\n" +"[codeblock]\n" +"var texture = preload(\"res://noise.tres\")\n" +"yield(texture, \"changed\")\n" +"var image = texture.get_data()\n" +"[/codeblock]" #: modules/opensimplex/doc_classes/NoiseTexture.xml msgid "" @@ -44347,6 +45230,22 @@ msgid "" "the project if it is currently running (since the project is an independent " "child process)." msgstr "" +"Retarde l'exécution de l'actuel fil d'exécution de [code]msec[/code] " +"millisecondes. [code]msec[/code] doit être supérieur ou égal à [code]0[/" +"code]. Sinon, [method delay_msec] ne fera rien et affichera une erreur.\n" +"[b]Note :[/b] [method delay_msec] va [i]bloquer[/i] l'exécution à retarder. " +"Pour retarder l'exécution sans la bloquer, voir [method SceneTree." +"create_timer]. Utiliser yield avec [method SceneTree.create_timer] retardera " +"l'exécution du code placé en dessous de [code]yield[/code] mais sans " +"affecter le reste du projet (ni l'éditeur, pour les [EditorPlugin] et les " +"[EditorScript]s).\n" +"[b]Note :[/b] Quand [method delay_msec] est appelé dans le fil d'exécution " +"principal, le projet s'arrêtera et ne pourra plus mettre à jour son rendu ou " +"accepter de nouvelles entrées tant que le retard ne sera pas terminé. Quand " +"vous utilisez [method delay_msec] avec [EditorPlugin] ou [EditorScript], " +"l'éditeur s'arrêtera mais le projet lancé qui continuera de fonctionner " +"normalement (puisque le projet n'est pas dans le même processeur que " +"l'éditeur)." #: doc/classes/OS.xml msgid "" @@ -44367,6 +45266,22 @@ msgid "" "the project if it is currently running (since the project is an independent " "child process)." msgstr "" +"Retarde l'exécution de l'actuel fil d'exécution de [code]usec[/code] " +"microsecondes. [code]usec[/code] doit être supérieur ou égal à [code]0[/" +"code]. Sinon, [method delay_usec] ne fera rien et affichera une erreur.\n" +"[b]Note :[/b] [method delay_usec] va [i]bloquer[/i] l'exécution à retarder. " +"Pour retarder l'exécution sans la bloquer, voir [method SceneTree." +"create_timer]. Utiliser yield avec [method SceneTree.create_timer] retardera " +"l'exécution du code placé en dessous de [code]yield[/code] mais sans " +"affecter le reste du projet (ni l'éditeur, pour les [EditorPlugin] et les " +"[EditorScript]s).\n" +"[b]Note :[/b] Quand [method delay_msec] est appelé dans le fil d'exécution " +"principal, le projet s'arrêtera et ne pourra plus mettre à jour son rendu ou " +"accepter de nouvelles entrées tant que le retard ne sera pas terminé. Quand " +"vous utilisez [method delay_msec] avec [EditorPlugin] ou [EditorScript], " +"l'éditeur s'arrêtera mais le projet lancé qui continuera de fonctionner " +"normalement (puisque le projet n'est pas dans le même processeur que " +"l'éditeur)." #: doc/classes/OS.xml msgid "" @@ -44663,6 +45578,10 @@ msgid "" "[code]\"Server\"[/code], [code]\"Windows\"[/code], [code]\"UWP\"[/code], " "[code]\"X11\"[/code]." msgstr "" +"Retourne le nom du système d'exploitation hôte. Les valeurs possibles sont : " +"[code]\"Android\"[/code], [code]\"iOS\"[/code], [code]\"HTML5\"[/code], " +"[code]\"OSX\"[/code], [code]\"Server\"[/code], [code]\"Windows\"[/code], " +"[code]\"UWP\"[/code], [code]\"X11\"[/code]." #: doc/classes/OS.xml msgid "" @@ -44691,6 +45610,9 @@ msgid "" "[enum PowerState] constants.\n" "[b]Note:[/b] This method is implemented on Linux, macOS and Windows." msgstr "" +"Retourne l'état actuel de l'appareil par rapport à sa batterie ou son " +"énergie. Voir [enum PowerState] constants.\n" +"[b]Note :[/b] Cette méthode est implémentée sous Linux, macOS et Windows." #: doc/classes/OS.xml msgid "" @@ -44753,6 +45675,23 @@ msgid "" "[b]Note:[/b] This method is implemented on Android, Linux, macOS and " "Windows. Returns [code]72[/code] on unsupported platforms." msgstr "" +"Retourne la densité en points pour pouce (\"dpi\") de l'écran spécifié. Si " +"[code]screen[/code] est [code]-1[/code] (la valeur par défaut), l'écran " +"actuel sera utilisé.\n" +"[b]Note :[/b] Sous macOS, la valeur retournée est inexacte si la mise à " +"l'échelle n'est pas un nombre entier.\n" +"[b]Note :[/b] Pour les appareils Android, les densités des écrans sont " +"groupés en six catégories :\n" +"[codeblock]\n" +" ldpi - 120 dpi\n" +" mdpi - 160 dpi\n" +" hdpi - 240 dpi\n" +" xhdpi - 320 dpi\n" +" xxhdpi - 480 dpi\n" +"xxxhdpi - 640 dpi\n" +"[/codeblock]\n" +"[b]Note :[/b] Cette méthode est implémentée sous Android, Linux, macOS et " +"Windows. Retourne [code]72[/code] sur les plateformes non supportées." #: doc/classes/OS.xml msgid "" @@ -45353,6 +46292,24 @@ msgid "" "region is not drawn, while on Linux and macOS it is.\n" "[b]Note:[/b] This method is implemented on Linux, macOS and Windows." msgstr "" +"Définit une région polygonale de la fenêtre qui accepte les événements de la " +"souris. Ces événements en dehors de cette régions passeront au travers.\n" +"Passer un tableau vide désactivera cet effet (tous les événements de la " +"souris seront acceptés par la fenêtre, ce qui est le comportement par " +"défaut).\n" +"[codeblock]\n" +"# Définir une région, avec un nœud Path2D.\n" +"OS.set_window_mouse_passthrough($Path2D.curve.get_baked_points())\n" +"\n" +"# Définir une région, avec un nœud Polygon2D.\n" +"OS.set_window_mouse_passthrough($Polygon2D.polygon)\n" +"\n" +"# Rétablir la région par défaut (toute la fenêtre).\n" +"OS.set_window_mouse_passthrough([])\n" +"[/codeblock]\n" +"[b]Note :[/b] Sous Windows, la partie de la fenêtre en dehors de la région " +"définie n'est pas dessinée, alors qu'elle l'est sous Linux et macOS.\n" +"[b]Note :[/b] Cette méthode est implémenté sous Linux, macOS et Windows." #: doc/classes/OS.xml msgid "" @@ -45361,6 +46318,12 @@ msgid "" "as that will negatively affect performance on some window managers.\n" "[b]Note:[/b] This method is implemented on HTML5, Linux, macOS and Windows." msgstr "" +"Définit le titre de la fenêtre avec le texte donné.\n" +"[b]Note :[/b] Cela doit être utilisé avec parcimonie. Ne l'utilisez pas à " +"chaque trame, puisque les performances peuvent en être affectées avec " +"certains gestionnaires de fenêtres.\n" +"[b]Note :[/b] Cette méthode est implémentée sous HTML5, Linux, macOS et " +"Windows." #: doc/classes/OS.xml msgid "" @@ -45380,6 +46343,23 @@ msgid "" "[b]Note:[/b] This method is implemented on Android, iOS, HTML5, Linux, macOS " "and Windows." msgstr "" +"Demande au système d'exploitation d'ouvrir une ressource avec le programme " +"le plus approprié. Par exemple :\n" +"- [code]OS.shell_open(\"C:\\\\Users\\utilisateur\\Téléchargement\")[/code] " +"sous Windows ouvrira le gestionnaire de fichiers dans le dossier de " +"Téléchargements de l'utilisateur.\n" +"- [code]OS.shell_open(\"https://godotengine.org\")[/code] ouvrira la page " +"d'accueil de Godot dans le navigateur web par défaut.\n" +"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] ouvrira le " +"client mail par défaut avec le champs destinataire définit à " +"[code]example@example.com[/code]. Voir [url=https://blog.escapecreative.com/" +"customizing-mailto-links/]Personnaliser les liens [code]mailto:[/code][/url] " +"pour la liste des champs qui peuvent être ajoutés.\n" +"Utilisez [method ProjectSettings.globalize_path] pour convertir un chemin " +"[code]res://[/code] ou [code]user://[/code] en chemin système pour utiliser " +"avec cette méthode.\n" +"[b]Note :[/b] Cette méthode est implémentée sous Android, iOS, HTML5, Linux, " +"macOS et Windows." #: doc/classes/OS.xml msgid "" @@ -45971,15 +46951,14 @@ msgid "Sends a raw packet." msgstr "Envoie un paquet brut." #: doc/classes/PacketPeer.xml -#, fuzzy msgid "" "Sends a [Variant] as a packet. If [code]full_objects[/code] (or [member " "allow_object_decoding]) is [code]true[/code], encoding objects is allowed " "(and can potentially include code)." msgstr "" -"Encode la valeur d'une variable en un tableau d'octets(byte[]). Lorsque " -"[code]full_objects[/code] a la valeur [code]true[/code], l'encodage d'objets " -"est autorisé (et peut potentiellement inclure du code)." +"Envoie un [Variant] dans un paquet. Si [code]full_objects[/code] (ou [member " +"allow_object_decoding]) est [code]true[/code], le codage des objets est " +"autorisé (et peuvent potentiellement contenir du code à exécuter)." #: doc/classes/PacketPeer.xml msgid "" @@ -46213,6 +47192,21 @@ msgid "" " return\n" "[/codeblock]" msgstr "" +"Attend qu'un paquet arrive sur le port écoutant. Voir [method listen].\n" +"[b]Note :[/b] [method wait] ne peut pas être interrompu une fois appelé. Il " +"est possible de passer outre en autorisant l'envoi d'un paquet spécifique " +"pour s'arrêter :\n" +"[codeblock]\n" +"# Serveur\n" +"socket.set_dest_address(\"127.0.0.1\", 789)\n" +"socket.put_packet(\"Arrête toi !\".to_ascii())\n" +"\n" +"# Client\n" +"while socket.wait() == OK:\n" +" var data = socket.get_packet().get_string_from_ascii()\n" +" if data == \"Arrête toi !\":\n" +" return\n" +"[/codeblock]" #: doc/classes/Panel.xml msgid "Provides an opaque background for [Control] children." @@ -49748,11 +50742,25 @@ msgstr "Un tableau compacté d'octets." msgid "" "An array specifically designed to hold bytes. Optimized for memory usage, " "does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference." +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolByteArray] or " +"mutating a [PoolByteArray] within an [Array] or [Dictionary], changes will " +"be lost:\n" +"[codeblock]\n" +"var array = [PoolByteArray()]\n" +"array[0].push_back(123)\n" +"print(array) # [[]] (empty PoolByteArray within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolByteArray] property must be [i]reassigned[/i] with " +"[code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolByteArray()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(123)\n" +"array[0] = pool_array\n" +"print(array) # [[123]] (PoolByteArray with 1 element inside an Array)\n" +"[/codeblock]" msgstr "" -"Un tableau spécialement prévu pour contenir des octets. Optimisé pour " -"l'usage mémoire, elle ne se fragmente pas.\n" -"[b]Note :[/b] Ce type est passé par valeur et non pas référence." #: doc/classes/PoolByteArray.xml msgid "" @@ -49885,18 +50893,34 @@ msgstr "" "nouveau [PoolByteArray]. Chaque index négatif partira de la fin du tableau." #: doc/classes/PoolColorArray.xml -msgid "A pooled array of [Color]." +#, fuzzy +msgid "A pooled array of [Color]s." msgstr "Un tableau compacté de [Color]." #: doc/classes/PoolColorArray.xml msgid "" "An array specifically designed to hold [Color]. Optimized for memory usage, " "does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference." +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolColorArray] or " +"mutating a [PoolColorArray] within an [Array] or [Dictionary], changes will " +"be lost:\n" +"[codeblock]\n" +"var array = [PoolColorArray()]\n" +"array[0].push_back(Color(0.1, 0.2, 0.3, 0.4))\n" +"print(array) # [[]] (empty PoolColorArray within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolColorArray] property must be [i]reassigned[/i] with " +"[code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolColorArray()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(Color(0.1, 0.2, 0.3, 0.4))\n" +"array[0] = pool_array\n" +"print(array) # [[(0.1, 0.2, 0.3, 0.4)]] (PoolColorArray with 1 element " +"inside an Array)\n" +"[/codeblock]" msgstr "" -"Un tableau spécialement prévu pour contenir des [Color]. Optimisé pour " -"l'usage mémoire, elle ne se fragmente pas.\n" -"[b]Note :[/b] Ce type est passé par valeur et non pas référence." #: doc/classes/PoolColorArray.xml msgid "" @@ -49932,7 +50956,24 @@ msgstr "Un tableau compacté d'entiers ([int])." msgid "" "An array specifically designed to hold integer values ([int]). Optimized for " "memory usage, does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference.\n" +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolIntArray] or " +"mutating a [PoolIntArray] within an [Array] or [Dictionary], changes will be " +"lost:\n" +"[codeblock]\n" +"var array = [PoolIntArray()]\n" +"array[0].push_back(1234)\n" +"print(array) # [[]] (empty PoolIntArray within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolIntArray] property must be [i]reassigned[/i] with " +"[code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolIntArray()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(1234)\n" +"array[0] = pool_array\n" +"print(array) # [[1234]] (PoolIntArray with 1 element inside an Array)\n" +"[/codeblock]\n" "[b]Note:[/b] This type is limited to signed 32-bit integers, which means it " "can only take values in the interval [code][-2^31, 2^31 - 1][/code], i.e. " "[code][-2147483648, 2147483647][/code]. Exceeding those bounds will wrap " @@ -49966,14 +51007,32 @@ msgid "Changes the int at the given index." msgstr "Modifie le [int] à l’index donné." #: doc/classes/PoolRealArray.xml -msgid "A pooled array of reals ([float])." +#, fuzzy +msgid "A pooled array of real numbers ([float])." msgstr "Un tableau compacté de flottants ([float])." #: doc/classes/PoolRealArray.xml msgid "" "An array specifically designed to hold floating-point values. Optimized for " "memory usage, does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference.\n" +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolRealArray] or " +"mutating a [PoolRealArray] within an [Array] or [Dictionary], changes will " +"be lost:\n" +"[codeblock]\n" +"var array = [PoolRealArray()]\n" +"array[0].push_back(12.34)\n" +"print(array) # [[]] (empty PoolRealArray within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolRealArray] property must be [i]reassigned[/i] with " +"[code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolRealArray()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(12.34)\n" +"array[0] = pool_array\n" +"print(array) # [[12.34]] (PoolRealArray with 1 element inside an Array)\n" +"[/codeblock]\n" "[b]Note:[/b] Unlike primitive [float]s which are 64-bit, numbers stored in " "[PoolRealArray] are 32-bit floats. This means values stored in " "[PoolRealArray] have lower precision compared to primitive [float]s. If you " @@ -50000,18 +51059,33 @@ msgid "Changes the float at the given index." msgstr "Change la flottant à la position donnée." #: doc/classes/PoolStringArray.xml -msgid "A pooled array of [String]." +#, fuzzy +msgid "A pooled array of [String]s." msgstr "Un tableau compacté de [String]." #: doc/classes/PoolStringArray.xml msgid "" "An array specifically designed to hold [String]s. Optimized for memory " "usage, does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference." +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolStringArray] or " +"mutating a [PoolStringArray] within an [Array] or [Dictionary], changes will " +"be lost:\n" +"[codeblock]\n" +"var array = [PoolStringArray()]\n" +"array[0].push_back(\"hello\")\n" +"print(array) # [[]] (empty PoolStringArray within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolStringArray] property must be [i]reassigned[/i] " +"with [code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolStringArray()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(\"hello\")\n" +"array[0] = pool_array\n" +"print(array) # [[hello]] (PoolStringArray with 1 element inside an Array)\n" +"[/codeblock]" msgstr "" -"Un tableau spécialement prévu pour contenir des [String]. Optimisé pour " -"l'usage mémoire, elle ne se fragmente pas.\n" -"[b]Note :[/b] Ce type est passé par valeur et non pas référence." #: doc/classes/PoolStringArray.xml msgid "" @@ -50042,18 +51116,34 @@ msgid "Changes the [String] at the given index." msgstr "Change la [String] à la position donnée." #: doc/classes/PoolVector2Array.xml -msgid "A pooled array of [Vector2]." +#, fuzzy +msgid "A pooled array of [Vector2]s." msgstr "Un tableau compacté de [Vector2]." #: doc/classes/PoolVector2Array.xml msgid "" "An array specifically designed to hold [Vector2]. Optimized for memory " "usage, does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference." +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolVector2Array] or " +"mutating a [PoolVector2Array] within an [Array] or [Dictionary], changes " +"will be lost:\n" +"[codeblock]\n" +"var array = [PoolVector2Array()]\n" +"array[0].push_back(Vector2(12, 34))\n" +"print(array) # [[]] (empty PoolVector2Array within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolVector2Array] property must be [i]reassigned[/i] " +"with [code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolVector2Array()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(Vector2(12, 34))\n" +"array[0] = pool_array\n" +"print(array) # [[(12, 34)]] (PoolVector2Array with 1 element inside an " +"Array)\n" +"[/codeblock]" msgstr "" -"Un tableau spécialement prévu pour contenir des [Vector2]. Optimisé pour " -"l'usage mémoire, elle ne se fragmente pas.\n" -"[b]Note :[/b] Ce type est passé par valeur et non pas référence." #: doc/classes/PoolVector2Array.xml doc/classes/TileMap.xml #: doc/classes/TileSet.xml @@ -50088,11 +51178,26 @@ msgstr "Un tableau compacté de [Vector3]." msgid "" "An array specifically designed to hold [Vector3]. Optimized for memory " "usage, does not fragment the memory.\n" -"[b]Note:[/b] This type is passed by value and not by reference." +"[b]Note:[/b] This type is passed by value and not by reference. This means " +"that when [i]mutating[/i] a class property of type [PoolVector3Array] or " +"mutating a [PoolVector3Array] within an [Array] or [Dictionary], changes " +"will be lost:\n" +"[codeblock]\n" +"var array = [PoolVector3Array()]\n" +"array[0].push_back(Vector3(12, 34, 56))\n" +"print(array) # [[]] (empty PoolVector3Array within an empty Array)\n" +"[/codeblock]\n" +"Instead, the entire [PoolVector3Array] property must be [i]reassigned[/i] " +"with [code]=[/code] for it to be changed:\n" +"[codeblock]\n" +"var array = [PoolVector3Array()]\n" +"var pool_array = array[0]\n" +"pool_array.push_back(Vector3(12, 34, 56))\n" +"array[0] = pool_array\n" +"print(array) # [[(12, 34, 56)]] (PoolVector3Array with 1 element inside an " +"Array)\n" +"[/codeblock]" msgstr "" -"Un tableau spécialement prévu pour contenir des [Vector3]. Optimisé pour " -"l'usage mémoire, elle ne se fragmente pas.\n" -"[b]Note :[/b] Ce type est passé par valeur et non pas référence." #: doc/classes/PoolVector3Array.xml msgid "" @@ -51139,6 +52244,26 @@ msgid "" "ProjectSettings.add_property_info(property_info)\n" "[/codeblock]" msgstr "" +"Ajoute une propriété personnalisée dans une des propriétés du projet. Le " +"dictionnaire doit contenir :\n" +"- [code]name[/code]: [String] (le nom de la propriété)\n" +"- [code]type[/code]: [int] (voir [enum Variant.Type])\n" +"- en option l'indice [code]hint[/code]: [int] (voir [enum PropertyHint]) et " +"[code]hint_string[/code]: [String]\n" +"[b]Exemple :[/b]\n" +"[codeblock]\n" +"ProjectSettings.set(\"category/property_name\", 0) # Le premier choix " +"(\"un\" dans ce cas)\n" +"\n" +"var property_info = {\n" +" \"name\": \"category/property_name\",\n" +" \"type\": TYPE_INT,\n" +" \"hint\": PROPERTY_HINT_ENUM,\n" +" \"hint_string\": \"un,deux,trois\"\n" +"}\n" +"\n" +"ProjectSettings.add_property_info(property_info)\n" +"[/codeblock]" #: doc/classes/ProjectSettings.xml msgid "Clears the whole configuration (not recommended, may break things)." @@ -51194,6 +52319,32 @@ msgid "" " path = OS.get_executable_path().get_base_dir().plus_file(\"hello.txt\")\n" "[/codeblock]" msgstr "" +"Retourne un chemin absolu et natif du système d'exploitation correspondant " +"au chemin [code]path[/code] localisé (commençant par [code]res://[/code] ou " +"[code]user://[/code]). Le chemin retourné variera suivant le système " +"d'exploitation et les préférences utilisateur. Voir [url=$DOCS_URL/tutorials/" +"io/data_paths.html]Les chemins vers les fichiers dans les projets Godot[/" +"url] pour voir comment sont convertis ces chemins. Voir aussi [method " +"localize_path].\n" +"[b]Note :[/b] [method globalize_path] avec [code]res://[/code] ne " +"fonctionnera pas dans projet exporté. À la place, ajoutez tout au début le " +"dossier de base de l'exécutable au chemin retourné par le projet exporté :\n" +"[codeblock]\n" +"var path = \"\"\n" +"if OS.has_feature(\"editor\"):\n" +" # Exécuté depuis l'éditeur.\n" +" # Le chemin `path` contiendra le chemin absolu vers le fichier `hello." +"txt` à la racine du projet.\n" +" path = ProjectSettings.globalize_path(\"res://hello.txt\")\n" +"else:\n" +" # Exécuté depuis le projet exporté.\n" +" # Le chemin `path` contiendra le chemin absolu vers le fichier `hello." +"txt` avec l'exécutable.\n" +" # Ça n'est *pas* la identique à `ProjectSettings.globalize_path()` avec " +"un chemin `res://`,\n" +" # mais c'est assez proche dans le principe.\n" +" path = OS.get_executable_path().get_base_dir().plus_file(\"hello.txt\")\n" +"[/codeblock]" #: doc/classes/ProjectSettings.xml msgid "Returns [code]true[/code] if a configuration value is present." @@ -54662,6 +55813,24 @@ msgid "" "The [code]0[/code] value documented here is a placeholder, and not the " "actual default seed." msgstr "" +"RandomNumberGenerator est une classe pour générer des nombres pseudo-" +"aléatoires. Elle utilise l'algorithme [url=http://www.pcg-random.org/]PCG32[/" +"url].\n" +"[b]Note :[/b] L'implémentation de l'algorithme peut varier d'une version de " +"Godot à l'autre et donc produire des suites de nombres très différents entre " +"les versions.\n" +"Pour générer un flottant aléatoire (dans un intervalle donné) basé sur le " +"temps actuel:\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"func _ready():\n" +" rng.randomize()\n" +" var my_random_number = rng.randf_range(-10.0, 10.0)\n" +"[/codeblock]\n" +"[b]Note :[/b] Les valeurs par défaut des propriétés [member seed] et [member " +"state] sont pseudo-aléatoire, et elles changent à chaque appel à [method " +"randomize]. La valeur [code]0[/code] documentée ici est une valeur fictive, " +"et non la valeur par défaut." #: doc/classes/RandomNumberGenerator.xml msgid "Random number generation" @@ -54730,6 +55899,23 @@ msgid "" "state], and not the initial seed value, which is going to be fixed in Godot " "4.0." msgstr "" +"Initialise l'état d'un générateur de nombres aléatoires basé sur la graine " +"donnée. Une graine donnée générera toujours la même suite de nombres " +"aléatoires.\n" +"[b]Note :[/b] Le générateur n'est pas soumis à l'effet avalanche, et peut " +"générer des flux similaires de nombres à partir d'une même graine. Préférez " +"utiliser une fonction de hachage pour améliorer la qualité de la graine si " +"elle provient d'une source externe.\n" +"[b]Note :[/b] Définir cette propriété produit un effet non voulu qui change " +"l'état [member state] interne, donc assurez-vous d'initialiser la graine " +"[i]avant[/i] de modifier l'état [member state]:\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"rng.seed = hash(\"Godot\")\n" +"rng.state = 100 # Restaure avec un état précédemment enregistré.\n" +"[/codeblock]\n" +"[b]Avertissement :[/b] cette propriété retourne le précédent [member state], " +"et non pas la graine initiale, ce qui sera corrigé dans Godot 4.0." #: doc/classes/RandomNumberGenerator.xml msgid "" @@ -54749,6 +55935,22 @@ msgid "" "initialize the random number generator with arbitrary input, use [member " "seed] instead." msgstr "" +"L'état actuel du générateur de nombres aléatoires. Enregistrez puis " +"restaurez cette propriété pour maintenir l'état du générateur à l'état " +"précédent :\n" +"[codeblock]\n" +"var rng = RandomNumberGenerator.new()\n" +"print(rng.randf()) # Affiche un nombre aléatoire.\n" +"var saved_state = rng.state # Enregistre l'état actuel.\n" +"print(rng.randf()) # Avance l'état interne.\n" +"rng.state = saved_state # Restaure l'état enregistré.\n" +"print(rng.randf()) # Affiche le même nombre aléatoire que précédemment.\n" +"[/codeblock]\n" +"[b]Note :[/b] Ne modifiez pas l'état sauvegardé avec une valeur arbitraire, " +"le générateur à besoin d'avoir un état particulier pour générer des valeurs " +"correctement aléatoires. Cet état ne devrait être défini qu'à partir de " +"valeurs qui proviennent de cette propriété. Pour initialiser le générateur " +"avec une valeur personnalisée, utilisez plutôt [member seed]." #: doc/classes/Range.xml #, fuzzy @@ -54761,6 +55963,10 @@ msgid "" "[i]value[/i] between a [i]minimum[/i] and a [i]maximum[/i], using [i]step[/" "i] and [i]page[/i], for example a [ScrollBar]." msgstr "" +"Range est une classe de base des nœuds [Control] qui change une [code]value[/" +"code] flottante entre le [code]minimum[/code] et le [code]maximum[/code], " +"par étape [code]step[/code] et par [code]page[/code], par exemple un " +"[ScrollBar]." #: doc/classes/Range.xml msgid "" @@ -56928,7 +58134,8 @@ msgstr "Verrouille l'axe linéaire et de rotation spécifié." #: doc/classes/RigidBody.xml msgid "" -"Damps RigidBody's rotational forces.\n" +"Damps RigidBody's rotational forces. If this value is different from -1.0 it " +"will be added to any linear damp derived from the world or areas.\n" "See [member ProjectSettings.physics/3d/default_angular_damp] for more " "details about damping." msgstr "" @@ -57027,8 +58234,8 @@ msgstr "" #: doc/classes/RigidBody.xml msgid "" "The body's linear damp. Cannot be less than -1.0. If this value is different " -"from -1.0, any linear damp derived from the world or areas will be " -"overridden.\n" +"from -1.0 it will be added to any linear damp derived from the world or " +"areas.\n" "See [member ProjectSettings.physics/3d/default_linear_damp] for more details " "about damping." msgstr "" @@ -57242,7 +58449,8 @@ msgstr "" msgid "" "Damps the body's [member angular_velocity]. If [code]-1[/code], the body " "will use the [b]Default Angular Damp[/b] defined in [b]Project > Project " -"Settings > Physics > 2d[/b].\n" +"Settings > Physics > 2d[/b]. If greater than [code]-1[/code] it will be " +"added to the default project value.\n" "See [member ProjectSettings.physics/2d/default_angular_damp] for more " "details about damping." msgstr "" @@ -57325,7 +58533,8 @@ msgstr "" msgid "" "Damps the body's [member linear_velocity]. If [code]-1[/code], the body will " "use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > " -"Physics > 2d[/b].\n" +"Physics > 2d[/b]. If greater than [code]-1[/code] it will be added to the " +"default project value.\n" "See [member ProjectSettings.physics/2d/default_linear_damp] for more details " "about damping." msgstr "" @@ -58806,6 +60015,21 @@ msgid "" "tween.tween_callback($Sprite, \"set_modulate\", [Color.blue]).set_delay(2)\n" "[/codeblock]" msgstr "" +"Crée et ajoute un [CallbackTweener]. Cette méthode peut être utilisée pour " +"appeler une méthode arbitraire sur n'importe quel objet. Utilisez " +"[code]binds[/code] pour passer des arguments additionnels lors de l'appel.\n" +"Exemple : un objet qui tire toujours les secondes.\n" +"[codeblock]\n" +"var tween = get_tree().create_tween().set_loops()\n" +"tween.tween_callback(self, \"tirer\").set_delay(1)\n" +"[/codeblock]\n" +"Exemple : changer une texture en rouge et puis en bleu, avec un délai de 2 " +"secondes.\n" +"[codeblock]\n" +"var tween = get_tree().create_tween()\n" +"tween.tween_callback($Sprite, \"set_modulate\", [Color.red]).set_delay(2)\n" +"tween.tween_callback($Sprite, \"set_modulate\", [Color.blue]).set_delay(2)\n" +"[/codeblock]" #: doc/classes/SceneTreeTween.xml msgid "" @@ -58832,6 +60056,28 @@ msgid "" "tween.tween_interval(2)\n" "[/codeblock]" msgstr "" +"Crée et ajoute un [IntervalTweener]. Cette méthode peut être utilisée pour " +"créer des délais lors des interpolations, ou comme une alternative pour les " +"délais des autres [Tweener] ou quand il n'y a pas d'animation (dans ce cas " +"le [SceneTreeTween] se comportement comme un minuteur). [code]time[/code] " +"est le durée du délai, en secondes.\n" +"Exemple : créer un délai de 2s dans l'exécution du code.\n" +"[codeblock]\n" +"# ... du code\n" +"yield(create_tween().tween_interval(2), \"finished\")\n" +"# ... encore du code\n" +"[/codeblock]\n" +"Exemple : créer un objet qui se déplace d'avant en arrière et saute toutes " +"les quelques secondes.\n" +"[codeblock]\n" +"var tween = create_tween().set_loops()\n" +"tween.tween_property($Sprite, \"position:x\", 200.0, 1).as_relative()\n" +"tween.tween_callback(self, \"sauter\")\n" +"tween.tween_interval(2)\n" +"tween.tween_property($Sprite, \"position:x\", -200.0, 1).as_relative()\n" +"tween.tween_callback(self, \"sauter\")\n" +"tween.tween_interval(2)\n" +"[/codeblock]" #: doc/classes/SceneTreeTween.xml msgid "" @@ -58861,6 +60107,32 @@ msgid "" " $Label.text = \"Counting \" + str(value)\n" "[/codeblock]" msgstr "" +"Crée et ajoute une [MethodTweener]. Cette méthode est similaire à une " +"combinaison de [method tween_callback] et [method tween_property]. Elle " +"appelle une méthode en permanence lors de l'interpolation avec la valeur à " +"interpoler en argument. La valeur sera interpolée de [code]from[/code] à " +"[code]to[/code] pendant [code]duration[/code] secondes. Utilisez " +"[code]binds[/code] pour passer des arguments supplémentaire pour l'appel. " +"Vous pouvez passer [method MethodTweener.set_ease] et [method MethodTweener." +"set_trans] pour ajuster la courbe l'interpolation de la valeur ou [method " +"MethodTweener.set_delay] pour la retarder.\n" +"Exemple : faire regarder un objet 3D d'un point vers un autre.\n" +"[codeblock]\n" +"var tween = create_tween()\n" +"tween.tween_method(self, \"look_at\", Vector3(-1, 0, -1), Vector3(1, 0, -1), " +"1, [Vector3.UP]) # La méthode \"look_at()\" prend le vecteur haut en second " +"argument, qui est dans le tableau du dernier argument.\n" +"[/codeblock]\n" +"Exemple : définir le texte d'un [Label], en utilisant une méthode " +"intermédiaire et après un délai.\n" +"[codeblock]\n" +"func _ready():\n" +" var tween = create_tween()\n" +" tween.tween_method(self, \"set_label_text\", 0, 10, 1).set_delay(1)\n" +"\n" +"func set_label_text(value: int):\n" +" $Label.text = \"J'en suis à \" + str(value)\n" +"[/codeblock]" #: doc/classes/SceneTreeTween.xml msgid "" @@ -58957,7 +60229,7 @@ msgstr "" #: doc/classes/SceneTreeTween.xml msgid "If [SceneTree] is paused, the [SceneTreeTween] will also pause." -msgstr "" +msgstr "Si le [SceneTree] est en pause, le [SceneTreeTween] le sera aussi." #: doc/classes/SceneTreeTween.xml #, fuzzy @@ -62975,6 +64247,19 @@ msgid "" "print(\"\".get_extension()) # \"\" (empty string)\n" "[/codeblock]" msgstr "" +"Retourne l'extension sans le point ([code].[/code]) final si le chaine de " +"caractères est un nom ou un chemin de fichier valide. Si la chaine ne " +"contient pas d'extension, une chaine vide est retournée.\n" +"[codeblock]\n" +"print(\"/chemin/vers/fichier.txt\".get_extension()) # \"txt\"\n" +"print(\"fichier.txt\".get_extension()) # \"txt\"\n" +"print(\"fichier.test.txt\".get_extension()) # \"txt\"\n" +"print(\".txt\".get_extension()) # \"txt\"\n" +"print(\"fichier.txt.\".get_extension()) # \"\" (chaine vide)\n" +"print(\"fichier.txt..\".get_extension()) # \"\" (chaine vide)\n" +"print(\"txt\".get_extension()) # \"\" (chaine vide)\n" +"print(\"\".get_extension()) # \"\" (chaine vide)\n" +"[/codeblock]" #: doc/classes/String.xml msgid "If the string is a valid file path, returns the filename." @@ -63029,6 +64314,12 @@ msgid "" "http_escape())\n" "[/codeblock]" msgstr "" +"Échappe (code) une chaine de caractères dans un format compatible avec les " +"URL. Est aussi référé au 'codage de URL' ('URL encode').\n" +"[codeblock]\n" +"print(\"https://example.org/?escaped=\" + \"Le Moteur Godot:'docs'\"." +"http_escape())\n" +"[/codeblock]" #: doc/classes/String.xml msgid "" @@ -63374,6 +64665,22 @@ msgid "" "print(some_array[1]) # Prints \"Four\"\n" "[/codeblock]" msgstr "" +"Découpe une chaine de caractères par la chaine [code]delimiter[/code] et " +"retourne un tableau avec ces sous-chaines, en partant de la droite.\n" +"Les découpages retournés dans le tableau sont dans le même ordre que la " +"chaine de caractères originale, de gauche à droite.\n" +"Si [code]maxsplit[/code] est spécifié, il définit le nombre maximum de " +"découpages à faire à partir de la droite jusqu'à [code]maxsplit[/code]. La " +"valeur par défaut 0 signifie que tous les découpages seront faits, donnant " +"donc le même résultat que [method split].\n" +"Exemple :\n" +"[codeblock]\n" +"var some_string = \"Un,Deux,Trois,Quatre\"\n" +"var some_array = some_string.rsplit(\",\", true, 1)\n" +"print(some_array.size()) # Affiche 2\n" +"print(some_array[0]) # Affiche \"Un,Deux,Trois\"\n" +"print(some_array[1]) # Affiche \"Quatre\"\n" +"[/codeblock]" #: doc/classes/String.xml msgid "" @@ -63457,6 +64764,25 @@ msgid "" "If you need to split strings with more complex rules, use the [RegEx] class " "instead." msgstr "" +"Découpe une chaine de caractères par [code]delimiter[/code] et retourne un " +"tableau avec tous les éléments contenu entre ce délimiteur. Le " +"[code]delimiter[/code] peut être de n'importe quelle longueur.\n" +"Si la valeur maximale [code]maxsplit[/code] est spécifiée, seuls les " +"éléments à partir de la gauche jusqu'à [code]maxsplit[/code] éléments seront " +"retournés. La valeur par défaut [code]0[/code] retournera tous les " +"éléments.\n" +"Si vous n'avez besoin que d'un seul élément dans le tableau, la méthode " +"[method get_slice] est bien plus performante.\n" +"Exemple :\n" +"[codeblock]\n" +"var some_string = \"Un,Deux,Trois,Quatre\"\n" +"var some_array = some_string.split(\",\", true, 1)\n" +"print(some_array.size()) # Affiche 2\n" +"print(some_array[0]) # Affiche \"Un\"\n" +"print(some_array[1]) # Affiche \"Deux,Trois,Quatre\"\n" +"[/codeblock]\n" +"Si vous souhaitez découper une chaine à partir de règles plus complexes, " +"utilisez plutôt la classe [RegEx]." #: doc/classes/String.xml msgid "" @@ -65241,6 +66567,18 @@ msgid "" " var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n" "[/codeblock]" msgstr "" +"Lance une recherche à l'intérieur du texte. Les drapeaux de recherches " +"peuvent être spécifiés avec l'énumération [enum SearchFlags].\n" +"Retourne un [code]PoolIntArray[/code] vide si aucun résultat n'a été trouvé. " +"Sinon, la ligne et la colonne du résultat peuvent être accédées via les " +"indices définis dans l'énumération [enum SearchResult], par exemple :\n" +"[codeblock]\n" +"var result = search(key, flags, line, column)\n" +"if result.size() > 0:\n" +" # Résultat trouvé.\n" +" var res_line = result[TextEdit.SEARCH_RESULT_LINE]\n" +" var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]\n" +"[/codeblock]" #: doc/classes/TextEdit.xml msgid "" @@ -65768,6 +67106,11 @@ msgid "" "backend. In GLES2, their data can be accessed via scripting, but there is no " "way to render them in a hardware-accelerated manner." msgstr "" +"Une Texture3D est une [Texture] en 3 dimensions qui a une largeur, une " +"hauteur, et une profondeur. Voir aussi [TextureArray].\n" +"[b]Note :[/b] Les [TextureArray] ne peuvent être projetés que pour shaders " +"avec GLES3. Pour GLES2, leur données peuvent être accédées dans les scripts, " +"mais il n'y a aucun moyen de les afficher directement via la carte graphique." #: doc/classes/Texture3D.xml msgid "" @@ -65776,6 +67119,10 @@ msgid "" "code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/" "code] options." msgstr "" +"Créé une Texture3D avec la largeur [code]width[/code], la hauteur " +"[code]height[/code], et la profondeur [code]depth[/code]. Voir [enum Image." +"Format] pour les options de [code]format[/code]. Voir l'énumération [enum " +"TextureLayered.Flags] pour les options de [code]flags[/code]." #: doc/classes/TextureArray.xml msgid "Array of textures stored in a single primitive." @@ -65819,6 +67166,44 @@ msgid "" "backend. In GLES2, their data can be accessed via scripting, but there is no " "way to render them in a hardware-accelerated manner." msgstr "" +"Les [TextureArray] stockent un tableau de plusieurs [Image] dans une seule " +"[Texture] de base. Chaque claque de ce tableau de textures génère ses " +"propres mipmaps. C'est une bonne alternative pour les atlas de textures. " +"Voir aussi [Texture3D].\n" +"Les [TextureArray] doivent être affichés avec des shaders. Après " +"l'importation de vos fichiers en [TextureArray] et avoir défini les Zones " +"Horizontales et Verticales appropriées, vous pouvez l'afficher en " +"définissant un uniform dans le shader, par exemple (en 2D):\n" +"[codeblock]\n" +"shader_type canvas_item;\n" +"\n" +"uniform sampler2DArray tex;\n" +"uniform int index;\n" +"\n" +"void fragment() {\n" +" COLOR = texture(tex, vec3(UV.x, UV.y, float(index)));\n" +"}\n" +"[/codeblock]\n" +"Définissez l'entier de l'uniform \"index\" pour afficher une partie " +"spécifique de la texture comme défini dans Zones Horizontales et Verticales " +"dans l'importateur.\n" +"[b]Note :[/b] Lors de la projection d'une texture albedo depuis un tableau " +"de textures en 3D, l'indice de conversion sRGB vers l'espace linéaire " +"([code]hint_albedo[/code]) devrait être utilisé pour éviter les couleurs " +"d'être ternes :\n" +"[codeblock]\n" +"shader_type spatial;\n" +"\n" +"uniform sampler2DArray tex : hint_albedo;\n" +"uniform int index;\n" +"\n" +"void fragment() {\n" +" ALBEDO = texture(tex, vec3(UV.x, UV.y, float(index)));\n" +"}\n" +"[/codeblock]\n" +"[b]Note :[/b] Les [TextureArray] ne peuvent être projetés que pour shaders " +"avec GLES3. Pour GLES2, leur données peuvent être accédées dans les scripts, " +"mais il n'y a aucun moyen de les afficher directement via la carte graphique." #: doc/classes/TextureArray.xml msgid "" @@ -65827,11 +67212,17 @@ msgid "" "code] options. See [enum TextureLayered.Flags] enumerator for [code]flags[/" "code] options." msgstr "" +"Créé une TextureArray avec la largeur [code]width[/code], la hauteur " +"[code]height[/code], et la profondeur [code]depth[/code]. Voir [enum Image." +"Format] pour les options de [code]format[/code]. Voir l'énumération [enum " +"TextureLayered.Flags] pour les options de [code]flags[/code]." #: doc/classes/TextureButton.xml msgid "" "Texture-based button. Supports Pressed, Hover, Disabled and Focused states." msgstr "" +"Un bouton affiché avec une Texture. Supporte les états appuyé, survolé, " +"désactivé, et avec le focus." #: doc/classes/TextureButton.xml msgid "" @@ -65843,6 +67234,14 @@ msgid "" "See also [BaseButton] which contains common properties and methods " "associated with this node." msgstr "" +"Le [TextureButton] a les même fonctionnalités qu'un [Button], seulement " +"qu'il utilise une images plutôt qu'une ressource [Theme]. Il est plus rapide " +"à créer, mais ne supporte pas la localisation comme certains [Control] plus " +"complexes.\n" +"L'état \"normal\" doit contenir une texture ([member texture_normal]) ; les " +"textures des autres états sont facultatives.\n" +"Voir aussi [BaseButton] qui contient les propriétés et méthodes communes à " +"tous les types de bouton." #: doc/classes/TextureButton.xml msgid "" @@ -67622,6 +69021,13 @@ msgid "" "If [code]use_space[/code] is true, use a space instead of the letter T in " "the middle." msgstr "" +"Retourne la date et l'heure actuelle au format ISO 8601 (AAAA-MM-JJ'T'HH:MM:" +"SS).\n" +"Les valeurs retournées sont dans la zone horaire locale du système quand " +"[code]utc[/code] est false, sinon elles sont dans la zone horaire UTC " +"(méridien de Greenwich).\n" +"Si [code]use_space[/code] est true, un espace est utilisé plutôt que le " +"caractère 'T' au milieu." #: doc/classes/Time.xml msgid "" @@ -68427,6 +69833,8 @@ msgid "" "Returns a locale's language and its variant (e.g. [code]\"en_US\"[/code] " "would return [code]\"English (United States)\"[/code])." msgstr "" +"Retourne la langue de la locale et sa variation (ex. [code]\"fr_FR\"[/code] " +"retournera [code]\"Français (France)\"[/code])." #: doc/classes/TranslationServer.xml msgid "Removes the given translation from the server." @@ -68473,6 +69881,28 @@ msgid "" "through [method get_root]. You can use [method Object.free] on a [TreeItem] " "to remove it from the [Tree]." msgstr "" +"Ça affiche une arborescence d'éléments qui peuvent être sélectionnés, " +"développés ou réduits. Cette arborescence peut avoir plusieurs colonnes avec " +"des contrôles personnalisés comme des champs de texte, des boutons ou des " +"menus. C'est utile pour afficher des structures avec des interactions.\n" +"Les arborescence sont construites par le code, en utilisant des objets " +"[TreeItem] pour créer la structure. Ces objets ont une seule racine mais " +"plusieurs racines peuvent être utilisées si une racine factice (masquée) est " +"ajoutée.\n" +"[codeblock]\n" +"func _ready():\n" +" var tree = Tree.new()\n" +" var root = tree.create_item()\n" +" tree.set_hide_root(true)\n" +" var child1 = tree.create_item(root)\n" +" var child2 = tree.create_item(root)\n" +" var subchild1 = tree.create_item(child1)\n" +" subchild1.set_text(0, \"Subchild1\")\n" +"[/codeblock]\n" +"Pour itérer à travers les objets [TreeItem] dans un [Tree], utilisez [method " +"TreeItem.get_next] et [method TreeItem.get_children] après avoir obtenu la " +"racine avec [method get_root]. Vous pouvez utiliser [method Object.free] sur " +"un [TreeItem] pour le supprimer de son [Tree]." #: doc/classes/Tree.xml msgid "Clears the tree. This removes all items." @@ -69562,7 +70992,7 @@ msgstr "Arrête l'animation et retire tous les tweens." msgid "" "Resets a tween to its initial value (the one given, not the one before the " "tween), given its object and property/method pair. By default, all tweens " -"are removed, unless [code]key[/code] is specified." +"are reset, unless [code]key[/code] is specified." msgstr "" #: doc/classes/Tween.xml @@ -69777,9 +71207,8 @@ msgid "" msgstr "" #: doc/classes/Tweener.xml -#, fuzzy msgid "Emitted when the [Tweener] has just finished its job." -msgstr "Émis quand le nœud entre dans l'arborescence." +msgstr "Émis quand le [Tweener] a terminé son interpolation." #: doc/classes/UDPServer.xml msgid "Helper class to implement a UDP server." @@ -69994,6 +71423,44 @@ msgid "" "and [method add_undo_method] out; the same goes for properties. You can also " "register more than one method/property." msgstr "" +"Une aide pour gérer les opération annuler/refaire dans l'éditeur ou les " +"outils personnalisés. Cela fonctionne en enregistrant des modifications de " +"méthode et de propriété à l'intérieur \"d'actions\".\n" +"Le comportement classique est de créer une action, puis d'ajouter les appels " +"do/undo pour les modifications des fonctions et propriétés, puis d'appliquer " +"l'action (avec [method commit_action]).\n" +"Voici un exemple sur comment ajouter une action dans le [UndoRedo] de " +"l'éditeur de Godot, depuis un greffon :\n" +"[codeblock]\n" +"# Une classe qui hérite de EditorPlugin\n" +"\n" +"var undo_redo = get_undo_redo() # Une méthode de EditorPlugin.\n" +"\n" +"func do_something():\n" +" pass # Placer du code ici qui va faire quelque chose.\n" +"\n" +"func undo_something():\n" +" pass # Placer du code ici qui annule ce que \"do_something()\" a déjà " +"fait.\n" +"\n" +"func _on_MyButton_pressed():\n" +" var node = get_node(\"MyNode2D\")\n" +" undo_redo.create_action(\"Déplacer le nœud\")\n" +" undo_redo.add_do_method(self, \"do_something\")\n" +" undo_redo.add_undo_method(self, \"undo_something\") # Appelé quand " +"annulé (Ctrl+Z pressé)\n" +" undo_redo.add_do_property(node, \"position\", Vector2(100,100))\n" +" undo_redo.add_undo_property(node, \"position\", node.position) # Changé " +"quand annulé (Ctrl+Z pressé)\n" +" undo_redo.commit_action()\n" +"[/codeblock]\n" +"Les méthodes [method create_action], [method add_do_method], [method " +"add_undo_method], [method add_do_property], [method add_undo_property], et " +"[method commit_action] doivent être appelés une après l'autre, comme dans " +"cet exemple. Ne pas le faire ainsi peut provoquer des plantages.\n" +"Si vous n'avez pas besoin d'enregistrer une méthode, vous pouvez ignorer " +"[method add_do_method] et [method add_undo_method] ; et faire de même avec " +"les propriétés. Vous pouvez aussi enregistrer plus d'une méthode/propriété." #: doc/classes/UndoRedo.xml msgid "Register a method that will be called when the action is committed." @@ -70012,7 +71479,7 @@ msgstr "" #: doc/classes/UndoRedo.xml msgid "Register a method that will be called when the action is undone." -msgstr "" +msgstr "Enregistre une méthode qui sera appelée pour \"refaire\"." #: doc/classes/UndoRedo.xml msgid "Register a property value change for \"undo\"." @@ -75707,10 +77174,13 @@ msgid "Returns the value of a certain material's parameter." msgstr "Retourne la valeur du paramètre du matériau." #: doc/classes/VisualServer.xml +#, fuzzy msgid "" -"Returns the default value for the param if available. Otherwise returns an " -"empty [Variant]." +"Returns the default value for the param if available. Returns [code]null[/" +"code] otherwise." msgstr "" +"Retourne la valeur par défaut du paramètre nommé [code]name[/code] du " +"matériau." #: doc/classes/VisualServer.xml msgid "" @@ -76627,6 +78097,28 @@ msgid "" " $TextureRect.texture = proxy_texture\n" "[/codeblock]" msgstr "" +"Crée un lien de mise à jour entre deux textures, pareil aux " +"[ViewportTexture]. Quand la texture de base est une texture d'un [Viewport], " +"chaque fois que cette fenêtre d'affichage fait un nouveau rendu, la texture " +"de proxy sera automatiquement mise à jour.\n" +"Par exemple, ce code crée un lien d'une [ImageTexture] générique vers la " +"texture de rendu d'un [Viewport] en utilisant l'API du VisualServer :\n" +"[codeblock]\n" +"func _ready():\n" +" var viewport_rid = get_viewport().get_viewport_rid()\n" +" var viewport_texture_rid = VisualServer." +"viewport_get_texture(viewport_rid)\n" +"\n" +" var proxy_texture = ImageTexture.new()\n" +" var viewport_texture_image_data = VisualServer." +"texture_get_data(viewport_texture_rid)\n" +"\n" +" proxy_texture.create_from_image(viewport_texture_image_data)\n" +" var proxy_texture_rid = proxy_texture.get_rid()\n" +" VisualServer.texture_set_proxy(proxy_texture_rid, viewport_texture_rid)\n" +"\n" +" $TextureRect.texture = proxy_texture\n" +"[/codeblock]" #: doc/classes/VisualServer.xml msgid "" @@ -76672,6 +78164,25 @@ msgid "" "manually. For a further optimization see, [method " "viewport_set_render_direct_to_screen]." msgstr "" +"Copie la fenêtre d'affichage dans une région de l'écran spécifiée par " +"[code]rect[/code]. Si [member Viewport.render_direct_to_screen] est " +"[code]true[/code], la fenêtre d'affichage n'utilise pas de framebuffer et " +"son contenu est directement rendu à l'écran. Par contre, il est à noter que " +"la fenêtre d'affichage racine est affichée en dernier, elle est donc " +"affichée par dessus l'écran. Il est donc nécessaire de ne pas définir la " +"fenêtre d'affichage sur une surface qui ne couvre pas la surface où la " +"fenêtre d'affichage est attachée.\n" +"Par exemple, vous pouvez définir la fenêtre d'affichage racine de ne pas " +"faire de rendu du tout avec le code suivant :\n" +"[codeblock]\n" +"func _ready():\n" +" get_viewport().set_attach_to_screen_rect(Rect2())\n" +" $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))\n" +"[/codeblock]\n" +"Utiliser cette méthode peut permettre d'améliorer considérablement les " +"performances, surtout sur les appareils peut puissants. Par contre, cela " +"nécessite de gérer manuellement les fenêtres d'affichage. Pour plus " +"d'optimisations, voir [method viewport_set_render_direct_to_screen]." #: doc/classes/VisualServer.xml msgid "" @@ -80687,6 +82198,9 @@ msgid "" "[b]Note:[/b] This signal is [i]not[/i] emitted when used as high-level " "multiplayer peer." msgstr "" +"Émis quand un nouveau message est reçu.\n" +"[b]Note :[/b] Ce signal [i]n'est pas[/i] émis quand utilisé par un pair " +"multijoueur de haut-niveau." #: modules/webxr/doc_classes/WebXRInterface.xml msgid "AR/VR interface using WebXR." @@ -80851,6 +82365,12 @@ msgid "" "[url=https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource/" "targetRayMode]XRInputSource.targetRayMode[/url] for more information." msgstr "" +"Retourne le mode du rayon de la cible pour le [code]controller_id[/code] " +"spécifié.\n" +"Cela peut aider à interpréter les entrées provenant de ce contrôleur. Voir " +"[url=https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource/" +"targetRayMode]XRInputSource.targetRayMode[/url] (en anglais) pour plus " +"d'informations." #: modules/webxr/doc_classes/WebXRInterface.xml msgid "" @@ -81227,8 +82747,7 @@ msgid "" "They can be used as the server certificate in [method StreamPeerSSL." "accept_stream] (along with the proper [CryptoKey]), and to specify the only " "certificate that should be accepted when connecting to an SSL server via " -"[method StreamPeerSSL.connect_to_stream].\n" -"[b]Note:[/b] Not available in HTML5 exports." +"[method StreamPeerSSL.connect_to_stream]." msgstr "" #: doc/classes/X509Certificate.xml @@ -81284,12 +82803,16 @@ msgid "" "Gets the value of a certain attribute of the current element by name. This " "will raise an error if the element has no such attribute." msgstr "" +"Retourne la valeur d'un certain attribut de l'élément actuel par son nom. " +"Une erreur sera lancée si l'attribut n'existe pas." #: doc/classes/XMLParser.xml msgid "" "Gets the value of a certain attribute of the current element by name. This " "will return an empty [String] if the attribute is not found." msgstr "" +"Retourne la valeur d'un certain attribut de l'élément actuel par son nom. " +"Une [String] vide sera retournée si l'attribut n'existe pas." #: doc/classes/XMLParser.xml msgid "" @@ -81303,17 +82826,24 @@ msgid "" "current node type is neither [constant NODE_ELEMENT] nor [constant " "NODE_ELEMENT_END]." msgstr "" +"Retourne le nom du nœud de l'élément actuel. Une erreur sera lancée si le " +"type de nœud actuel n'est ni [constant NODE_ELEMENT] ni [constant " +"NODE_ELEMENT_END]." #: doc/classes/XMLParser.xml msgid "" "Gets the byte offset of the current node since the beginning of the file or " "buffer." msgstr "" +"Retourne le décalage en octet de l'actuel nœud depuis le début du fichier ou " +"de la mémoire tampon." #: doc/classes/XMLParser.xml msgid "" "Gets the type of the current node. Compare with [enum NodeType] constants." msgstr "" +"Retourne le type du nœud actuel. Comparer avec les constantes [enum " +"NodeType]." #: doc/classes/XMLParser.xml msgid "Check whether the current element has a certain attribute." |