summaryrefslogtreecommitdiff
path: root/doc/translations/fr.po
diff options
context:
space:
mode:
Diffstat (limited to 'doc/translations/fr.po')
-rw-r--r--doc/translations/fr.po2992
1 files changed, 2798 insertions, 194 deletions
diff --git a/doc/translations/fr.po b/doc/translations/fr.po
index e1d9250acb..587e9e0512 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-06-08 05:20+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."
@@ -3881,9 +3881,8 @@ msgid "Gamepad DPad right."
msgstr "DPad droite de la manette."
#: doc/classes/@GlobalScope.xml
-#, fuzzy
msgid "Gamepad SDL guide button."
-msgstr "Bouton guide du contrôleur de jeu SDL."
+msgstr "Bouton guide de la manette SDL."
#: doc/classes/@GlobalScope.xml
msgid "Gamepad SDL miscellaneous button."
@@ -4414,6 +4413,11 @@ msgid ""
"arbitrary values and can be empty. The list of values serves to suggest "
"possible values."
msgstr ""
+"Indique qu'une propriété peut être une valeur parmi une liste spécifiée via "
+"une chaîne de caractères telle que [code]\"Bonjour,Salut,Autre\"[/code].\n"
+"Contrairement à [constant PROPERTY_HINT_ENUM] une propriété accepte toujours "
+"des valeurs arbitraires et peut être vide. La liste des valeurs permet donc "
+"de suggérer des valeurs possibles."
#: doc/classes/@GlobalScope.xml
msgid ""
@@ -5372,10 +5376,22 @@ msgid ""
"code] will make it so the [code]run[/code] animation uses normal and "
"specular maps."
msgstr ""
+"[AnimatedSprite] est semblable au nœud [Sprite], sauf qu'il contient "
+"plusieurs textures comme des trames d'animation. Les animations sont créées "
+"à l'aide d'une ressource [SpriteFrames] qui vous permet d'importer des "
+"fichiers d'image (ou un dossier contenant ces fichiers) pour fournir les "
+"trames d'animation pour le sprite. La ressource [SpriteFrames] peut être "
+"configurée dans l'éditeur via le panneau de fond SpriteFrames.\n"
+"[b]Note :[/b] Vous pouvez associer un ensemble de cartes normales ou "
+"speculaires en créant des ressources supplémentaires [SpriteFrames] avec un "
+"suffixe [code]_normal[/code] ou [code]_specular[/code]. Par exemple, avoir 3 "
+"[SpriteFrames] ressources [code]run[/code], [code]run_normal[/code], et "
+"[code]run_specular[/code] le fera ainsi l'animation [code]run[/code] utilise "
+"des cartes normales et speculaires."
#: doc/classes/AnimatedSprite.xml doc/classes/AnimationPlayer.xml
msgid "2D Sprite animation"
-msgstr ""
+msgstr "Animation Sprite 2D"
#: doc/classes/AnimatedSprite.xml doc/classes/Area2D.xml
#: doc/classes/AudioStreamPlayer.xml doc/classes/Button.xml
@@ -5403,13 +5419,12 @@ msgstr ""
"Arrête l'animation actuelle (ne remit pas à zéro le compteur de trames)."
#: doc/classes/AnimatedSprite.xml
-#, fuzzy
msgid ""
"The current animation from the [member frames] resource. If this value "
"changes, the [code]frame[/code] counter is reset."
msgstr ""
-"L'animation actuelle de la ressource [code]frames[/code]. S'il y a un "
-"changement dans la valeur, le compteur [code]frame[/code] est remis à zéro."
+"L'animation actuelle de la ressource [member frames]. Si cette valeur "
+"change, le compteur [code]frame[/code] est remis à zéro."
#: doc/classes/AnimatedSprite.xml doc/classes/SpriteBase3D.xml
msgid "If [code]true[/code], texture will be centered."
@@ -5437,6 +5452,9 @@ msgid ""
"option to load, edit, clear, make unique and save the states of the "
"[SpriteFrames] resource."
msgstr ""
+"La ressource [SpriteFrames] contenant les animations. Vous permet de "
+"charger, modifier, effacer, rendre unique et sauvegarder les états de la "
+"ressource [SpriteFrames]."
#: doc/classes/AnimatedSprite.xml doc/classes/Sprite.xml
#: doc/classes/SpriteBase3D.xml
@@ -5656,14 +5674,13 @@ msgstr ""
"d'où c'était pausé quand cette propriété est mise à [code]false[/code]."
#: doc/classes/AnimatedTexture.xml
-#, fuzzy
msgid ""
"The maximum number of frames supported by [AnimatedTexture]. If you need "
"more frames in your animation, use [AnimationPlayer] or [AnimatedSprite]."
msgstr ""
"Le nombre maximum de trames supporté par [AnimatedTexture]. Si vous avez "
"besoin de plus de trames dans votre animation, utilisez [AnimationPlayer] ou "
-"[AnimatedSprite2D]."
+"[AnimatedSprite]."
#: doc/classes/Animation.xml
msgid "Contains data used to animate everything in the engine."
@@ -5810,14 +5827,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 +6141,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,26 +6415,25 @@ 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."
msgstr "Ajoute ou supprime un chemin pour le filtre."
#: doc/classes/AnimationNode.xml
-#, fuzzy
msgid ""
"Sets a custom parameter. These are used as local memory, because resources "
"can be reused across the tree or scenes."
@@ -6433,9 +6447,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 ""
@@ -6545,7 +6558,7 @@ msgstr "AnimationTree"
#: doc/classes/Quat.xml doc/classes/Skeleton.xml doc/classes/SpotLight.xml
#: doc/classes/StaticBody.xml doc/classes/WorldEnvironment.xml
msgid "Third Person Shooter Demo"
-msgstr ""
+msgstr "Démo de tir à la troisième personne"
#: doc/classes/AnimationNodeAnimation.xml
msgid "Input animation to use in an [AnimationNodeBlendTree]."
@@ -6570,7 +6583,7 @@ msgstr ""
#: doc/classes/MeshInstance.xml doc/classes/MeshLibrary.xml
#: doc/classes/ProjectSettings.xml doc/classes/Transform.xml
msgid "3D Platformer Demo"
-msgstr ""
+msgstr "Démo de jeu de plateforme en 3D"
#: doc/classes/AnimationNodeAnimation.xml
msgid ""
@@ -6883,12 +6896,16 @@ msgid ""
"The blend space plays the animation of the node the blending position is "
"closest to. Useful for frame-by-frame 2D animations."
msgstr ""
+"L'espace de mélange joue l'animation du nœud la position de mélange le plus "
+"proche. Utilisable pour les animations 2D trame par trame."
#: doc/classes/AnimationNodeBlendSpace2D.xml
msgid ""
"Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at "
"the last animation's playback position."
msgstr ""
+"Semblable à [constant BLEND_MODE_DISCRETE], mais commence la nouvelle "
+"animation à la dernière position de lecture de l'animation suivante."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "[AnimationTree] node resource that contains many blend type nodes."
@@ -6902,18 +6919,27 @@ msgid ""
"An [AnimationNodeOutput] node named [code]output[/code] is created by "
"default."
msgstr ""
+"Ce nœud peut contenir une sous-arborescence d'autres nœuds de type "
+"mélangeur, tels que les [AnimationNodeTransition], [AnimationNodeBlend2], "
+"[AnimationNodeBlend3], [AnimationNodeOneShot], etc. C'est l'une des racines "
+"les plus couramment utilisées.\n"
+"Un nœud [AnimationNodeOutput] nommé [code]output[/code] est créé par défaut."
#: doc/classes/AnimationNodeBlendTree.xml
msgid ""
"Adds an [AnimationNode] at the given [code]position[/code]. The [code]name[/"
"code] is used to identify the created sub-node later."
msgstr ""
+"Ajoute un [AnimationNode] à la [code]position[/code] donnée. Le nom "
+"[code]name[/code] est utilisé pour identifier le sous-node créé plus tard."
#: doc/classes/AnimationNodeBlendTree.xml
msgid ""
"Connects the output of an [AnimationNode] as input for another "
"[AnimationNode], at the input port specified by [code]input_index[/code]."
msgstr ""
+"Connecte la sortie d'un [AnimationNode] à l'entrée d'un autre "
+"[AnimationNode], au port d'entrée spécifié par [code]input_index[/code]."
#: doc/classes/AnimationNodeBlendTree.xml
msgid "Disconnects the node connected to the specified input."
@@ -6985,6 +7011,9 @@ msgid ""
"sub-animation and return once it finishes. Blend times for fading in and out "
"can be customized, as well as filters."
msgstr ""
+"Une ressource à ajouter à un [AnimationNodeBlendTree]. Ce nœud exécutera une "
+"sous-animation et retournera quand il aura fini. Les temps de foudu entrant "
+"et sortant peuvent être personnalisés, ainsi que les filtres."
#: doc/classes/AnimationNodeOneShot.xml
msgid ""
@@ -7073,6 +7102,8 @@ msgstr "Retourne le nom du nœud d'animation donné."
#: doc/classes/AnimationNodeStateMachine.xml
msgid "Returns the given node's coordinates. Used for display in the editor."
msgstr ""
+"Retourne les coordonnées du node donnée. Utilisé pour l'affichage dans "
+"l'éditeur."
#: doc/classes/AnimationNodeStateMachine.xml
msgid "Returns the given transition."
@@ -7098,6 +7129,7 @@ msgstr "Retourne [code]true[/code] si le graphe contient le nœud spécifié."
msgid ""
"Returns [code]true[/code] if there is a transition between the given nodes."
msgstr ""
+"Retourne [code]true[/code] s'il y a une transition entre les nœuds spécifiés."
#: doc/classes/AnimationNodeStateMachine.xml
msgid "Deletes the given node from the graph."
@@ -7210,12 +7242,24 @@ msgid ""
"(linear_velocity.x == 0)\n"
"[/codeblock]"
msgstr ""
+"Active l'avance automatique lorsque cette condition est définie. Le nom "
+"fourni deviendra un paramètre booléen pour le [AnimationTree] qui peut être "
+"contrôlé à partir du code (voir [url=$DOCS_URL/tutorials/animation/tree."
+"html#controlling-from-code][/url]). Par exemple, si [membre AnimationTree."
+"tree_root] est un [AnimationNodeStateMachine] et que [member "
+"advance_condition] est définit à [code]\"idle\"[/code] :\n"
+"[codeblock]\n"
+"$animation_tree[\"parameters/conditions/idle\"] = is_on_floor and "
+"(linear_velocity.x == 0)\n"
+"[/codeblock]"
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid ""
"Turn on the transition automatically when this state is reached. This works "
"best with [constant SWITCH_MODE_AT_END]."
msgstr ""
+"Active la transition automatiquement lorsque cet état est atteint. Cela "
+"fonctionne mieux avec [constant SWITCH_MODE_AT_END]."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid ""
@@ -7231,6 +7275,9 @@ msgid ""
"via [method AnimationNodeStateMachinePlayback.travel] or [member "
"auto_advance]."
msgstr ""
+"Les transitions les moins prioritaires sont préférées lorsque vous voyagez à "
+"travers l'arborescence via [method AnimationNodeStateMachinePlayback.travel] "
+"ou [membre auto_advance]."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid "The transition type."
@@ -7249,18 +7296,24 @@ msgid ""
"Switch to the next state immediately. The current state will end and blend "
"into the beginning of the new one."
msgstr ""
+"Passe à l'état suivant immédiatement. L'état actuel se terminera et se "
+"fondra au début du nouveau."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid ""
"Switch to the next state immediately, but will seek the new state to the "
"playback position of the old state."
msgstr ""
+"Passe immédiatement à l'état suivant, mais cherchera le nouvel état à la "
+"position de lecture de l'ancien état."
#: doc/classes/AnimationNodeStateMachineTransition.xml
msgid ""
"Wait for the current state playback to end, then switch to the beginning of "
"the next state animation."
msgstr ""
+"Attend que la lecture de l'état actuelle se termine, puis passe au début de "
+"la prochaine animation de l'état."
#: doc/classes/AnimationNodeTimeScale.xml
msgid "A time-scaling animation node to be used with [AnimationTree]."
@@ -7272,6 +7325,8 @@ msgid ""
"Allows scaling the speed of the animation (or reversing it) in any children "
"nodes. Setting it to 0 will pause the animation."
msgstr ""
+"Permet de changer la vitesse de l'animation (ou de l'inverser) dans "
+"n'importe quel nœud enfant. Définir cette valeur à 0 arrêtera l'animation."
#: doc/classes/AnimationNodeTimeSeek.xml
msgid "A time-seeking animation node to be used with [AnimationTree]."
@@ -7299,6 +7354,23 @@ msgid ""
"animation_tree[\"parameters/Seek/seek_position\"] = 12.0\n"
"[/codeblock]"
msgstr ""
+"Ce nœud peut être utilisé pour avancer la lecture de n'importe quel autre "
+"nœud enfant du graphe d'animation. Utilisez ce type de nœud pour jouer une "
+"[Animation] depuis le début ou à une certaine position dans le "
+"[AnimationNodeBlendTree]. Après avoir défini le temps et changé la lecture "
+"de l'animation, le nœud s'arrêtera automatiquement à la trame suivante en "
+"définissant sa [code]seek_position[/code] à la valeur [code]-1.0[/code].\n"
+"[codeblock]\n"
+"# Jouer l'animation enfant depuis le début.\n"
+"animation_tree.set(\"parameters/Seek/seek_position\", 0.0)\n"
+"# Syntaxe alternative (avec le même résultat qu'au-dessus).\n"
+"animation_tree[\"parameters/Seek/seek_position\"] = 0.0\n"
+"\n"
+"# Jouer l'animation enfant à la 12ème seconde.\n"
+"animation_tree.set(\"parameters/Seek/seek_position\", 12.0)\n"
+"# Syntaxe alternative (avec le même résultat qu'au-dessus).\n"
+"animation_tree[\"parameters/Seek/seek_position\"] = 12.0\n"
+"[/codeblock]"
#: doc/classes/AnimationNodeTransition.xml
msgid "A generic animation transition node for [AnimationTree]."
@@ -7310,6 +7382,9 @@ msgid ""
"[AnimationNodeStateMachine]. Animations can be connected to the inputs and "
"transition times can be specified."
msgstr ""
+"Une simple machine à états pour les cas qui n'exigent pas une "
+"[AnimationNodeStateMachine] plus avancée. Les animations peuvent être "
+"connectées aux entrées et les temps de transition peuvent être spécifiés."
#: doc/classes/AnimationNodeTransition.xml
msgid "The number of available input ports for this node."
@@ -7338,6 +7413,19 @@ msgid ""
"a [Tween] node, but it requires doing everything by code.\n"
"Updating the target properties of animations occurs at process time."
msgstr ""
+"Un lecteur d'animation est utilisé pour la lecture générale des ressources "
+"[Animation]. Il contient un dictionnaire d'animations (chacune référencée "
+"par nom) et des temps de mélange personnalisés entre leurs transitions. De "
+"plus, les animations peuvent être jouées et mélangées dans différents "
+"canaux.\n"
+"[AnimationPlayer] est plus adapté que [Tween] pour les animations où vous "
+"connaissez les valeurs finales à l'avance. Par exemple, la transition à "
+"l'écran est plus facile avec un nœud [AnimationPlayer] grâce aux outils "
+"d'animation fournis par l'éditeur. Cet exemple particulier peut également "
+"être mis en œuvre avec un nœud [Tween], mais il nécessite de la faire "
+"complètement par le code.\n"
+"La mise à jour des propriétés cibles des animations se produit au moment du "
+"processus."
#: doc/classes/AnimationPlayer.xml
#, fuzzy
@@ -7357,6 +7445,10 @@ msgid ""
"animation. [code]delta[/code] is the time in seconds to shift. Events "
"between the current frame and [code]delta[/code] are handled."
msgstr ""
+"Déplace la position dans le ligne temporelle de l'animation et met "
+"immédiatement à jour l'animation. [code]delta[/code] est le moment en "
+"secondes à changer. Les événements entre la trame actuele et [code]delta[/"
+"code] sont gérés."
#: doc/classes/AnimationPlayer.xml
msgid "Returns the name of the next animation in the queue."
@@ -7375,6 +7467,9 @@ msgid ""
"[AnimationPlayer] caches animated nodes. It may not notice if a node "
"disappears; [method clear_caches] forces it to update the cache again."
msgstr ""
+"[AnimationPlayer] met en cache des nœuds animés. Il peut ne pas remarquer si "
+"un nœud disparaît ; [méthode clear_caches] le force à mettre à jour le cache "
+"à nouveau."
#: doc/classes/AnimationPlayer.xml
msgid "Clears all queued, unplayed animations."
@@ -7391,6 +7486,8 @@ msgid ""
"Returns the [Animation] with key [code]name[/code] or [code]null[/code] if "
"not found."
msgstr ""
+"Retourne le [Animation] avec la clé [code]name[/code] ou [code]null[/code] "
+"s'il n'est pas trouvé."
#: doc/classes/AnimationPlayer.xml
msgid "Returns the list of stored animation names."
@@ -7411,6 +7508,10 @@ msgid ""
"[code]custom_speed[/code] argument specified when calling the [method play] "
"method."
msgstr ""
+"Retourne la vitesse réelle de lecture de l'animation actuelle ou 0 si n'est "
+"pas jouée. Cette vitesse est la propriété [member playback_speed] multipliée "
+"par l'argument [code]custom_speed[/code] spécifié lors de l'appel de la "
+"méthode [method play]."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7424,6 +7525,8 @@ msgid ""
"Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] "
"with key [code]name[/code]."
msgstr ""
+"Retourne [code]true[/code] si [AnimationPlayer] stocke une [Animation] avec "
+"la clé [code]name[/code]."
#: doc/classes/AnimationPlayer.xml
msgid "Returns [code]true[/code] if playing an animation."
@@ -7454,6 +7557,10 @@ msgid ""
"code] and [code]from_end = true[/code], so see its description for more "
"information."
msgstr ""
+"Joue à l'envers l'animation avec la clé [code]name[/code].\n"
+"Cette méthode est un raccourci pour [method play] avec [code]custom_speed = "
+"-1.0[/code] et [code]from_end = true[/code], ainsi voir sa description pour "
+"plus d'informations."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7461,6 +7568,10 @@ msgid ""
"[b]Note:[/b] If a looped animation is currently playing, the queued "
"animation will never play unless the looped animation is stopped somehow."
msgstr ""
+"Ajouter une animation pour être lue une fois que l'actuelle est terminée.\n"
+"[b]Note :[/b] Si une animation en boucle joue actuellement, l'animation "
+"ajoutée ne sera jamais joué à moins que l'animation en boucle ne soit "
+"arrêtée."
#: doc/classes/AnimationPlayer.xml
msgid "Removes the animation with key [code]name[/code]."
@@ -7503,6 +7614,13 @@ msgid ""
"[method play_backwards] without arguments or with the same animation name as "
"[member assigned_animation] will resume the animation."
msgstr ""
+"Arrête ou met en pause l'animation en cours. Si [code]reset[/code] est "
+"[code]true[/code], la position de l'animation est réinitialisée à [code]0[/"
+"code] et la vitesse de lecture est réinitialisée à [code]1.0[/code].\n"
+"Si [code]reset[/code] est [code]false[/code], la [membre "
+"current_animation_position] sera gardée et appeller [method play] ou [method "
+"play_backwards] sans arguments ou avec le même nom d'animation que [member "
+"assigned_animation] reprendra l'animation à cette position."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7516,7 +7634,7 @@ msgstr ""
#: doc/classes/AnimationPlayer.xml
msgid "The name of the animation to play when the scene loads."
-msgstr ""
+msgstr "Le nom de l'animation à jouer dès que la scène est chargée."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7529,6 +7647,15 @@ msgid ""
"get the currently playing animation, and internally for animation playback "
"tracks. For more information, see [Animation]."
msgstr ""
+"Le nom de l'animation en cours. Si aucune animation n'est jouée, la valeur "
+"de la propriété est une chaîne de caractères vide. Changer cette valeur ne "
+"redémarre pas l'animation. Voir [methode play] pour plus d'informations sur "
+"les animations.\n"
+"[b]Note :[/b] Bien que cette propriété apparaisse dans l'inspecteur, elle "
+"n'était pas censée être modifiée et n'est pas enregistrée. Cette propriété "
+"est principalement utilisée pour obtenir l'animation en cours, et en interne "
+"pour les pistes de lecture d'animation. Pour plus d'informations, voir "
+"[Animation]."
#: doc/classes/AnimationPlayer.xml
msgid "The length (in seconds) of the currently being played animation."
@@ -7540,23 +7667,28 @@ msgstr "La position (en secondes) de l'animation actuellement jouée."
#: doc/classes/AnimationPlayer.xml
msgid "The call mode to use for Call Method tracks."
-msgstr ""
+msgstr "Le mode d'appel à utiliser pour les pistes \"Call Method\"."
#: doc/classes/AnimationPlayer.xml
msgid ""
"If [code]true[/code], updates animations in response to process-related "
"notifications."
msgstr ""
+"Si [code]true[/code], met à jour les animations en réponse aux notifications "
+"liées au processus."
#: doc/classes/AnimationPlayer.xml
msgid ""
"The default time in which to blend animations. Ranges from 0 to 4096 with "
"0.01 precision."
msgstr ""
+"Le moment par défaut où les animations sont mélangées. L'intervalle va de 0 "
+"à 4096 avec une précision de 0,01."
#: doc/classes/AnimationPlayer.xml
msgid "The process notification in which to update animations."
msgstr ""
+"La notification de processus dans laquelle mettre à jour les animations."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7564,6 +7696,9 @@ msgid ""
"animation plays at normal speed. If it's 0.5, then it plays at half speed. "
"If it's 2, then it plays at double speed."
msgstr ""
+"Le rapport d'échelle de vitesse. Par exemple, si cette valeur est 1, alors "
+"l'animation joue à la vitesse normale. À 0,5, elle est joué à deux fois "
+"moins vite. À 2, elle est jouée deux fois plus vite."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7574,10 +7709,16 @@ msgid ""
"defined by the reset animation, if any, with the editor keeping the values "
"that the nodes had before saving."
msgstr ""
+"Ceci est utilisé par l'éditeur. Si défini à [code]true[/code], la scène sera "
+"sauvegardée avec les effets de l'animation réinitialisée appliquée (comme si "
+"elle avait été cherchée à temps 0), puis rétablie après l'enregistrement.\n"
+"En d'autres termes, le fichier de scène sauvegardé contiendra la \"pose par "
+"défaut\", telle que définie par l'animation réinitialisée, le cas échéant, "
+"avec l'éditeur gardant les valeurs que les nœuds avaient avant de sauver."
#: doc/classes/AnimationPlayer.xml
msgid "The node from which node path references will travel."
-msgstr ""
+msgstr "Le nœud à partir duquel les références de chemin de nœud vont aller."
#: doc/classes/AnimationPlayer.xml
msgid ""
@@ -7586,6 +7727,10 @@ msgid ""
"[b]Note:[/b] The signal is not emitted when the animation is changed via "
"[method play] or from [AnimationTree]."
msgstr ""
+"Émis lorsqu'une animation ajouté à la file jouera après la fin de "
+"l'animation précédente. Voir [methode queue].\n"
+"[b]Note :[/b] Le signal n'est pas émis lorsque l'animation est changée via "
+"[method play] ou depuis le [AnimationTree]."
#: doc/classes/AnimationPlayer.xml
msgid "Notifies when an animation finished playing."
@@ -7600,6 +7745,8 @@ msgid ""
"Notifies when the caches have been cleared, either automatically, or "
"manually via [method clear_caches]."
msgstr ""
+"Notifie quand les caches ont été effacées, soit automatiquement ou soit "
+"manuellement par [méthode clear_caches]."
#: doc/classes/AnimationPlayer.xml doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7652,6 +7799,14 @@ msgid ""
"[AnimationPlayer] node should be used solely for adding, deleting, and "
"editing animations."
msgstr ""
+"Un nœud à utiliser pour des transitions d'animation complexes dans un "
+"[AnimationPlayer].\n"
+"[b]Note :[/b] Quand lié à un [AnimationPlayer], plusieurs propriétés et "
+"méthodes du [AnimationPlayer] correspondant ne fonctionneront pas comme "
+"prévu. La lecture et les transitions doivent être gérées en utilisant "
+"seulement le [AnimationTree] et son [AnimationNode]. Le nœud "
+"[AnimationPlayer] doit être utilisé uniquement pour ajouter, supprimer et "
+"éditer des animations."
#: doc/classes/AnimationTree.xml
msgid "Using AnimationTree"
@@ -7669,6 +7824,11 @@ msgid ""
"track of type [constant Animation.TYPE_TRANSFORM], returns an identity "
"transformation. See also [member root_motion_track] and [RootMotionView]."
msgstr ""
+"Récupére le mouvement du [membre root_motion_track] sous forme de "
+"[Transform] qui peut être utilisée ailleurs. Si [member root_motion_track] "
+"n'est pas un chemin vers une piste de type [constant Animation."
+"TYPE_TRANSFORM], retourne la transformation d'identité. Voir aussi [membrer "
+"root_motion_track] et [RootMotionView]."
#: doc/classes/AnimationTree.xml
msgid "If [code]true[/code], the [AnimationTree] will be processing."
@@ -7683,6 +7843,8 @@ msgid ""
"The process mode of this [AnimationTree]. See [enum AnimationProcessMode] "
"for available modes."
msgstr ""
+"Le mode de processus de ce [AnimationTree]. Voir [enum AnimationProcessMode] "
+"pour les modes disponibles."
#: doc/classes/AnimationTree.xml
msgid ""
@@ -7718,12 +7880,16 @@ msgid ""
"The animations will progress during the physics frame (i.e. [method Node."
"_physics_process])."
msgstr ""
+"Les animations progresseront pendant les trames physiques (dans [méthode "
+"Node._physics_process)]"
#: doc/classes/AnimationTree.xml
msgid ""
"The animations will progress during the idle frame (i.e. [method Node."
"_process])."
msgstr ""
+"Les animations progresseront pendant les trames d'inactivité (dans [méthode "
+"Node._process)]"
#: doc/classes/AnimationTree.xml
msgid "The animations will only progress manually (see [method advance])."
@@ -7736,6 +7902,8 @@ msgid ""
"[i]Deprecated.[/i] Animation player that uses a node graph for blending "
"animations. Superseded by [AnimationTree]."
msgstr ""
+"[i]Obsolète.[/i] Le lecteur d'animation qui utilise un graph de nœuds pour "
+"mélanger des animations. Remplacé par [AnimationTree]."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7747,6 +7915,13 @@ msgid ""
"depending on the graph.\n"
"See [AnimationTree] for a more full-featured replacement of this node."
msgstr ""
+"[i]Obsolète[/i]. Un outil de graph de nœuds pour mélanger plusieurs "
+"animations liées à un [AnimationPlayer]. particulièrement utile pour animer "
+"des personnages ou d'autres éléments à base de squelette. Il peut combiner "
+"plusieurs animations pour former la pose souhaitée.\n"
+"Il prend des [Animation] d'un nœud [AnimationPlayer] et les mélange selon ce "
+"graph.\n"
+"Voir [AnimationTree] pour un remplacement plus complet de ce nœud."
#: doc/classes/AnimationTreePlayer.xml
msgid "Adds a [code]type[/code] node to the graph with name [code]id[/code]."
@@ -7765,12 +7940,16 @@ msgid ""
"Returns the [AnimationPlayer]'s [Animation] bound to the "
"[AnimationTreePlayer]'s animation node with name [code]id[/code]."
msgstr ""
+"Retourne la [Animation] du [AnimationPlayer] lié au nœud d'animation du "
+"[AnimationTreePlayer] nommé [code]id[/code]."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
"Returns the name of the [member master_player]'s [Animation] bound to this "
"animation node."
msgstr ""
+"Retourne le nom de la [Animation] du [member master_player] lié à ce nœud "
+"d'animation."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7792,6 +7971,9 @@ msgid ""
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""
+"Si [code]enable[/code] est [code]true[/code], le nœud d'animation avec "
+"l'identifiant [code]id[/code] désactive la piste en modifiant la propriété "
+"[code]path[/code]. Les enfants modifiés du node's continuent d'être animés."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7800,13 +7982,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
@@ -7821,6 +8002,12 @@ msgid ""
"At 0, output is input A. Towards 1, the influence of A gets lessened, the "
"influence of B gets raised. At 1, output is input B."
msgstr ""
+"Définit la quantité de mélange d'un nœud Blend2 à partir de son nom et sa "
+"valeur.\n"
+"Un nœud Blend2 mélange deux animations (A et B) avec une quantité entre 0 et "
+"1.\n"
+"À 0, la sortie est l'entrée A. Jusqu'à 1, l'influence de A baisse, et celle "
+"de B augmente. À 1, la sortie est l'entrée B."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7828,6 +8015,9 @@ msgid ""
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""
+"Si [code]enable[/code] est [code]true[/code], le nœud Blend2 avec le nom "
+"[code]id[/code] désactive la piste en modifiant la propriété [code]path[/"
+"code]. Les enfants modifiés du node's continuent d'être animés."
#: doc/classes/AnimationTreePlayer.xml
#, fuzzy
@@ -7844,6 +8034,13 @@ msgid ""
"input A. From 0 to 1, the influence of A gets lessened, the influence of B+ "
"gets raised and the influence of B+ is 0. At 1, output is input B+."
msgstr ""
+"Définit la quantité de mélange d'un nœud Blend3 donné son nom et sa valeur.\n"
+"A Blend3 Node mélange trois animations (A, B-, B+) avec la quantité entre -1 "
+"et 1.\n"
+"À -1, la sortie est l'entrée B-. De -1 à 0, l'influence de B- se réduit, et "
+"celle de A augmente pendant que cette de B+ est à 0. À 0, la sortie est "
+"l'entrée A. De 0 à 1, l'influence d'A diminue, celle de B+ augmente et celle "
+"de B+ est à 0. À 1, la sortie est l'entrée B+."
#: doc/classes/AnimationTreePlayer.xml
#, fuzzy
@@ -7856,6 +8053,9 @@ msgid ""
"A Blend4 Node blends two pairs of animations.\n"
"The two pairs are blended like Blend2 and then added together."
msgstr ""
+"Définit la quantité de mélange d'un nœud Blend4 donné son nom et sa valeur.\n"
+"A Blend4 Node mélange deux paires d'animations.\n"
+"Les deux paires sont mélangées comme Blend2 et ensuite ajoutées ensemble."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -7869,6 +8069,8 @@ msgstr ""
msgid ""
"Disconnects nodes connected to [code]id[/code] at the specified input slot."
msgstr ""
+"Déconnecte les nœuds connectés à [code]id[/code] à l'emplacement d'entrée "
+"spécifié."
#: doc/classes/AnimationTreePlayer.xml
msgid "Returns a [PoolStringArray] containing the name of all nodes."
@@ -7884,6 +8086,9 @@ msgid ""
"Sets the mix amount of a Mix node given its name and value.\n"
"A Mix node adds input b to input a by the amount given by ratio."
msgstr ""
+"Définit la quantité de mélange d'un nœud Mix donné son nom et sa valeur.\n"
+"Un nœud Mix ajoute l'entrée b à l'entrée a suivan la quantité donnée sous "
+"forme de ratio."
#: doc/classes/AnimationTreePlayer.xml
msgid "Check if a node exists (by name)."
@@ -7902,9 +8107,8 @@ msgid "Returns the input source for a given node input."
msgstr "Retourne la source entrante pour l'entrée spécifiée du nœud."
#: doc/classes/AnimationTreePlayer.xml
-#, fuzzy
msgid "Returns position of a node in the graph given its name."
-msgstr "Retourne la position du nœud spécifié dans le graphique du nuanceur."
+msgstr "Retourne la position du nœud spécifié dans son nom dans le graph."
#: doc/classes/AnimationTreePlayer.xml
msgid "Gets the node type, will return from [enum NodeType] enum."
@@ -7983,6 +8187,9 @@ msgid ""
"[code]id[/code] turns off the track modifying the property at [code]path[/"
"code]. The modified node's children continue to animate."
msgstr ""
+"Si [code]enable[/code] est [code]true[/code], le nœud OneShot avec "
+"l'identifiant [code]id[/code] désactive la piste en modifiant la propriété à "
+"[code]path[/code]. Les enfants modifiés du node's continuent d'être animés."
#: doc/classes/AnimationTreePlayer.xml
msgid "Starts a OneShot node given its name."
@@ -7998,6 +8205,9 @@ msgid ""
"animation nodes. Needed when external sources modify the animation nodes' "
"state."
msgstr ""
+"Recalcule manuellement le cache des informations générées de la piste à "
+"partir de nœuds d'animation. Nécessaire quand des sources extérieures "
+"modifient l'état des nœuds d'animation."
#: doc/classes/AnimationTreePlayer.xml
msgid "Removes the animation node with name [code]id[/code]."
@@ -8021,6 +8231,12 @@ msgid ""
"If applied after a blend or mix, affects all input animations to that blend "
"or mix."
msgstr ""
+"Définit l'échelle temporelle du nœud TimeScale avec le nom [code]id[/code] à "
+"[code]scale[/code].\n"
+"Le nœud TimeScale est utilisé pour accélérer [Animation] si l'échelle est "
+"supérieure à 1 ou la ralentir si elle est inférieure à 1.\n"
+"S'il est appliqué après un mélange, affecte toutes les animations d'entrée "
+"de ce mélange."
#: doc/classes/AnimationTreePlayer.xml
msgid ""
@@ -8178,7 +8394,7 @@ msgstr ""
#: doc/classes/Area.xml doc/classes/QuadMesh.xml doc/classes/Viewport.xml
#: doc/classes/ViewportTexture.xml
msgid "GUI in 3D Demo"
-msgstr ""
+msgstr "Démo des interfaces en 3D"
#: doc/classes/Area.xml
msgid ""
@@ -8189,6 +8405,13 @@ msgid ""
"list is modified once during the physics step, not immediately after objects "
"are moved. Consider using signals instead."
msgstr ""
+"Retourne une liste de [Area] qui sont en collision. Le calque [membre "
+"CollisionObject.collision_layer] de l'aire de chevauchement doit faire "
+"partie [membre CollisionObject.collision_mask] pour être détectée.\n"
+"Pour des raisons de performance (les collisions sont toutes traitées en même "
+"temps) cette liste est modifiée une fois pendant l'étape physique, pas "
+"immédiatement après le déplacement des objets. Considérez plutôt utiliser "
+"des signaux."
#: doc/classes/Area.xml
msgid ""
@@ -8199,6 +8422,13 @@ msgid ""
"list is modified once during the physics step, not immediately after objects "
"are moved. Consider using signals instead."
msgstr ""
+"Retourne une liste de [PhysicsBody] qui sont en collision. Le calque [membre "
+"CollisionObject.collision_layer] du corps de chevauchement doit faire partie "
+"[membre CollisionObject.collision_mask] pour être détecté.\n"
+"Pour des raisons de performance (les collisions sont toutes traitées en même "
+"temps) cette liste est modifiée une fois pendant l'étape physique, pas "
+"immédiatement après le déplacement des objets. Considérez plutôt utiliser "
+"des signaux."
#: doc/classes/Area.xml
msgid ""
@@ -8207,6 +8437,11 @@ msgid ""
"For performance, list of overlaps is updated once per frame and before the "
"physics step. Consider using signals instead."
msgstr ""
+"Si [code]true[/code], la zone donnée recouvre la Area.\n"
+"[b]Note :[/b] Le résultat de ce test n'est pas immédiat après le déplacement "
+"des objets. Pour la performance, la liste des chevauchements est mise à jour "
+"une fois par trame et avant l'étape physique. Considérez plutôt utiliser des "
+"signaux."
#: doc/classes/Area.xml
msgid ""
@@ -8218,6 +8453,15 @@ msgid ""
"instance (while GridMaps are not physics body themselves, they register "
"their tiles with collision shapes as a virtual physics body)."
msgstr ""
+"Si [code]true[/code], le corps physique donné recouvre la Area.\n"
+"[b]Note :[/b] Le résultat de ce test n'est pas immédiat après le déplacement "
+"des objets. Pour la performance, la liste des chevauchements est mise à jour "
+"une fois par cadre et avant l'étape physique. Considérez plutôt utiliser des "
+"signaux.\n"
+"L'argument [code]body[/code] peut être soit un [PhysicsBody] ou une instance "
+"[GridMap] (bien que GridMap ne sont pas le corps physique eux-mêmes, ils "
+"enregistrent leurs tuiles avec des formes de collision comme un corps "
+"physique virtuel)."
#: doc/classes/Area.xml
msgid ""
@@ -8260,6 +8504,8 @@ msgid ""
"The area's gravity vector (not normalized). If gravity is a point (see "
"[member gravity_point]), this will be the point of attraction."
msgstr ""
+"Le vecteur de gravité (non normalisé). Si la gravité est un point (voir "
+"[membre gravité_point,)], ce sera le point d'attraction."
#: doc/classes/Area.xml
msgid ""
@@ -8343,6 +8589,17 @@ msgid ""
"the [PhysicsServer]. Get the [CollisionShape] node with [code]self."
"shape_owner_get_owner(local_shape_index)[/code]."
msgstr ""
+"Émis lorsque l'une des [Shape] de l'autre Area entre dans l'une des [Shape] "
+"de cette Area. Nécessite [member monitoring] à [code]true[/code].\n"
+"[code]area_rid[/code] est le [RID] du [CollisionObject] de l'autre Area "
+"utilisée par le [PhysicsServer].\n"
+"[code]area[/code] l'autre Area.\n"
+"[code]area_shape_index[/code] est l'index de la [Shape] de l'autre Area "
+"utilisée par le [PhysicsServer]. Obtenez le nœud [CollisionShape] avec "
+"[code]area.shape_owner_get_owner(area_shape_index)[/code].\n"
+"[code]local_shape_index[/code] est l'index de la [Shape] de cette Area "
+"utilisée par le [PhysicsServer]. Obtenez le nœud [CollisionShape] avec "
+"[code]self.shape_owner_get_owner(local_shape_index)[/code]."
#: doc/classes/Area.xml
msgid ""
@@ -8352,6 +8609,11 @@ msgid ""
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""
+"Émis quand un [PhysicsBody] ou un [GridMap] entre dans cette Area. Nécessite "
+"[member monitoring] d'être définie à [code]true[/code]. Les [GridMap] sont "
+"détectés si la [MeshLibrary] à des [Shape] de collision.\n"
+"Le [code]body[/code] est le [Node], s'il exist dans l'arborescence, de "
+"l'autre [PhysicsBody] ou [GridMap]."
#: doc/classes/Area.xml
msgid ""
@@ -8361,6 +8623,11 @@ msgid ""
"[code]body[/code] the [Node], if it exists in the tree, of the other "
"[PhysicsBody] or [GridMap]."
msgstr ""
+"Émis quand un [PhysicsBody] ou un [GridMap] quitte cette Area. Nécessite "
+"[member monitoring] d'être définie à [code]true[/code]. Les [GridMap] sont "
+"détectés si la [MeshLibrary] à des [Shape] de collision.\n"
+"Le [code]body[/code] est le [Node], s'il exist dans l'arborescence, de "
+"l'autre [PhysicsBody] ou [GridMap]."
#: doc/classes/Area.xml
msgid ""
@@ -8471,6 +8738,15 @@ msgid ""
"[TileMap] instance (while TileMaps are not physics bodies themselves, they "
"register their tiles with collision shapes as a virtual physics body)."
msgstr ""
+"Si [code]true[/code], le corps physique donné recouvre la zone2D.\n"
+"[b]Note :[/b] Le résultat de ce test n'est pas immédiat après le déplacement "
+"des objets. Pour des raisons de performance, la liste des chevauchements est "
+"mise à jour une fois par trame et avant l'étape physique. Considérez plutôt "
+"l'utilisateur de signaux.\n"
+"L'argument [code]body[/code] peut soit être un [PhysicsBody2D] ou une "
+"instance [TileMap] (même si les TileMap ne sont pas des corps de physique en "
+"soit, ils enregistrent leurs tuiles avec des formes de collision comme un "
+"corps de physique virtuel)."
#: doc/classes/Area2D.xml
msgid ""
@@ -8479,6 +8755,10 @@ msgid ""
"See [member ProjectSettings.physics/2d/default_angular_damp] for more "
"details about damping."
msgstr ""
+"La vitesse à laquelle les objets arrêtent de tourner dans cette zone. "
+"Représente la vitesse angulaire perdue par seconde.\n"
+"Voir [membre ProjectSettings.physics/2d/default_angular_damp] pour plus de "
+"détails sur l'amortissement."
#: doc/classes/Area2D.xml
msgid ""
@@ -8486,6 +8766,9 @@ msgid ""
"multiplies the gravity vector. This is useful to alter the force of gravity "
"without altering its direction."
msgstr ""
+"L'intensité de gravité (en pixels par seconde au carré). Cette valeur "
+"multiplie le vecteur de gravité. Ceci est utile pour modifier la force de la "
+"gravité sans modifier sa direction."
#: doc/classes/Area2D.xml
msgid ""
@@ -8712,6 +8995,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 +9011,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 +9066,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 ""
@@ -8813,6 +9145,14 @@ msgid ""
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the removed element have to be reindexed."
msgstr ""
+"Retire le première apparition de la valeur du tableau. Si la valeur n'est "
+"pas présente, rien ne se produit. Pour retirer un élément à partir de sa "
+"position, utilisez plutôt [method remove].\n"
+"[b]Note :[/b] Cette méthode se contente de retirer l'élément et ne retourne "
+"aucune valeur.\n"
+"[b]Note :[/b] Pour les grands tableaux, cette méthode sera lente si la "
+"position de l'insertion est proche du début (index 0). C'est parce que tous "
+"les éléments placés après devront tous être décalés."
#: doc/classes/Array.xml
msgid ""
@@ -8825,27 +9165,36 @@ msgid ""
"array.fill(0) # Initialize the 10 elements to 0.\n"
"[/codeblock]"
msgstr ""
+"Assigne la valeur donnée à tous les éléments du tableau. C'est souvent "
+"utilisé avec [method resize] pour créer un tableau d'une taille donnée avec "
+"tous ses éléments initialisés:\n"
+"[codeblock]\n"
+"var array = []\n"
+"array.resize(10)\n"
+"array.fill(0) # Initialise les 10 éléments avec 0.\n"
+"[/codeblock]"
#: 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
-#, 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 ""
"Searches the array in reverse order for a value and returns its index or "
"[code]-1[/code] if not found."
msgstr ""
+"Recherche la valeur dans le tableau en sens inverse et retourne sa position "
+"ou [code]-1[/code] si n'est pas présent."
#: doc/classes/Array.xml
msgid ""
@@ -8873,6 +9222,20 @@ msgid ""
" pass\n"
"[/codeblock]"
msgstr ""
+"Retourne [code]true[/code] si le tableau contient la valeur donnée.\n"
+"[codeblock]\n"
+"[\"inside\", 7].has(\"inside\") # True\n"
+"[\"inside\", 7].has(\"outside\") # False\n"
+"[\"inside\", 7].has(7) # True\n"
+"[\"inside\", 7].has(\"7\") # False\n"
+"[/codeblock]\n"
+"[b]Note :[/b] C'est équivalent à utiliser l'opérateur [code]in[/code] comme "
+"suit :\n"
+"[codeblock]\n"
+"# Sera évalué à `true`.\n"
+"if 2 in [2, 4, 6, 8]:\n"
+" pass\n"
+"[/codeblock]"
#: doc/classes/Array.xml
msgid ""
@@ -8893,6 +9256,13 @@ msgid ""
"element is close to the beginning of the array (index 0). This is because "
"all elements placed after the newly inserted element have to be reindexed."
msgstr ""
+"Insère un nouvel élément à la position spécifiée du tableau. La position "
+"doit être valide, ou à la fin du tableau ([code]pos == size()[/code]).\n"
+"[b]Note :[/b] Cette méthode se contente d'insérer l'élément et ne retourne "
+"aucune valeur.\n"
+"[b]Note :[/b] Pour les grands tableaux, cette méthode sera lente si la "
+"position de l'insertion est proche du début (index 0). C'est parce que tous "
+"les éléments placés après devront tous être décalés."
#: doc/classes/Array.xml doc/classes/PoolByteArray.xml
#: doc/classes/PoolColorArray.xml doc/classes/PoolIntArray.xml
@@ -9085,6 +9455,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 ""
@@ -9471,12 +9866,11 @@ msgid ""
msgstr ""
#: doc/classes/ARVRController.xml
-#, fuzzy
msgid ""
"If provided by the [ARVRInterface], this returns a mesh associated with the "
"controller. This can be used to visualize the controller."
msgstr ""
-"Si fourni par l'[XRInterface], ceci renvoie un maillage associé au "
+"Si fourni par la [ARVRInterface], ceci renvoie un maillage associé au "
"contrôleur. Ceci peut être utilisé pour visualiser le contrôleur."
#: doc/classes/ARVRController.xml
@@ -9656,6 +10050,12 @@ msgid ""
"[method get_render_targetsize]). Using a separate viewport node frees up the "
"main viewport for other purposes."
msgstr ""
+"Cette interface génère un périphérique externe. Si le port principal est "
+"utilisé, la sortie à l'écran est une mémoire tampon non modifié soit de "
+"l'œil gauche ou du droit (retaillé si la taille du viseur n'est pas changée "
+"au même rapport d'aspect que [method get_render_targetsize)]. L'utilisation "
+"d'un nœud de fenêtre d'affichage séparé libère le port principal pour être "
+"utilisé à d'autres choses."
#: doc/classes/ARVRInterface.xml
msgid ""
@@ -9735,6 +10135,21 @@ msgid ""
"be a child node of this car. Or, if you're implementing a teleport system to "
"move your character, you should change the position of this node."
msgstr ""
+"C'est un nœud spécial dans le système AR/VR qui cartographie l'emplacement "
+"physique du centre de notre espace de suivi à l'emplacement virtuel dans "
+"notre monde de jeu.\n"
+"Il ne devrait y avoir qu'un de ces nœuds dans votre scène et vous devez en "
+"avoir un. Tous les nœuds ARVRCamera, ARVRController et ARVRAnchor devraient "
+"être des enfants directs de ce nœud pour que le suivi spatial fonctionne "
+"correctement.\n"
+"C'est la position de ce nœud que vous mettez à jour lorsque votre personnage "
+"a besoin de passer à travers votre monde de jeu alors qu'il ne se déplace "
+"pas dans le monde réel. Le mouvement dans le monde réel est toujours en "
+"relation avec ce point d'origine.\n"
+"Par exemple, si votre personnage conduit une voiture, le nœud ARVROrigin "
+"devrait être un nœud enfant de cette voiture. Ou, si vous appliquez un "
+"système de téléportation pour déplacer votre personnage, vous devriez "
+"changer la position de ce nœud."
#: doc/classes/ARVROrigin.xml
msgid ""
@@ -9760,6 +10175,17 @@ msgid ""
"hood objects that make this all work. These are mostly exposed so that "
"GDNative-based interfaces can interact with them."
msgstr ""
+"Une instance de cet objet représente un dispositif qui est suivi, comme un "
+"contrôleur ou un point d'ancrage. Les HMD ne sont pas représentés ici car "
+"ils sont gérés en interne.\n"
+"Comme les contrôleurs sont activés et que l'interface AR/VR les détecte, les "
+"instances de cet objet sont automatiquement ajoutées à cette liste d'objets "
+"de suivi actifs et sont accessibles via [ARVRServer].\n"
+"Les [ARVRController] et [ARVRAnchor] consomment tous deux des objets de ce "
+"type et doivent être utilisés dans votre projet. Les suivant de position "
+"sont juste des objets en interne qui font fonctionner cela. Ceux-ci sont "
+"généralement exposés de sorte que les interfaces basées sur GDNative "
+"puissent interagir avec eux."
#: doc/classes/ARVRPositionalTracker.xml
msgid ""
@@ -9854,6 +10280,8 @@ msgid ""
"Registers a new [ARVRPositionalTracker] that tracks a spatial location in "
"real space."
msgstr ""
+"Enregistre un nouveau [ARVRPositionalTracker] qui suit un emplacement "
+"spatial dans l'espace réel."
#: doc/classes/ARVRServer.xml
msgid ""
@@ -9877,6 +10305,26 @@ msgid ""
"button on a controller for a short period of time, or when implementing a "
"teleport mechanism."
msgstr ""
+"C'est une fonction importante qu'il faut comprendre correctement. Les plates-"
+"formes AR et VR gèrent les positions légèrement différemment.\n"
+"Pour les plateformes qui n'offrent pas de suivi spatial, notre point "
+"d'origine (0,0,0) est l'emplacement de notre HMD, mais vous avez peu de "
+"contrôle sur la direction que le joueur fait face dans le monde réel.\n"
+"Pour les plateformes qui offrent un suivi spatial, notre point d'origine "
+"dépend beaucoup du système. Pour OpenVR, notre point d'origine est "
+"généralement le centre de l'espace de suivi, au sol. Pour d'autres plates-"
+"formes, il s'agit souvent de l'emplacement de la caméra de suivi.\n"
+"Cette méthode vous permet de centrer votre traceur sur l'emplacement du HMD. "
+"Il prendra l'emplacement actuel de l'HMD et l'utilisera pour ajuster toutes "
+"vos données de suivi ; c'est-à-dire réaligner le monde réel à la position "
+"actuelle de votre joueur dans le monde du jeu.\n"
+"Pour que cette méthode produise des résultats utilisables, des informations "
+"de suivi doivent être disponibles. Cela prend souvent quelques trames après "
+"le démarrage de votre jeu.\n"
+"Vous devriez appeler cette méthode après quelques secondes. Par exemple, "
+"lorsque l'utilisateur demande un réalignement de l'écran tenant un bouton "
+"désigné sur un contrôleur pendant une courte période, ou lors de la mise en "
+"œuvre d'un mécanisme de téléportation."
#: doc/classes/ARVRServer.xml
msgid ""
@@ -9889,6 +10337,9 @@ msgid ""
"capabilities of an AR/VR platform, you can find the interface for that "
"platform by name and initialize it."
msgstr ""
+"Trouve une interface par son nom. Par exemple, si votre projet utilise des "
+"capacités d'une plateforme AR/VR, vous pouvez trouver l'interface pour cette "
+"plate-forme par son nom et ensuite l'initialiser."
#: doc/classes/ARVRServer.xml
msgid "Returns the primary interface's transformation."
@@ -9909,6 +10360,11 @@ msgid ""
"try to initialize each interface and use the first one that returns "
"[code]true[/code]."
msgstr ""
+"Retourne le nombre d'interfaces actuellement enregistrées avec le serveur AR/"
+"VR. Si votre projet prend en charge plusieurs plateformes AR/VR, vous pouvez "
+"lister les interfaces disponibles, et présenter à l'utilisateur une "
+"sélection ou simplement essayer d'initialiser chaque interface et utiliser "
+"la première interface qui retourne [code]true[/code]."
#: doc/classes/ARVRServer.xml
msgid ""
@@ -9969,6 +10425,8 @@ msgid ""
"Allows you to adjust the scale to your game's units. Most AR/VR platforms "
"assume a scale of 1 game world unit = 1 real world meter."
msgstr ""
+"Vous permet d'ajuster l'échelle des unités de votre jeu. La plupart des "
+"plateformes AR/VR assument une échelle de 1 unité de jeu = 1 mètre réel."
#: doc/classes/ARVRServer.xml
msgid "Emitted when a new interface has been added."
@@ -10192,6 +10650,49 @@ msgid ""
"[code]1.0[/code], then this equals the sum of Euclidean distances of all "
"segments in the path."
msgstr ""
+"A* (A star) est un algorithme informatique qui est largement utilisé dans le "
+"cheminement et la traversée du graph, le processus de traçage des chemins "
+"courts parmi les sommets (points) passant par un ensemble donné de bords "
+"(segments). Il profite d'une utilisation généralisée en raison de sa "
+"performance et de sa précision. L'implémentation dans Godot de A* utilise "
+"par défaut des points dans un espace tridimensionnel et des distances "
+"euclidiennes.\n"
+"Vous devez ajouter des points manuellement avec [method add_point] et créer "
+"des segments manuellement avec [method connect_points]. Ensuite, vous pouvez "
+"tester s'il y a un chemin entre deux points avec la fonction [method "
+"are_points_connected], obtenir un chemin contenant des indices par [method "
+"get_id_path], ou un contenant des coordonnées réelles avec [method "
+"get_point_path].\n"
+"Il est également possible d'utiliser des distances non éuclidiennes. Pour ce "
+"faire, créez une classe qui hérite de [code]AStar[/code] et surchargez les "
+"méthodes [method compute_cost] et [method estimate_cost]. Prenez deux "
+"indices et retournez une longueur, comme le montre l'exemple suivant.\n"
+"[codeblock]\n"
+"clas MyAStar:\n"
+" extends AStar\n"
+"\n"
+" func _compute_cost(u, v):\n"
+" return abs(u - v)\n"
+"\n"
+" func _estimate_cost(u, v):\n"
+" return min(0, abs(u - v) - 1)\n"
+"[/codeblock]\n"
+"[method estimate_cost] doit retourne la valeur minimale de la distance, soit "
+"[code]_estimate_cost(u, v) <= compute_cost(u, v)[ /code]. Cela sert d'indice "
+"pour l'algorithme la méthode [code]_compute_cost[/code] peut être longue à "
+"calculer. Si ce n'est pas le cas, utilisez [method estimate_cost] pour "
+"retourner la même valeur que [method compute_cost] pour fournir à "
+"l'algorithme les informations les plus précises.\n"
+"Si les méthodes par défaut [method estimate_cost] et [method compute_cost] "
+"sont utilisées, ou si la méthode [method estimate_cost] fournie retourne une "
+"limite inférieure du coût du chemin, les chemins retournés par A* seront les "
+"chemins les moins coûteux. Ici, le coût d'un chemin correspond à la somme "
+"des résultats [méthode compute_cost] de tous les segments dans le chemin "
+"multiplié par le [code]weight_scale[/code]s des paramètres de fin des "
+"segments respectifs. Si les méthodes par défaut sont utilisées et que le "
+"[code]weight_scale[/code] de tous les points est [code]1.0[/code], ça "
+"correspond à la somme des distances euclidiennes de tous les segments du "
+"chemin."
#: doc/classes/AStar.xml
msgid ""
@@ -10230,6 +10731,21 @@ msgid ""
"If there already exists a point for the given [code]id[/code], its position "
"and weight scale are updated to the given values."
msgstr ""
+"Ajouter un nouveau point à la position spécifiée avec l'identifiant donné. "
+"L'identifiant [code]id[/code] doit être supérieur ou égal à 0, et le facteur "
+"[code]weight_scale[/code] doit être 0.0 ou supérieur.\n"
+"Le facteur [code]weight_scale[/code] est multiplié par le résultat de "
+"[method _compute_cost] pour déterminer le coût global d'une traversée d'un "
+"segment depuis un voisin jusqu'à ce point. Alors, si la distance est la "
+"même, l'algorithme préfèrera les points avec le facteur de poids "
+"[code]weight_scale[/code] le plus bas pour construire le chemin.\n"
+"[codeblock]\n"
+"var astar = AStar.new()\n"
+"astar.add_point(1, Vector3(1, 0, 0), 4) # Ajoute le point (1, 0, 0) avec le "
+"\"weight_scale\" à 4 et l'identifiant 1\n"
+"[/codeblock]\n"
+"Si un point existe déjà pour l'identifiant [code]id[/code] donné, sa "
+"position et sont facteur de poids seront mis à jour avec la valeur donnée."
#: doc/classes/AStar.xml
msgid ""
@@ -10448,6 +10964,8 @@ msgid ""
"Removes the point associated with the given [code]id[/code] from the points "
"pool."
msgstr ""
+"Retire le point associé à l'identifiant [code]id[/code] donné de la liste "
+"des points."
#: doc/classes/AStar.xml doc/classes/AStar2D.xml
msgid ""
@@ -10524,6 +11042,21 @@ msgid ""
"If there already exists a point for the given [code]id[/code], its position "
"and weight scale are updated to the given values."
msgstr ""
+"Ajouter un nouveau point à la position spécifiée avec l'identifiant donné. "
+"L'identifiant [code]id[/code] doit être supérieur ou égal à 0, et le facteur "
+"[code]weight_scale[/code] doit être 0.0 ou supérieur.\n"
+"Le facteur [code]weight_scale[/code] est multiplié par le résultat de "
+"[method _compute_cost] pour déterminer le coût global d'une traversée d'un "
+"segment depuis un voisin jusqu'à ce point. Alors, si la distance est la "
+"même, l'algorithme préfèrera les points avec le facteur de poids "
+"[code]weight_scale[/code] le plus bas pour construire le chemin.\n"
+"[codeblock]\n"
+"var astar = AStar2D.new()\n"
+"astar.add_point(1, Vector2(1, 0), 4) # Ajoute le point (1, 0) avec le "
+"\"weight_scale\" à 4 et l'identifiant 1\n"
+"[/codeblock]\n"
+"Si un point existe déjà pour l'identifiant [code]id[/code] donné, sa "
+"position et sont facteur de poids seront mis à jour avec la valeur donnée."
#: doc/classes/AStar2D.xml
msgid "Returns whether there is a connection/segment between the given points."
@@ -10570,6 +11103,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 +11139,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 ""
@@ -10896,6 +11461,9 @@ msgid ""
"level. The higher the ratio, the more the loud parts of the audio will be "
"compressed. Value can range from 1 to 48."
msgstr ""
+"La quantité de compression appliquée à l'audio après avoir franchi le seuil. "
+"Plus le rapport est élevé, plus les parties hautes de l'audio seront "
+"comprimées. La valeur peut aller de 1 à 48."
#: doc/classes/AudioEffectCompressor.xml
msgid ""
@@ -10906,12 +11474,16 @@ msgstr ""
#: doc/classes/AudioEffectCompressor.xml
msgid "Reduce the sound level using another audio bus for threshold detection."
msgstr ""
+"Réduit le niveau sonore en utilisant un autre bus audio pour détecter les "
+"seuils."
#: doc/classes/AudioEffectCompressor.xml
msgid ""
"The level above which compression is applied to the audio. Value can range "
"from -60 to 0."
msgstr ""
+"Le niveau au-dessus duquel la compression est appliquée à l'audio. La valeur "
+"peut aller de -60 à 0."
#: doc/classes/AudioEffectDelay.xml
msgid ""
@@ -10919,6 +11491,9 @@ msgid ""
"period of time.\n"
"Two tap delay and feedback options."
msgstr ""
+"Ajoute un effet audio de retard à un bus audio. Joue le signal d'entrée "
+"après une période de temps.\n"
+"Deux options de retard et de rétroaction."
#: doc/classes/AudioEffectDelay.xml
msgid ""
@@ -11139,6 +11714,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 ""
@@ -11351,6 +11949,10 @@ msgid ""
"(infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than "
"the initial pitch)."
msgstr ""
+"L'échelle de pitch à utiliser. [code]1.0[/code] est le pitch par défaut et "
+"joue des sons non modifiés. [member pitch_scale] peut aller de [code]0.0[/"
+"code] (une hauteur infiniment basse, inaudible) à [code]16[/code] (16 fois "
+"supérieur à la hauteur initiale)."
#: doc/classes/AudioEffectPitchShift.xml
#: doc/classes/AudioEffectSpectrumAnalyzer.xml
@@ -11419,10 +12021,19 @@ msgid ""
"16-bit, or compressed). It checks whether or not the recording is active, "
"and if it is, records the sound. It then returns the recorded sample."
msgstr ""
+"Permet à l'utilisateur d'enregistrer le son d'un bus audio. Cela peut "
+"inclure toutes les sorties audio de Godot lorsqu'elles sont utilisées sur le "
+"bus audio \"Master\".\n"
+"Peut être utilisé (avec un [AudioStreamMicrophone)] pour enregistrer un "
+"microphone.\n"
+"Il définit et obtient le format dans lequel le fichier audio sera enregistré "
+"(8-bit, 16-bit ou compressé). Il vérifie si l'enregistrement est actif ou "
+"non, et si c'est le cas, enregistre le son. Il retourne ensuite "
+"l'échantillon enregistré."
#: doc/classes/AudioEffectRecord.xml
msgid "Recording with microphone"
-msgstr ""
+msgstr "L'enregistrement avec le microphone"
#: doc/classes/AudioEffectRecord.xml
msgid "Returns the recorded sample."
@@ -11437,12 +12048,16 @@ msgid ""
"If [code]true[/code], the sound will be recorded. Note that restarting the "
"recording will remove the previously recorded sample."
msgstr ""
+"Si [code]true[/code], le son sera enregistré. Notez que le redémarrage de "
+"l'enregistrement supprimera l'échantillon précédemment enregistré."
#: doc/classes/AudioEffectRecord.xml
msgid ""
"Specifies the format in which the sample will be recorded. See [enum "
"AudioStreamSample.Format] for available formats."
msgstr ""
+"Spécifie le format dans lequel l'échantillon sera enregistré. Voir [enum "
+"AudioStreamSample.Format] pour les formats disponibles."
#: doc/classes/AudioEffectReverb.xml
msgid ""
@@ -11450,6 +12065,9 @@ msgid ""
"Simulates the sound of acoustic environments such as rooms, concert halls, "
"caverns, or an open spaces."
msgstr ""
+"Ajoute un effet audio de réverbération à un bus audio.\n"
+"Simule le son des environnements acoustiques tels que les chambres, les "
+"salles de concert, les cavernes ou les espaces ouverts."
#: doc/classes/AudioEffectReverb.xml
msgid ""
@@ -11885,9 +12503,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 +14209,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 +14246,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 +14367,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 +14442,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 +14591,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 ""
@@ -14571,7 +15227,7 @@ msgstr ""
#: doc/classes/CanvasItem.xml
msgid ""
-"Draws a colored, unfilled circle. See also [method draw_arc], [method "
+"Draws a colored, filled circle. See also [method draw_arc], [method "
"draw_polyline] and [method draw_polygon].\n"
"[b]Note:[/b] Built-in antialiasing is not provided for [method draw_circle]. "
"As a workaround, install the [url=https://github.com/godot-extended-"
@@ -14794,6 +15450,20 @@ msgid ""
"[/codeblock]\n"
"See also [method Font.draw]."
msgstr ""
+"Dessine le [code]text[/code] en utilisant la police [code]font[/code] "
+"spécifiée à la [code]position[/code] (le coin bas-gauche correspond à la "
+"ligne de base de la police). Le texte aura sa couleur multipliée par "
+"[code]modulate[/code]. Si [code]clip_w[/code] est supérieur ou égale à 0, le "
+"texte sera tronqué s'il dépasse cette valeur en pixels.\n"
+"[b]Exemple en utilisant la police par défaut du projet :[/b]\n"
+"[codeblock]\n"
+"# Si cette méthode est appelée souvent, déplacer la déclaration de\n"
+"# `default_font` dans une variable assignée dans `_ready()`\n"
+"# pour que le Control ne soit créé qu'une seule fois.\n"
+"var default_font = Control.new().get_font(\"font\")\n"
+"draw_string(default_font, Vector2(64, 64), \"Hello world\")\n"
+"[/codeblock]\n"
+"Voi aussi [method Font.draw]."
#: doc/classes/CanvasItem.xml
msgid "Draws a styled rectangle."
@@ -15511,21 +16181,25 @@ msgid "The check icon to display when the [CheckBox] is checked."
msgstr "L'icône de la coche à afficher quand la [CheckBox] est cochée."
#: doc/classes/CheckBox.xml
-#, fuzzy
msgid "The check icon to display when the [CheckBox] is checked and disabled."
-msgstr "Icône à afficher lorsque le [CheckButton] est coché et désactivé."
+msgstr ""
+"L'icône de la coche à afficher quand la [CheckBox] est coché et désactivé."
#: doc/classes/CheckBox.xml
msgid ""
"If the [CheckBox] is configured as a radio button, the icon to display when "
"the [CheckBox] is checked."
msgstr ""
+"Si la [CheckBox] est configurée pour être un bouton radio, l'icône à "
+"afficher quand la [CheckBox] est cochée."
#: doc/classes/CheckBox.xml
msgid ""
"If the [CheckBox] is configured as a radio button, the icon to display when "
"the [CheckBox] is unchecked."
msgstr ""
+"Si la [CheckBox] est configurée pour être un bouton radio, l'icône à "
+"afficher quand la [CheckBox] est décochée."
#: doc/classes/CheckBox.xml
msgid "The check icon to display when the [CheckBox] is unchecked."
@@ -16481,13 +17155,13 @@ msgid ""
"Constructs a color from a 32-bit integer in RGBA format (each byte "
"represents a color channel).\n"
"[codeblock]\n"
-"var c = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
+"var color = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
"[/codeblock]"
msgstr ""
"Construit une couleur à partir d'un entier de 32 bits au format RGBA (chaque "
"octet représente un canal de couleur).\n"
"[codeblock]\n"
-"var c = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
+"var color = Color(274) # Similar to Color(0.0, 0.0, 0.004, 0.07)\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -16541,11 +17215,16 @@ msgstr ""
msgid ""
"Returns the most contrasting color.\n"
"[codeblock]\n"
-"var c = Color(0.3, 0.4, 0.9)\n"
-"var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, "
-"255)\n"
+"var color = Color(0.3, 0.4, 0.9)\n"
+"var contrasted_color = color.contrasted() # Equivalent to RGBA(204, 229, "
+"102, 255)\n"
"[/codeblock]"
msgstr ""
+"Retourne la couleur inversée [code](1 - r, 1 - g, 1 - b, a)[/code].\n"
+"[codeblock]\n"
+"var color = Color(0,3, 0,4, 0,9)\n"
+"var inverted_color = color.inverted () # Équivalent à Color(0.7, 0.6, 0.1)\n"
+"[/codeblock]"
#: doc/classes/Color.xml
msgid ""
@@ -16562,14 +17241,14 @@ msgid ""
"Constructs a color from an HSV profile. [code]h[/code], [code]s[/code], and "
"[code]v[/code] are values between 0 and 1.\n"
"[codeblock]\n"
-"var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, 50, "
-"79, 0.8) or Color8(100, 151, 201, 0.8)\n"
+"var color = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # Equivalent to HSV(210, "
+"50, 79, 0.8) or Color8(100, 151, 201, 0.8)\n"
"[/codeblock]"
msgstr ""
"Construit une couleur à partir d’un profil HSV. [code]h[/code], [code]s[/"
"code], et [code]v[/code] sont des valeurs comprises entre 0 et 1.\n"
"[codeblock]\n"
-"var c = Color.from_hsv(0,58, 0,5, 0,79, 0,8) # Équivalent au HSV (210, 50, "
+"var color = Color.from_hsv(0,58, 0,5, 0,79, 0,8) # Équivalent au HSV (210, 50, "
"79, 0,8) ou au Color8 (100, 151, 201, 0,8)\n"
"[/codeblock]"
@@ -16585,15 +17264,15 @@ msgid ""
"Returns the color's grayscale representation.\n"
"The gray value is calculated as [code](r + g + b) / 3[/code].\n"
"[codeblock]\n"
-"var c = Color(0.2, 0.45, 0.82)\n"
-"var gray = c.gray() # A value of 0.466667\n"
+"var color = Color(0.2, 0.45, 0.82)\n"
+"var gray = color.gray() # A value of 0.466667\n"
"[/codeblock]"
msgstr ""
"Retourne la représentation en niveaux de gris.\n"
"La valeur de gris est calculé avec [code](r + g + b) / 3[/code].\n"
"[codeblock]\n"
-"var c = Color(0.2, 0.45, 0.82)\n"
-"var gray = c.gray() # A value of 0.466667\n"
+"var color = Color(0.2, 0.45, 0.82)\n"
+"var gray = c.gray() # Une valeur de 0.466667\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -16652,7 +17331,7 @@ msgstr ""
"[codeblock]\n"
"var c1 = Color(1.0, 0.0, 0.0)\n"
"var c2 = Color(0.0, 1.0, 0.0)\n"
-"var li_c = c1.linear_interpolate(c2, 0.5) # Equivalent to Color(0.5, 0.5, "
+"var li_c = c1.linear_interpolate(c2, 0.5) # Équivalent à Color(0.5, 0.5, "
"0.0)\n"
"[/codeblock]"
@@ -16733,9 +17412,9 @@ msgid ""
"Setting [code]with_alpha[/code] to [code]false[/code] excludes alpha from "
"the hexadecimal string.\n"
"[codeblock]\n"
-"var c = Color(1, 1, 1, 0.5)\n"
-"var s1 = c.to_html() # Returns \"7fffffff\"\n"
-"var s2 = c.to_html(false) # Returns \"ffffff\"\n"
+"var color = Color(1, 1, 1, 0.5)\n"
+"var s1 = color.to_html() # Returns \"7fffffff\"\n"
+"var s2 = color.to_html(false) # Returns \"ffffff\"\n"
"[/codeblock]"
msgstr ""
@@ -16753,7 +17432,7 @@ msgstr ""
"Godot.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
-"print(color.to_rgba32()) # Imprime 4281565439\n"
+"print(color.to_rgba32()) # Affiche 4281565439\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -16770,7 +17449,7 @@ msgstr ""
"Godot.\n"
"[codeblock]\n"
"var color = Color(1, 0.5, 0.2)\n"
-"print(color.to_rgba64()) # Imprime -140736629309441\n"
+"print(color.to_rgba64()) # Affiche -140736629309441\n"
"[/codeblock]"
#: doc/classes/Color.xml
@@ -18367,6 +19046,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 +19084,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 +21329,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 ""
@@ -20632,6 +21384,10 @@ msgid ""
"[b]Note:[/b] The maximum size of accepted ciphertext is limited by the key "
"size."
msgstr ""
+"Décrypte le texte crypté [code]ciphertext[/code] donné avec le clé publique "
+"[code]key[/code] fournie.\n"
+"[b]Note :[/b] La taille maximale pour le texte est limitée par la taille de "
+"la clé."
#: doc/classes/Crypto.xml
msgid ""
@@ -20640,6 +21396,10 @@ msgid ""
"[b]Note:[/b] The maximum size of accepted plaintext is limited by the key "
"size."
msgstr ""
+"Crypte le texte [code]plaintext[/code] donné avec le clé publique [code]key[/"
+"code] fournie.\n"
+"[b]Note :[/b] La taille maximale pour le texte est limitée par la taille de "
+"la clé."
#: doc/classes/Crypto.xml
msgid ""
@@ -20674,6 +21434,24 @@ msgid ""
"Game Company,C=IT\")\n"
"[/codeblock]"
msgstr ""
+"Génère un [X509Certificate] auto-signé avec la clé [CryptoKey] et le nom "
+"[code]issuer_name[/code]. La date de validité du certificat est définie par "
+"[code]not_before[/code] et [code]not_after[/code] (la date de début et de "
+"fin de validité). Le nom [code]issuer_name[/code] doit contenir au moins "
+"\"CN=\" (le nom commun, par exemple le nom de domaine), "
+"\"O=\" (l'organisation, par exemple le nom de votre entreprise) et "
+"\"C=\" (le pays, un code ISO-3166 à deux lettres du pays où l'entreprise est "
+"située).\n"
+"Un court exemple pour générer une clé RSA avec un certificat X509 auto-"
+"signé.\n"
+"[codeblock]\n"
+"var crypto = Crypto.new()\n"
+"# Générer un clé RSA 4096 bits.\n"
+"var key = crypto.generate_rsa(4096)\n"
+"# Générer un certificat auto-signé à partir de la clé donnée.\n"
+"var cert = crypto.generate_self_signed_certificate(key, \"CN=example.com,"
+"O=Mon Studio de Jeux,C=FR\")\n"
+"[/codeblock]"
#: doc/classes/Crypto.xml
msgid ""
@@ -20711,8 +21489,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
@@ -22160,7 +22937,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 +23198,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 +23368,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 ""
@@ -22936,6 +23755,33 @@ msgid ""
"In FontForge, use [b]File > Generate Fonts[/b], click [b]Options[/b], choose "
"the desired features then generate the font."
msgstr ""
+"DynamicFont fait le rendu d'un fichier de police vectorielle dynamiquement "
+"au lancement du jeu plutôt que d'utiliser une texture de pré-rendu comme "
+"[BitmapFont]. La lenteur de chargement par rapport à [BitmapFont] est "
+"compensée par la possibilité de modifier les paramètres de la police comme "
+"sa taille ou son espacement à partir du lancement. [DynamicFontData] est "
+"utilisée pour le chemin du fichier de police. DynamicFont permet aussi de "
+"définir une ou plusieurs polices de repli, qui seront utilisée pour "
+"l'affichage de tout caractère qui n'est pas présent dans la police "
+"principale.\n"
+"DynamicFont utilise la bibliothèque [url=https://www.freetype.org/]FreeType[/"
+"url] pour la rasterization. Les formats supportés sont TrueType ([code].ttf[/"
+"code]), OpenType ([code].otf[/code]), Web Open Font Format 1 ([code].woff[/"
+"code]), et Web Open Font Format 2 ([code].woff2[/code]).\n"
+"[codeblock]\n"
+"var dynamic_font = DynamicFont.new()\n"
+"dynamic_font.font_data = load(\"res://BarlowCondensed-Bold.ttf\")\n"
+"dynamic_font.size = 64\n"
+"$\"Label\".set(\"custom_fonts/font\", dynamic_font)\n"
+"[/codeblock]\n"
+"[b]Note :[/b] DynamicFont ne supporte par certaines fonctionnalités comme le "
+"kerning, l'écriture de droite à gauche, les ligatures, les formes de texte, "
+"les tailles variable et d'autres fonctionnalités pour le moment. Si vous "
+"souhaitez faire un pré-rendu de certaines fonctionnalités dans le fichier de "
+"police TTF, vous pouvez utiliser [url=https://fontforge.org/]FontForge[/url] "
+"pour cela. Dans FontForge, utilisez [b]Fichier > Polices Générales[/b], "
+"cliquez sur [b]Options[/b], puis choisissez la fonctionnalité voulue lors de "
+"la génération de la police"
#: doc/classes/DynamicFont.xml
msgid "Adds a fallback font."
@@ -23836,6 +24682,20 @@ msgid ""
"[/codeblock]\n"
"Return [code]true[/code] to make all options always visible."
msgstr ""
+"Cette méthode peut être surchargée pour masquer certaines options "
+"d'importation si des conditions sont réunies. C'est principalement utile "
+"pour masquer des options qui dépendre d'autres options. Par exemple :\n"
+"[codeblock]\n"
+"func get_option_visibility(option, options):\n"
+" # N'afficher que le réglage de qualité de perte (\"lossy\") si le mode "
+"de compression est à \"Lossy\".\n"
+" if option == \"compress/lossy_quality\" and options.has(\"compress/"
+"mode\"):\n"
+" return int(options[\"compress/mode\"]) == COMPRESS_LOSSY\n"
+"\n"
+" return true\n"
+"[/codeblock]\n"
+"Retourne [code]true[/code] pour toujours rendre toutes les options visibles."
#: doc/classes/EditorImportPlugin.xml
msgid ""
@@ -24448,6 +25308,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 +25359,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 +25399,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 +25449,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 ""
@@ -24548,6 +25483,8 @@ msgid ""
"Returns the [EditorInterface] object that gives you control over Godot "
"editor's window and its functionalities."
msgstr ""
+"Retourne l'objet [EditorInterface] qui vous donne le contrôle sur la fenêtre "
+"de l'éditeur Godot et de ses fonctionnalités."
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -24566,6 +25503,20 @@ msgid ""
"\"EditorIcons\")\n"
"[/codeblock]"
msgstr ""
+"Surchargez cette méthode dans votre greffon pour retourner une [Texture] "
+"afin de lui donner une icône.\n"
+"Pour les greffons d'écran principal, cela apparaît en haut de l'écran, à "
+"droite des boutons \"2D\", \"3D\", \"Script\" et \"AssetLib\".\n"
+"Idéalement, l'icône de greffon doit être blanche avec un fond transparent et "
+"16x16 pixels en taille.\n"
+"[codeblock]\n"
+"func get_greffon_icon():\n"
+" # Vous pouvez utiliser une icône personnalisée :\n"
+" return preload(\"res://addons/mon_greffon/icone_de_mon_greffon.svg\")\n"
+" # Ou utilisez une icône intégrée :\n"
+" return get_editor_interface().get_base_control().get_icon(\"Node\", "
+"\"EditorIcons\")\n"
+"[/codeblock]"
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -24574,14 +25525,22 @@ msgid ""
"For main screen plugins, this appears at the top of the screen, to the right "
"of the \"2D\", \"3D\", \"Script\", and \"AssetLib\" buttons."
msgstr ""
+"Surchargez cette méthode dans votre greffon pour fournir le nom du greffon "
+"lorsque affiché dans l'éditeur Godot.\n"
+"Pour les greffons d'écran principal, cela apparaît en haut de l'écran, à "
+"droite des boutons \"2D\", \"3D\", \"Script\" et \"AssetLib\"."
#: doc/classes/EditorPlugin.xml
msgid ""
-"Gets the Editor's dialogue used for making scripts.\n"
+"Gets the Editor's dialog used for making scripts.\n"
"[b]Note:[/b] Users can configure it before use.\n"
"[b]Warning:[/b] Removing and freeing this node will render a part of the "
"editor useless and may cause a crash."
msgstr ""
+"Obtient le dialogue de l'éditeur utilisé pour faire des scripts.\n"
+"[b]Note :[/b] Les utilisateurs peuvent le configurer avant d'utiliser.\n"
+"[b]Attention :[/b] Supprimer et libérer ce nœud rend une partie de l'éditeur "
+"inutile et peut causer un accident."
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -24589,12 +25548,18 @@ msgid ""
"state is kept when opening it again) and for switching tabs (so state can be "
"restored when the tab returns)."
msgstr ""
+"Retourne l'état de votre greffon de l'éditeur. Ceci est utilisé pour sauver "
+"la scène (ainsi l'état est maintenu lors de l'ouverture à nouveau) et pour "
+"les onglets (pour que l'état puisse être restauré lorsque l'onglet retourne)."
#: doc/classes/EditorPlugin.xml
msgid ""
"Gets the undo/redo object. Most actions in the editor can be undoable, so "
"use this object to make sure this happens when it's worth it."
msgstr ""
+"Obtient l'objet annuler/refaire. La plupart des actions de l'éditeur peuvent "
+"être inutilisables, alors utilisez cet objet pour s'assurer que cela se "
+"produit quand ça en vaut la peine."
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -24602,6 +25567,9 @@ msgid ""
"layout when [method queue_save_layout] is called or the editor layout was "
"changed(For example changing the position of a dock)."
msgstr ""
+"Retourne la mise en page de l'interface du greffon. Ceci permet "
+"d'enregistrer la mise en page de l'éditeur du projet lorsqu'il s'agit d'un "
+"fichier d'éditeur (par exemple en changeant la position d'un dock)."
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -24612,6 +25580,12 @@ msgid ""
"forward_canvas_gui_input] and [method forward_spatial_gui_input] these will "
"be called too."
msgstr ""
+"Implémentez cette fonction si votre greffon modifie un type spécifique "
+"d'objet (Resource ou Node). Si vous retournez [code]true[/code], alors vous "
+"obtiendrez les fonctions [method edit] et [method make_visible] appelé "
+"lorsque l'éditeur les demande. Si vous avez déclaré les méthodes [method "
+"forward_canvas_gui_input] et [method forward_spatial_gui_input] ceux-ci "
+"seront également appelés."
#: doc/classes/EditorPlugin.xml
msgid ""
@@ -25185,6 +26159,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 +26229,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."
@@ -27065,15 +28083,15 @@ msgstr ""
"rapide)."
#: doc/classes/Environment.xml
-msgid "Low quality for the screen-space ambient occlusion effect."
+msgid "Medium quality for the screen-space ambient occlusion effect."
msgstr ""
-"La qualité la plus basse pour l'effet d’occlusion ambiante dans l’espace de "
+"La qualité moyenne pour l'effet d’occlusion ambiante dans l’espace de "
"l’écran."
#: doc/classes/Environment.xml
-msgid "Low quality for the screen-space ambient occlusion effect (slowest)."
+msgid "High quality for the screen-space ambient occlusion effect (slowest)."
msgstr ""
-"La qualité la plus basse de l’occlusion ambiante d’espace d’écran (la plus "
+"La qualité la plus haute de l’occlusion ambiante d’espace d’écran (la plus "
"lente)."
#: doc/classes/Expression.xml
@@ -27105,6 +28123,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 ""
@@ -27318,9 +28358,10 @@ msgstr ""
"Le texte est interprété comme étant encodé en UTF-8."
#: doc/classes/File.xml
-#, fuzzy
msgid "Returns next [code]len[/code] bytes of the file as a [PoolByteArray]."
-msgstr "Retourne [code]true[/code] (vrai) si la chaîne de caractères est vide."
+msgstr ""
+"Retourne les [code]len[/code] prochains octets du fichier sous forme de "
+"[PoolByteArray]."
#: doc/classes/File.xml
msgid ""
@@ -27344,6 +28385,28 @@ msgid ""
"[code]\"\"[/code] for each quotation mark that needs to be interpreted as "
"such instead of the end of a text value."
msgstr ""
+"Retourne la prochaine valeur du fichier au format CSV (\"Comma-Separated "
+"Values\"). Vous pouvez utiliser un autre délimiteur [code]delim[/code] à la "
+"place de la virgule [code]\",\"[/code] (\"comma\") par défaut. Ce délimiteur "
+"doit ne faire qu'un seul caractère de long, et ne peut pas être des "
+"guillemets (\").\n"
+"Le texte est interprété comme étant encodé en UTF-8. Les textes doivent être "
+"entourés de guillemets si elles contiennent une caractère délimiteur. Les "
+"guillemets dans un texte doivent être doublées pour être échappées "
+"correctement.\n"
+"Par exemple, les lignes CSV suivantes sont valides et sont correctement "
+"interprétées comme deux textes pour chaque ligne :\n"
+"[codeblock]\n"
+"Alice,\"Salut, Bob !\"\n"
+"Bob,Alice! Quelle Surprise !\n"
+"Alice,\"Je pensais que tu me répondrais \"\"Salut, Monde !\"\".\"\n"
+"[/codeblock]\n"
+"Notez que les guillemets ne sont pas nécessaires pour la deuxième ligne "
+"puisque le délimiteur (\",\") n'est pas présent dans les deux textes. Mais "
+"il est aussi bien [i]possible[/i] d'ajouter des guillemets autour chaque "
+"texte, ça n'était qu'un exemple pour montrer les possibilités. Le deuxième "
+"texte de la troisième ligne doit être entourée de guillemets [code]\"\"[/"
+"code] pour échapper les guillemets présentes dans le texte."
#: doc/classes/File.xml
msgid "Returns the next 64 bits from the file as a floating-point number."
@@ -27505,6 +28568,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 ""
@@ -27627,13 +28717,12 @@ msgstr ""
"du fichier."
#: doc/classes/File.xml
-#, fuzzy
msgid ""
"Opens the file for write operations. The file is created if it does not "
"exist, and truncated if it does."
msgstr ""
-"Ouvre le fichier pour les opérations d’écriture. Créez-le si le fichier "
-"n’existe pas et tronquer s’il existe."
+"Ouvre le fichier en écriture. Crée le fichier s'il n’existe pas, et le "
+"tronque s’il existe déjà."
#: doc/classes/File.xml
msgid ""
@@ -28883,7 +29972,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 +30085,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 +30510,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 +31253,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 +31271,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 +31511,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 +31535,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."
@@ -30729,9 +31822,37 @@ 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]"
#: doc/classes/HashingContext.xml
msgid "Closes the current context, and return the computed hash."
@@ -30946,6 +32067,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 +32127,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 +32379,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 +32435,23 @@ msgid ""
"# Returns \"single=123&not_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&not_valued&multiple=22&multiple=33&multiple=44\"\n"
+"[/codeblock]"
#: doc/classes/HTTPClient.xml
msgid "Reads one chunk from the response."
@@ -31285,6 +32483,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 +32530,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 +32540,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 +33894,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 +35000,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 +35011,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 "
@@ -34212,6 +35442,9 @@ msgid ""
"the controller number, otherwise this is zero. Controllers include devices "
"such as pedals and levers."
msgstr ""
+"Si le message est [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], ça indique le "
+"numéro du contrôleur, sinon c'est zéro. Les contrôleurs inclus les appareils "
+"comme les pédales et les leviers."
#: doc/classes/InputEventMIDI.xml
msgid ""
@@ -34219,6 +35452,9 @@ msgid ""
"the controller value, otherwise this is zero. Controllers include devices "
"such as pedals and levers."
msgstr ""
+"Si le message est [code]MIDI_MESSAGE_CONTROL_CHANGE[/code], ça indique la "
+"valeur du contrôleur, sinon c'est zéro. Les contrôleurs inclus les appareils "
+"comme les pédales et les leviers."
#: doc/classes/InputEventMIDI.xml
msgid ""
@@ -34260,6 +35496,8 @@ msgid ""
"The pressure of the MIDI signal. This value ranges from 0 to 127. For many "
"devices, this value is always zero."
msgstr ""
+"La pression du signal MIDI. Cette valeur va de 0 à 127. Pour plusieurs "
+"périphériques, cette valeur est toujours 0."
#: doc/classes/InputEventMIDI.xml
msgid ""
@@ -35669,6 +36907,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 +37017,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 +37135,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 +37217,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 +37418,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"
@@ -37512,6 +38853,9 @@ msgid ""
"If [code]true[/code], the [LineEdit] will show a clear button if [code]text[/"
"code] is not empty, which can be used to clear the text quickly."
msgstr ""
+"Si [code]true[/code], le [LineEdit] affichera un bouton effacer si le "
+"[code]text[/code] n'est pas vide, ce qui permet d'effacer rapidement le "
+"texte."
#: doc/classes/LineEdit.xml
msgid "If [code]true[/code], the context menu will appear when right-clicked."
@@ -37561,6 +38905,24 @@ msgid ""
"# `text_change_rejected` is emitted with \"bye\" as parameter.\n"
"[/codeblock]"
msgstr ""
+"La quantité maximale de caractères qui peuvent être entré dans ce "
+"[LineEdit]. Si [code]0[/code], il n'y a aucune limite.\n"
+"Quand une limite est définie, le texte est tronqué aux [member max_length] "
+"premiers caractères. Ça arrive pour le [member text] existant lorsque la "
+"longueur maximale est définie, ou quand un nouveau texte est inséré dans le "
+"[LineEdit], en étant par exemple collé. Si le texte est tronqué, le signal "
+"[signal text_change_rejected] est émis avec le reste du texte tronqué passé "
+"en paramètre.\n"
+"[b]Example:[/b]\n"
+"[codeblock]\n"
+"text = \"Salut le monde\"\n"
+"max_length = 5\n"
+"# `text` est tronqué à \"Salut\".\n"
+"max_length = 11\n"
+"text += \" l'univers\"\n"
+"# `text` becomes \"Salut l'uni\".\n"
+"# `text_change_rejected` est émis avec \"vers\" passé en paramètre.\n"
+"[/codeblock]"
#: doc/classes/LineEdit.xml doc/classes/TextEdit.xml
msgid ""
@@ -38771,6 +40133,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."
@@ -39982,15 +41376,20 @@ msgid "Server interface for low-level 2D navigation access."
msgstr "Interface de serveur pour l'accès audio de bas niveau."
#: doc/classes/Navigation2DServer.xml
+#, fuzzy
msgid ""
"Navigation2DServer is the server responsible for all 2D navigation. It "
"handles several objects, namely maps, regions and agents.\n"
"Maps are made up of regions, which are made of navigation polygons. "
-"Together, they define the navigable areas in the 2D world. For two regions "
-"to be connected to each other, they must share a similar edge. An edge is "
-"considered connected to another if both of its two vertices are at a "
-"distance less than [member Navigation.edge_connection_margin] to the "
-"respective other edge's vertex.\n"
+"Together, they define the navigable areas in the 2D world.\n"
+"[b]Note:[/b] Most NavigationServer changes take effect after the next "
+"physics frame and not immediately. This includes all changes made to maps, "
+"regions or agents by navigation related Nodes in the SceneTree or made "
+"through scripts.\n"
+"For two regions to be connected to each other, they must share a similar "
+"edge. An edge is considered connected to another if both of its two vertices "
+"are at a distance less than [member Navigation.edge_connection_margin] to "
+"the respective other edge's vertex.\n"
"To use the collision avoidance system, you may use agents. You can set an "
"agent's target velocity, then the servers will emit a callback with a "
"modified velocity.\n"
@@ -40002,6 +41401,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 +42219,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 +42259,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 ""
@@ -40961,15 +42378,20 @@ msgid "Server interface for low-level 3D navigation access."
msgstr "Interface de serveur pour l'accès audio de bas niveau."
#: doc/classes/NavigationServer.xml
+#, fuzzy
msgid ""
"NavigationServer is the server responsible for all 3D navigation. It handles "
"several objects, namely maps, regions and agents.\n"
"Maps are made up of regions, which are made of navigation meshes. Together, "
-"they define the navigable areas in the 3D world. For two regions to be "
-"connected to each other, they must share a similar edge. An edge is "
-"considered connected to another if both of its two vertices are at a "
-"distance less than [member Navigation.edge_connection_margin] to the "
-"respective other edge's vertex.\n"
+"they define the navigable areas in the 3D world.\n"
+"[b]Note:[/b] Most NavigationServer changes take effect after the next "
+"physics frame and not immediately. This includes all changes made to maps, "
+"regions or agents by navigation related Nodes in the SceneTree or made "
+"through scripts.\n"
+"For two regions to be connected to each other, they must share a similar "
+"edge. An edge is considered connected to another if both of its two vertices "
+"are at a distance less than [member Navigation.edge_connection_margin] to "
+"the respective other edge's vertex.\n"
"To use the collision avoidance system, you may use agents. You can set an "
"agent's target velocity, then the servers will emit a callback with a "
"modified velocity.\n"
@@ -40981,6 +42403,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 +43425,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 +43801,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 +43824,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 +43840,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 +44424,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 +44492,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,11 +44544,18 @@ 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 ""
"Gets the node name indicated by [code]idx[/code] (0 to [method "
-"get_name_count]).\n"
+"get_name_count] - 1).\n"
"[codeblock]\n"
"var node_path = NodePath(\"Path2D/PathFollow2D/Sprite\")\n"
"print(node_path.get_name(0)) # Path2D\n"
@@ -43028,6 +44563,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] - 1).\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 +44589,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 +44639,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 ""
@@ -43321,6 +44885,16 @@ msgid ""
"where you should use the same convention as in the C# source (typically "
"PascalCase)."
msgstr ""
+"Appelle la [code]method[/code] sur l'objet pendant un temps de repos. Cette "
+"méthode supporte un nombre variable d'arguments, ces paramètres étant passés "
+"dans une liste séparé par une virgule. Exemple :\n"
+"[codeblock]\n"
+"call_deferred(\"set\", \"position\", Vector2(42.0, 0.0))\n"
+"[/codeblock]\n"
+"[b]Note :[/b] En C#, le nom de la méthode doit être spécifiée en snake_case "
+"si c'est une méthode définie par les nœuds Godot. Ça ne s'applique pas aux "
+"méthodes définies par l'utilisateur qui devraient toujours utiliser la même "
+"convention du langage C# (typiquement en PascalCase)."
#: doc/classes/Object.xml
msgid ""
@@ -44347,6 +45921,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 +45957,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 +46269,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 +46301,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 +46366,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 +46983,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,8 +47009,15 @@ 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
+#, fuzzy
msgid ""
"Requests the OS to open a resource with the most appropriate program. For "
"example:\n"
@@ -45372,14 +47027,31 @@ msgid ""
"web browser on the official Godot website.\n"
"- [code]OS.shell_open(\"mailto:example@example.com\")[/code] opens the "
"default email client with the \"To\" field set to [code]example@example.com[/"
-"code]. See [url=https://blog.escapecreative.com/customizing-mailto-"
-"links/]Customizing [code]mailto:[/code] Links[/url] for a list of fields "
-"that can be added.\n"
+"code]. See [url=https://datatracker.ietf.org/doc/html/rfc2368]RFC 2368 - The "
+"[code]mailto[/code] URL scheme[/url] for a list of fields that can be "
+"added.\n"
"Use [method ProjectSettings.globalize_path] to convert a [code]res://[/code] "
"or [code]user://[/code] path into a system path for use with this method.\n"
"[b]Note:[/b] This method is implemented on Android, iOS, HTML5, Linux, macOS "
"and Windows."
msgstr ""
+"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 +47643,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 +47884,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."
@@ -49075,7 +50761,6 @@ msgid ""
msgstr ""
#: doc/classes/PhysicsServer.xml
-#, fuzzy
msgid ""
"The strength with which the pinned objects try to stay in velocity relation "
"to each other.\n"
@@ -49745,14 +51430,50 @@ msgid "A pooled array of bytes."
msgstr "Un tableau compacté d'octets."
#: doc/classes/PoolByteArray.xml
+#, fuzzy
msgid ""
"An array specifically designed to hold bytes. Optimized for memory usage, "
"does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference."
+"[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 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."
+"Un tableau spécialement prévu pour contenir des octets. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolByteArray] ou d'un "
+"[PoolByteArray] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolByteArray()]\n"
+"array[0].push_back(123) # Accède à une copie du PoolByteArray\n"
+"print(array) # [[]] (Un PoolByteArray vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolByteArray] en entier doit être [i]réassigné[/i] avec "
+"[code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolByteArray()]\n"
+"var pool_array = array[0] # Crée une copie du PoolByteArray, puis assigne "
+"cette copie\n"
+"pool_array.push_back(123)\n"
+"array[0] = pool_array\n"
+"print(array) # [[123]] (Un PoolByteArray avec 1 élément dans un Array)\n"
+"[/codeblock]"
#: doc/classes/PoolByteArray.xml
msgid ""
@@ -49885,18 +51606,58 @@ 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
+#, fuzzy
msgid ""
"An array specifically designed to hold [Color]. Optimized for memory usage, "
"does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference."
+"[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 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."
+"Un tableau spécialement prévu pour contenir des [Color]. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolColorArray] ou d'un "
+"[PoolColorArray] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolColorArray()]\n"
+"array[0].push_back(Color(0.1, 0.2, 0.3, 0.4)) # Accède à une copie du "
+"PoolColorArray\n"
+"print(array) # [[]] (Un PoolColorArray vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolColorArray] en entier doit être [i]réassigné[/i] avec "
+"[code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolColorArray()]\n"
+"var pool_array = array[0] # Crée une copie du PoolColorArray, puis assigne "
+"cette copie\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)]] (Un PoolColorArray avec 1 élément "
+"dans un Array)\n"
+"[/codeblock]"
#: doc/classes/PoolColorArray.xml
msgid ""
@@ -49929,16 +51690,60 @@ msgid "A pooled array of integers ([int])."
msgstr "Un tableau compacté d'entiers ([int])."
#: doc/classes/PoolIntArray.xml
+#, fuzzy
msgid ""
"An array specifically designed to hold integer values ([int]). Optimized for "
"memory usage, does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference.\n"
+"[b]Note:[/b] This type is 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 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 "
"around. In comparison, [int] uses signed 64-bit integers which can hold much "
"larger values."
msgstr ""
+"Un tableau spécialement prévu pour contenir des entier ([int]). Optimisé "
+"pour la mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolIntArray] ou d'un "
+"[PoolIntArray] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolIntArray()]\n"
+"array[0].push_back(1234) # Accède à une copie du PoolIntArray\n"
+"print(array) # [[]] (Un PoolIntArray vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolIntArray] en entier doit être [i]réassigné[/i] avec "
+"[code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolIntArray()]\n"
+"var pool_array = array[0] # Crée une copie du PoolIntArray, puis assigne "
+"cette copie\n"
+"pool_array.push_back(1234)\n"
+"array[0] = pool_array\n"
+"print(array) # [[1234]] (Un PoolIntArray avec 1 élément dans un Array)\n"
+"[/codeblock]\n"
+"[b]Note :[/b] Ce type est limité aux entiers signés de 32 bit, ce qui peut "
+"dire que l'intervalle des valeurs possibles est [code][-2^31, 2^31 - 1][/"
+"code], soit [code][-2147483648, 2147483647][/code]. Tout dépassement "
+"bouclera. En comparaison, un tableau générique [int] utilise des entiers de "
+"64 bit qui peuvent donc contenir des valeurs bien plus grandes."
#: doc/classes/PoolIntArray.xml
msgid ""
@@ -49966,14 +51771,33 @@ 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
+#, fuzzy
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 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 "
@@ -49982,6 +51806,35 @@ msgid ""
"store [float]s will use roughly 6 times more memory compared to a "
"[PoolRealArray]."
msgstr ""
+"Un tableau spécialement prévu pour contenir des flottants. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolRealArray] ou d'un "
+"[PoolRealArray] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolRealArray()]\n"
+"array[0].push_back(12.34) # Accède à une copie du PoolRealArray\n"
+"print(array) # [[]] (Un PoolRealArray vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolRealArray] en entier doit être [i]réassigné[/i] avec "
+"[code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolRealArray()]\n"
+"var pool_array = array[0] # Crée une copie du PoolRealArray, puis assigne "
+"cette copie\n"
+"pool_array.push_back(12.34)\n"
+"array[0] = pool_array\n"
+"print(array) # [[12.34]] (Un PoolRealArray avec 1 élément dans un Array)\n"
+"[/codeblock]\n"
+"[b]Note :[/b] Contrairement aux [float] qui sont en 64 bits, les nombres "
+"enregistrés dans les [PoolRealArray] ne sont que en 32 bits. Ça veut donc "
+"dire que les flottants dans les [PoolRealArray] ont une précision plus "
+"faible que les [float]. Si vous avez besoin d'enregistrer des flottants en "
+"64 bits dans un tableau, utilisez un [Array] standard avec des éléments "
+"[float] qui seront bien en 64 bits. En comparaison, un [Array] avec des "
+"[float] consomme approximativement 6 fois plus de mémoire qu'un "
+"[PoolRealArray]."
#: doc/classes/PoolRealArray.xml
msgid ""
@@ -50000,18 +51853,56 @@ 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
+#, fuzzy
msgid ""
"An array specifically designed to hold [String]s. Optimized for memory "
"usage, does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference."
+"[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 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."
+"Un tableau spécialement prévu pour contenir des [String]. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolRealArray] ou d'un "
+"[PoolRealArray] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolStringArray()]\n"
+"array[0].push_back(\"hello\") # Accède à une copie du PoolStringArray\n"
+"print(array) # [[]] (Un PoolStringArray vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolStringArray] en entier doit être [i]réassigné[/i] "
+"avec [code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolStringArray()]\n"
+"var pool_array = array[0] # Crée une copie du PoolStringArray, puis assigne "
+"cette copie\n"
+"pool_array.push_back(\"hello\")\n"
+"array[0] = pool_array\n"
+"print(array) # [[\"hello\"]] (Un PoolStringArray avec 1 élément dans un "
+"Array)\n"
+"[/codeblock]"
#: doc/classes/PoolStringArray.xml
msgid ""
@@ -50042,18 +51933,58 @@ 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
+#, fuzzy
msgid ""
"An array specifically designed to hold [Vector2]. Optimized for memory "
"usage, does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference."
+"[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 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."
+"Un tableau spécialement prévu pour contenir des [Vector2]. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolVector2Array] ou d'un "
+"[PoolVector2Array] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolVector2Array()]\n"
+"array[0].push_back(Vector2(12, 34)) # Accède à une copie du "
+"PoolVector2Array\n"
+"print(array) # [[]] (Un PoolVector2Array vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolVector2Array] en entier doit être [i]réassigné[/i] "
+"avec [code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolVector2Array()]\n"
+"var pool_array = array[0] # Crée une copie du PoolVector2Array, puis assigne "
+"cette copie\n"
+"pool_array.push_back(Vector2(12, 34))\n"
+"array[0] = pool_array\n"
+"print(array) # [[(12, 34)]] (Un PoolVector2Array avec 1 élément dans un "
+"Array)\n"
+"[/codeblock]"
#: doc/classes/PoolVector2Array.xml doc/classes/TileMap.xml
#: doc/classes/TileSet.xml
@@ -50085,14 +52016,53 @@ msgid "A pooled array of [Vector3]."
msgstr "Un tableau compacté de [Vector3]."
#: doc/classes/PoolVector3Array.xml
+#, fuzzy
msgid ""
"An array specifically designed to hold [Vector3]. Optimized for memory "
"usage, does not fragment the memory.\n"
-"[b]Note:[/b] This type is passed by value and not by reference."
+"[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 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."
+"Un tableau spécialement prévu pour contenir des [Vector3]. Optimisé pour la "
+"mémoire, il ne se fragmente pas.\n"
+"[b]Note :[/b] Ce type est passé par valeur et non par référence. Ça veut "
+"dire que lors des [i]modifications[/i] d'un [PoolVector3Array] ou d'un "
+"[PoolVector3Array] dans un [Array] ou [Dictionary], ces modifications seront "
+"perdues :\n"
+"[codeblock]\n"
+"var array = [PoolVector3Array()]\n"
+"array[0].push_back(Vector3(12, 34, 56)) # Accède à une copie du "
+"PoolColorArray\n"
+"print(array) # [[]] (Un PoolVector3Array vide dans un Array vide)\n"
+"[/codeblock]\n"
+"Au lieu de ça, le [PoolVector3Array] en entier doit être [i]réassigné[/i] "
+"avec [code]=[/code] pour que sa modification soit prise en compte :\n"
+"[codeblock]\n"
+"var array = [PoolVector3Array()]\n"
+"var pool_array = array[0] # Crée une copie du PoolVector3Array, puis assigne "
+"cette copie\n"
+"pool_array.push_back(Vector3(12, 34, 56))\n"
+"array[0] = pool_array\n"
+"print(array) # [[(12, 34, 56)]] (Un PoolVector3Array avec 1 élément dans un "
+"Array)\n"
+"[/codeblock]"
#: doc/classes/PoolVector3Array.xml
msgid ""
@@ -51139,6 +53109,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 +53184,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."
@@ -54542,15 +56558,14 @@ msgid "Returns the inverse of the quaternion."
msgstr "Retourne l'inverse du quaternion."
#: doc/classes/Quat.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if this quaternion and [code]quat[/code] are "
"approximately equal, by running [method @GDScript.is_equal_approx] on each "
"component."
msgstr ""
-"Retourne [code]true[/code] si cette couleur et [code]color[/code] sont "
-"approximativement égales, en exécutant [method @GDScript.is_equal_approx] "
-"sur chaque composant."
+"Retourne [code]true[/code] si ce quaternion et [code]quat[/code] sont "
+"approximativement égaux, en exécutant [method @GDScript.is_equal_approx] sur "
+"chaque composant."
#: doc/classes/Quat.xml
msgid "Returns whether the quaternion is normalized or not."
@@ -54662,6 +56677,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 +56763,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 +56799,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
@@ -54756,11 +56822,17 @@ msgid "Abstract base class for range-based controls."
msgstr "Classe de base abstraite pour les contrôles basés sur la portée."
#: doc/classes/Range.xml
+#, fuzzy
msgid ""
"Range is a base class for [Control] nodes that change a floating-point "
-"[i]value[/i] between a [i]minimum[/i] and a [i]maximum[/i], using [i]step[/"
-"i] and [i]page[/i], for example a [ScrollBar]."
+"[member value] between a [member min_value] and [member max_value], using a "
+"configured [member step] and [member page] size. See e.g. [ScrollBar] and "
+"[Slider] for examples of higher level nodes using Range."
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 ""
@@ -56927,11 +58999,17 @@ msgid "Locks the specified linear or rotational axis."
msgstr "Verrouille l'axe linéaire et de rotation spécifié."
#: doc/classes/RigidBody.xml
+#, fuzzy
msgid ""
-"Damps RigidBody's rotational forces.\n"
+"Damps the body's rotational forces. If this value is different from -1.0 it "
+"will be added to any angular damp derived from the world or areas.\n"
"See [member ProjectSettings.physics/3d/default_angular_damp] for more "
"details about damping."
msgstr ""
+"La vitesse à laquelle les objets arrêtent de tourner dans cette zone. "
+"Représente la vitesse angulaire perdue par seconde.\n"
+"Voir [membre ProjectSettings.physics/2d/default_angular_damp] pour plus de "
+"détails sur l'amortissement."
#: doc/classes/RigidBody.xml
msgid "Lock the body's rotation in the X axis."
@@ -57027,8 +59105,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 +59320,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 +59404,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 ""
@@ -58513,6 +60593,7 @@ msgid "One-shot timer."
msgstr "Minuteur à un coup."
#: doc/classes/SceneTreeTimer.xml
+#, fuzzy
msgid ""
"A one-shot timer managed by the scene tree, which emits [signal timeout] on "
"completion. See also [method SceneTree.create_timer].\n"
@@ -58524,8 +60605,21 @@ msgid ""
" yield(get_tree().create_timer(1.0), \"timeout\")\n"
" print(\"Timer ended.\")\n"
"[/codeblock]\n"
-"The timer will be automatically freed after its time elapses."
+"The timer will be automatically freed after its time elapses, so be aware "
+"that any reference you might have kept to it will become invalid."
msgstr ""
+"Un minuteur à un coup géré par l'arborescence, qui émet le signal [signal "
+"timeout] quand il se termine. Voir aussi [method SceneTree.create_timer].\n"
+"Contrairement aux [Timer], il ne nécessaire pas d'instancier un nœud. Il "
+"n'est souvent utilisé pour créer des minuteurs uniques comme dans l'exemple "
+"suivant :\n"
+"[codeblock]\n"
+"func some_function():\n"
+" print(\"Lancement du minuteur.\")\n"
+" yield(get_tree().create_timer(1.0), \"timeout\")\n"
+" print(\"Minuteur terminé.\")\n"
+"[/codeblock]\n"
+"Le minuteur sera automatiquement une fois terminé."
#: doc/classes/SceneTreeTimer.xml
msgid "The time remaining (in seconds)."
@@ -58615,6 +60709,82 @@ msgid ""
"prevent a [SceneTreeTween] from autostarting, you can call [method stop] "
"immediately after it was created."
msgstr ""
+"[SceneTreeTween] est un tween géré par l'arborescence. Contrairement à un "
+"[Tween], il ne nécessite pas la création d'un nœud.\n"
+"Les [SceneTreeTween] sont plus légers que les [AnimationPlayer], et sont "
+"donc plus adaptés pour les simples animations et les tâches générales qui ne "
+"nécessitent pas d'ajustements visuels depuis l'éditeur. Ils peuvent être "
+"utilisés de manière ponctuelles pour certaines logiques qui serait "
+"normalement faites par le code. Par exemple vous pouvez faire qu'un objet "
+"tire régulièrement avec une boucle qui crée un [CallbackTweener] avec le "
+"délai nécessaire.\n"
+"Un [SceneTreeTween] peut être créer soit avec [method SceneTree."
+"create_tween] ou [method Node.create_tween]. Les [SceneTreeTween] créés "
+"manuellement (avec [code]Tween.new()[/code]) sont invalides. Ils ne peuvent "
+"être utilisés pour interpoler les valeurs, sauf manuellement avec [method "
+"interpolate_value].\n"
+"Une animation de [SceneTreeTween] est composée d'une séquence de [Tweener], "
+"qui par défaut sont exécutés l'un après l'autre. Vous pouvez créer une "
+"séquence en ajoutant des [Tweener] au [SceneTreeTween]. Un exemple de "
+"séquence de [Tweener] peut être comme suit :\n"
+"[codeblock]\n"
+"var tween = get_tree().create_tween()\n"
+"tween.tween_property($Sprite, \"modulate\", Color.red, 1)\n"
+"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n"
+"tween.tween_callback($Sprite, \"queue_free\")\n"
+"[/codeblock]\n"
+"Cette séquence changera [code]$Sprite[/code] en rouge, puis le réduira "
+"jusqu'à le faire disparaitre et enfin [method Node.queue_free] sera appelée "
+"pour supprimer le nœud. Voir les méthodes [method tween_property], [method "
+"tween_interval], [method tween_callback] et [method tween_method] pour plus "
+"d'informations.\n"
+"Quand un [Tweener] est créé avec une des méthodes [code]tween_*[/code], une "
+"méthode peut être enchainée pour ajuster les propriétés de ce [Tweener]. Par "
+"exemple, si vous souhaitez définir un autre type de transition dans "
+"l'exemple précédent, vous pouvez faire :\n"
+"[codeblock]\n"
+"var tween = get_tree().create_tween()\n"
+"tween.tween_property($Sprite, \"modulate\", Color.red, 1).set_trans(Tween."
+"TRANS_SINE)\n"
+"tween.tween_property($Sprite, \"scale\", Vector2(), 1).set_trans(Tween."
+"TRANS_BOUNCE)\n"
+"tween.tween_callback($Sprite, \"queue_free\")\n"
+"[/codeblock]\n"
+"La plupart des méthodes [SceneTreeTween] peuvent être enchainées de cette "
+"façon. Dans cet exemple, le [SceneTreeTween] est lié et aura donc une "
+"transition par défaut :\n"
+"[codeblock]\n"
+"var tween = get_tree().create_tween().bind_node(self).set_trans(Tween."
+"TRANS_ELASTIC)\n"
+"tween.tween_property($Sprite, \"modulate\", Color.red, 1)\n"
+"tween.tween_property($Sprite, \"scale\", Vector2(), 1)\n"
+"tween.tween_callback($Sprite, \"queue_free\")\n"
+"[/codeblock]\n"
+"Un autre usage intéressant des [SceneTreeTween] est l'animation d'un "
+"ensemble arbitraire d'objets :\n"
+"[codeblock]\n"
+"var tween = create_tween()\n"
+"for sprite in get_children():\n"
+" tween.tween_property(sprite, \"position\", Vector2(), 1)\n"
+"[/codeblock]\n"
+"Dans l'exemple au-dessus, tous les enfants d'un nœud sont déplacés à leur "
+"tour à la position (0, 0).\n"
+"Certains [Tweener] utilisent des transitions et ralentissements. Les "
+"transitions fonctionnent avec les constantes de [enum Tween.TransitionType], "
+"et définissent la courbe de temps de l'animation (voir [url=https://easings."
+"net/]easings.net[/url] pour quelques exemples). Les ralentissements "
+"fonctionnent avec les constantes de [enum Tween.EaseType], et contrôle comme "
+"la transition [code]trans_type[/code] varie durant le temps écoulé de "
+"l'animation (au début, à la fin, ou les deux). Si vous ne savez pas quel "
+"comportement choisir, vous pouvez essayer différentes valeurs de [enum Tween."
+"TransitionType] avec [constant Tween.EASE_IN_OUT], et utilisez celle qui "
+"vous semble la meilleure.\n"
+"[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/"
+"tween_cheatsheet.png]Antisèche des types de transitions et de ralentissement "
+"des Tween[/url]\n"
+"[b]Note :[/b] Tous les [SceneTreeTween] seront automatiquement démarrés par "
+"défaut. Pour éviter qu'un [SceneTreeTween] démarre automatiquement, vous "
+"pouvez appeler [method stop] immédiatement après sa création."
#: doc/classes/SceneTreeTween.xml
msgid ""
@@ -58640,6 +60810,15 @@ msgid ""
"tween.chain().tween_property(...) # Will run after two above are finished.\n"
"[/codeblock]"
msgstr ""
+"Utiliser pour ajouter deux [Tweener] après que [method set_parallel] est "
+"appelé avec [code]true[/code].\n"
+"[codeblock]\n"
+"var tween = create_tween().set_parallel(true)\n"
+"tween.tween_property(...)\n"
+"tween.tween_property(...) # Sera lancé en parallèle avec l'appel au-dessus.\n"
+"tween.chain().tween_property(...) # Sera lancé que quand les deux appels au-"
+"dessus seront terminés.\n"
+"[/codeblock]"
#: doc/classes/SceneTreeTween.xml
msgid ""
@@ -58806,6 +60985,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 +61026,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 +61077,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 +61199,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
@@ -61666,6 +63908,25 @@ msgid ""
"[LineEdit], you can use [method Control.set_drag_forwarding] on the node "
"returned by [method get_line_edit]."
msgstr ""
+"SpinBox est un champs de texte pour les valeurs numériques. Il permet "
+"d'entrer des valeurs entières ou à virgule.\n"
+"[b]Exemple :[/b]\n"
+"[codeblock]\n"
+"var spin_box = SpinBox.new()\n"
+"add_child(spin_box)\n"
+"var line_edit = spin_box.get_line_edit()\n"
+"line_edit.context_menu_enabled = false\n"
+"spin_box.align = LineEdit.ALIGN_RIGHT\n"
+"[/codeblock]\n"
+"Le code ci-dessus créera un [SpinBox], désactivant son menu contextuel "
+"désactivé et alignant le text sur la droite.\n"
+"Voir la classe [Range] pour plus d'options pour les [SpinBox].\n"
+"[b]Note :[/b] [SpinBox] utilise en interne un nœud [LineEdit]. Pour changer "
+"le thème de l'arrière-plan d'un [SpinBox], ajoutez un élément de thème à "
+"personnaliser pour les [LineEdit].\n"
+"[b]Note :[/b] Si vous souhaitez implémenter le déposé-glissé sur le "
+"[LineEdit] utilisé, vous pouvez utiliser [method Control."
+"set_drag_forwarding] sur le nœud retourné par [method get_line_edit]."
#: doc/classes/SpinBox.xml
msgid "Applies the current value of this [SpinBox]."
@@ -61679,6 +63940,11 @@ msgid ""
"may cause a crash. If you wish to hide it or any of its children, use their "
"[member CanvasItem.visible] property."
msgstr ""
+"Retourne l'instance [LineEdit] utilisé pour ce [SpinBox]. Vous pouvez "
+"l'utiliser pour accéder au propriétés et méthodes de ce [LineEdit].\n"
+"[b]Avertissement :[/b] Cette instance est nécessaire en interne, la retirer "
+"ou la libérer peut provoquer un crash. Si vous voulez la masquer elle ou ses "
+"enfants, préférez leur propriété [member CanvasItem.visible]."
#: doc/classes/SpinBox.xml
msgid "Sets the text alignment of the [SpinBox]."
@@ -61711,6 +63977,8 @@ msgstr ""
#: doc/classes/SpinBox.xml
msgid "Sets a custom [Texture] for up and down arrows of the [SpinBox]."
msgstr ""
+"Définir une [Texture] personnalisée pour les flèches haut et bas de ce "
+"[SpinBox]."
#: doc/classes/SplitContainer.xml
msgid "Container for splitting and adjusting."
@@ -62210,6 +64478,13 @@ msgid ""
"static body, so even if it doesn't move, it affects other bodies as if it "
"was moving (this is useful for simulating conveyor belts or conveyor wheels)."
msgstr ""
+"Un corps statique pour la physique 3D. Un corps statique est un simple corps "
+"qui n'est pas prévu pour être déplacé. Contrairement au [RigidBody], ils ne "
+"consomment aucune ressource du CPU tant qu'ils ne sont pas déplacés.\n"
+"De plus, une vitesse linéaire ou angulaire constante peut être définie pour "
+"ce corps statique, de sorte que même s'il ne bouge pas, il affecte d'autres "
+"corps comme s'il se déplaçait (c'est utile pour simuler les tapis ou des "
+"roues roulants)."
#: doc/classes/StaticBody.xml
msgid ""
@@ -62229,6 +64504,9 @@ msgid ""
"Deprecated, use [member PhysicsMaterial.friction] instead via [member "
"physics_material_override]."
msgstr ""
+"Le frottement du corps, de 0 (sans frottement) à 1 (frottement complet).\n"
+"Obsolète, utilisez plutôt [membre PhysicsMaterial.friction] via [membre "
+"physique_material_override]."
#: doc/classes/StaticBody2D.xml
msgid "Static body for 2D physics."
@@ -62243,6 +64521,12 @@ msgid ""
"static body, which will affect colliding bodies as if it were moving (for "
"example, a conveyor belt)."
msgstr ""
+"Un corps statique pour la physique 2D. Un StaticBody2D est un corps qui "
+"n'est pas prévu pour être déplacé. C'est idéal pour implémenter des objets "
+"dans un environnement, quand des murs ou des plateformes.\n"
+"De plus, une vitesse linéaire ou angulaire constante peut être définie pour "
+"ce corps statique, de sorte que même s'il ne bouge pas, il affecte d'autres "
+"corps comme s'il se déplaçait (par exemple pour simuler des tapis roulants)."
#: doc/classes/StaticBody2D.xml
msgid ""
@@ -62863,13 +65147,13 @@ msgid ""
msgstr ""
#: doc/classes/String.xml
-#, fuzzy
msgid ""
"Returns a copy of the string with indentation (leading tabs and spaces) "
"removed. See also [method indent] to add indentation."
msgstr ""
-"Retourne une copie de la chaîne de caractères avec indentation (tabulations "
-"et espaces antéposés)."
+"Retourne une copie de la chaîne de caractères avec l'indentation (les "
+"tabulations et les espaces) retirée. Voir aussi [method indent] pour ajouter "
+"une indentation."
#: doc/classes/String.xml
msgid ""
@@ -62975,6 +65259,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 +65326,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 +65677,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 +65776,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 ""
@@ -63739,12 +66077,35 @@ msgid ""
"corner_radius_bottom_left: 20\n"
"[/codeblock]"
msgstr ""
+"Cette [StyleBox] peut être utilisée pour afficher différents rendus sans "
+"avoir besoin d'une texture. Les propriétés suivantes peuvent être "
+"personnalisées :\n"
+"- La couleur\n"
+"- La largueur de la bordure (pour chaque bordure séparément)\n"
+"- L'arrondi des coins (un rayon différent pour chaque coin)\n"
+"- L'ombre (la rayon et le décalage)\n"
+"Utiliser un grand rayon pour les coins est permis. Dès que les coins "
+"enchevêtrerons, la stylebox passera à une mesure relative. Par exemple :\n"
+"[codeblock]\n"
+"height = 30\n"
+"corner_radius_top_left = 50\n"
+"corner_radius_bottom_left = 100\n"
+"[/codeblock]\n"
+"La mesure relative donnera un ratio de 1:2 pour les deux coins gauches pour "
+"calculer l'actuelle largeur des coins. Ces deux coins ajoutés ne seront "
+"[b]jamais[/b] plus grands que la hauteur. Voici le résultat :\n"
+"[codeblock]\n"
+"corner_radius_top_left: 10\n"
+"corner_radius_bottom_left: 20\n"
+"[/codeblock]"
#: doc/classes/StyleBoxFlat.xml
msgid ""
"Returns the given [code]margin[/code]'s border width. See [enum Margin] for "
"possible values."
msgstr ""
+"Retourne la taille de la largueur de la bordure de la marge [code]margin[/"
+"code]. Voir [enum Margin] pour les valeurs possibles."
#: doc/classes/StyleBoxFlat.xml
msgid "Returns the smallest border width out of all four borders."
@@ -63763,6 +66124,8 @@ msgid ""
"Returns the size of the given [code]margin[/code]'s expand margin. See [enum "
"Margin] for possible values."
msgstr ""
+"Retourne la taille de la marge d'expansion de la marge [code]margin[/code]. "
+"Voir [enum Margin] pour les valeurs possibles."
#: doc/classes/StyleBoxFlat.xml
msgid ""
@@ -63928,6 +66291,14 @@ msgid ""
"user may try to click an area of the StyleBox that cannot actually receive "
"clicks."
msgstr ""
+"Étend la boite en dehors du rectangle du contrôle pour la bordure du bas. "
+"Utile avec [member border_width_bottom] pour afficher une bordure en dehors "
+"du rectangle du contrôle.\n"
+"[b]Note :[/b] Contrairement à [member StyleBox.content_margin_bottom], "
+"[member expand_margin_bottom] n'étend [i]pas[/i] la taille de la zone qui "
+"peut être cliquée du [Control]. Ça peut avoir un impact négatif sur "
+"l’accessibilité si c'est mal réglé, puisque l'utilisateur peut vouloir "
+"cliquer sur cette zone de la boite qui ne reçoit pas les clics."
#: doc/classes/StyleBoxFlat.xml
msgid ""
@@ -63940,6 +66311,14 @@ msgid ""
"user may try to click an area of the StyleBox that cannot actually receive "
"clicks."
msgstr ""
+"Étend la boite en dehors du rectangle du contrôle pour la bordure de gauche. "
+"Utile avec [member border_width_left] pour afficher une bordure en dehors du "
+"rectangle du contrôle.\n"
+"[b]Note :[/b] Contrairement à [member StyleBox.content_margin_left], [member "
+"expand_margin_left] n'étend [i]pas[/i] la taille de la zone qui peut être "
+"cliquée du [Control]. Ça peut avoir un impact négatif sur l’accessibilité si "
+"c'est mal réglé, puisque l'utilisateur peut vouloir cliquer sur cette zone "
+"de la boite qui ne reçoit pas les clics."
#: doc/classes/StyleBoxFlat.xml
msgid ""
@@ -63952,6 +66331,14 @@ msgid ""
"user may try to click an area of the StyleBox that cannot actually receive "
"clicks."
msgstr ""
+"Étend la boite en dehors du rectangle du contrôle pour la bordure de droite. "
+"Utile avec [member border_width_right] pour afficher une bordure en dehors "
+"du rectangle du contrôle.\n"
+"[b]Note :[/b] Contrairement à [member StyleBox.content_margin_right], "
+"[member expand_margin_right] n'étend [i]pas[/i] la taille de la zone qui "
+"peut être cliquée du [Control]. Ça peut avoir un impact négatif sur "
+"l’accessibilité si c'est mal réglé, puisque l'utilisateur peut vouloir "
+"cliquer sur cette zone de la boite qui ne reçoit pas les clics."
#: doc/classes/StyleBoxFlat.xml
msgid ""
@@ -63963,6 +66350,14 @@ msgid ""
"[Control]s. This can negatively impact usability if used wrong, as the user "
"may try to click an area of the StyleBox that cannot actually receive clicks."
msgstr ""
+"Étend la boite en dehors du rectangle du contrôle pour la bordure du haut. "
+"Utile avec [member border_width_top] pour afficher une bordure en dehors du "
+"rectangle du contrôle.\n"
+"[b]Note :[/b] Contrairement à [member StyleBox.content_margin_top], [member "
+"expand_margin_top] n'étend [i]pas[/i] la taille de la zone qui peut être "
+"cliquée du [Control]. Ça peut avoir un impact négatif sur l’accessibilité si "
+"c'est mal réglé, puisque l'utilisateur peut vouloir cliquer sur cette zone "
+"de la boite qui ne reçoit pas les clics."
#: doc/classes/StyleBoxFlat.xml
msgid ""
@@ -64498,12 +66893,12 @@ msgstr ""
"Retourne [code]true[/code] si la piste à l'index [code]idx[/code] est active."
#: doc/classes/TabContainer.xml doc/classes/Tabs.xml
-#, fuzzy
msgid ""
"Returns the [Texture] for the tab at index [code]tab_idx[/code] or "
"[code]null[/code] if the tab has no [Texture]."
msgstr ""
-"Retourne [code]true[/code] si la piste à l'index [code]idx[/code] est active."
+"Retourne la [Texture] pour l'onglet à l'index [code]tab_idx[/code] ou "
+"[code]null[/code] si l'onglet n'a pas de [Texture]."
#: doc/classes/TabContainer.xml
msgid ""
@@ -65241,6 +67636,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 +68175,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 +68188,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 +68235,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 +68281,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 +68303,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 ""
@@ -66496,14 +68964,14 @@ msgstr ""
"Retourne l'index de l'élément avec l'identifiant [code]id[/code] spécifié."
#: doc/classes/Theme.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if [Color] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
-"Retourne [code]true[/code] si le paramètre spécifié par [code]name[/code] "
-"existe, [code]false[/code] autrement."
+"Retourne [code]true[/code] si la [Color] nommée [code]name[/code] est dans "
+"[code]node_type[/code].\n"
+"Retourne [code]false[/code] si le thème n'a pas de [code]node_type[/code]."
#: doc/classes/Theme.xml
msgid ""
@@ -66522,14 +68990,14 @@ msgstr ""
"la chaîne égale à [code]0[/code])."
#: doc/classes/Theme.xml
-#, fuzzy
msgid ""
"Returns [code]true[/code] if [Font] with [code]name[/code] is in "
"[code]node_type[/code].\n"
"Returns [code]false[/code] if the theme does not have [code]node_type[/code]."
msgstr ""
-"Retourne [code]true[/code] si le paramètre spécifié par [code]name[/code] "
-"existe, [code]false[/code] autrement."
+"Retourne [code]true[/code] si la [Font] nommée [code]name[/code] est dans "
+"[code]node_type[/code].\n"
+"Retourne [code]false[/code] si le thème n'a pas de [code]node_type[/code]."
#: doc/classes/Theme.xml
msgid ""
@@ -67622,6 +70090,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 +70902,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 +70950,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 +72061,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 +72276,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 +72492,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 +72548,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\"."
@@ -71858,9 +74394,10 @@ msgid ""
msgstr ""
#: doc/classes/Viewport.xml
+#, fuzzy
msgid ""
-"If [code]true[/code], the viewport will use [World] defined in [code]world[/"
-"code] property."
+"If [code]true[/code], the viewport will use a unique copy of the [World] "
+"defined in [member world]."
msgstr ""
"Si [code]true[/code], la fenêtre d'affichage utilisera le [World] défini par "
"la propriété [code]world[/code]."
@@ -75707,10 +78244,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 ""
@@ -76089,6 +78629,9 @@ msgid ""
"Particles.draw_pass_1], [member Particles.draw_pass_2], [member Particles."
"draw_pass_3], and [member Particles.draw_pass_4]."
msgstr ""
+"Définit le maillage à utiliser pour les passes d'affichages spécifiées. "
+"Équivalent à [member Particles.draw_pass_1], [member Particles.draw_pass_2], "
+"[member Particles.draw_pass_3], et [member Particles.draw_pass_4]."
#: doc/classes/VisualServer.xml
msgid ""
@@ -76627,6 +79170,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 ""
@@ -76652,6 +79217,7 @@ msgid "Sets a viewport's canvas."
msgstr "Définit le canevas de la fenêtre d'affichage."
#: doc/classes/VisualServer.xml
+#, fuzzy
msgid ""
"Copies viewport to a region of the screen specified by [code]rect[/code]. If "
"[member Viewport.render_direct_to_screen] is [code]true[/code], then "
@@ -76669,9 +79235,28 @@ msgid ""
"[/codeblock]\n"
"Using this can result in significant optimization, especially on lower-end "
"devices. However, it comes at the cost of having to manage your viewports "
-"manually. For a further optimization see, [method "
+"manually. For 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 +83272,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 +83439,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 +83821,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 +83877,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 +83900,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."