diff options
Diffstat (limited to 'doc/translations/fr.po')
-rw-r--r-- | doc/translations/fr.po | 2992 |
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¬_valued&multiple=22&multiple=33&multiple=44\"\n" "[/codeblock]" msgstr "" +"Génère le contenu d'une requête GET/POST de style \"application/x-www-form-" +"urlencoded\" à partir d'un dictionnaire, par exemple :\n" +"[codeblock]\n" +"var fields = {\"username\": \"utilisateur\", \"password\": \"mot-de-" +"passe\"}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"# Returns \"username=utilisateur&password=mot-de-passe\"\n" +"[/codeblock]\n" +"De plus, si une clé a la valeur [code]null[/code], seule la clé sera " +"ajoutée, sans le signe égal ni la valeur. Si la valeur est un tableau, une " +"même clé sera ajoutée pour chaque élément du tableau.\n" +"[codeblock]\n" +"var fields = {\"single\": 123, \"not_valued\": null, \"multiple\": [22, 33, " +"44]}\n" +"var query_string = http_client.query_string_from_dict(fields)\n" +"# Retourne \"single=123¬_valued&multiple=22&multiple=33&multiple=44\"\n" +"[/codeblock]" #: doc/classes/HTTPClient.xml msgid "Reads one chunk from the response." @@ -31285,6 +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." |