From 70b2e6415b6bdea687cd66e9f51875a28758288e Mon Sep 17 00:00:00 2001 From: Julien Vitard Date: Sun, 16 Sep 2018 22:41:10 +0200 Subject: [PATCH] update ast library translation (#302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update ast library translation * ref #302: update ast library translation (avoid breaking Travis CI) * ref #302: update translation with advices * ref #302: update translation (docstring+dump) * ref #302: update ast module translation according to review --- library/ast.po | 148 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 141 insertions(+), 7 deletions(-) diff --git a/library/ast.po b/library/ast.po index 7a8aa9dd..6a1b623e 100644 --- a/library/ast.po +++ b/library/ast.po @@ -6,17 +6,18 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-02-15 00:41+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2018-09-11 07:42+0200\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Julien VITARD \n" +"X-Generator: Poedit 1.8.11\n" #: ../Doc/library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" -msgstr ":mod:`ast` --- Arbre Syntaxique Abstrait" +msgstr ":mod:`ast` --- Arbres Syntaxiques Abstraits" #: ../Doc/library/ast.rst:10 msgid "**Source code:** :source:`Lib/ast.py`" @@ -29,6 +30,10 @@ msgid "" "with each Python release; this module helps to find out programmatically " "what the current grammar looks like." msgstr "" +"Le module :mod:`ast` permet aux applications Python de traiter la grammaire " +"abstraite de l'arbre syntaxique Python. La grammaire abstraite Python elle-" +"même est susceptible d'être modifiée à chaque nouvelle version de Python; ce " +"module permet de trouver à quoi la grammaire actuelle ressemble." #: ../Doc/library/ast.rst:19 msgid "" @@ -39,10 +44,16 @@ msgid "" "syntax tree can be compiled into a Python code object using the built-in :" "func:`compile` function." msgstr "" +"Un arbre syntaxique abstrait peut être généré en passant l'option :data:`ast." +"PyCF_ONLY_AST` à la fonction native :func:`compile`, ou en utilisant la " +"fonction de facilité :func:`parse` fournie par le module. Le résultat est un " +"arbre composé d'objets dont les classes héritent toutes de :class:`ast.AST`. " +"Un arbre syntaxique abstrait peut être compilé en code objet Python en " +"utilisant la fonction native :func:`compile`." #: ../Doc/library/ast.rst:27 msgid "Node classes" -msgstr "" +msgstr "Les classes nœud" #: ../Doc/library/ast.rst:31 msgid "" @@ -51,6 +62,10 @@ msgid "" "`below `. They are defined in the :mod:`_ast` C module " "and re-exported in :mod:`ast`." msgstr "" +"C'est la classe de base de toute classe nœud de l'AST. Les classes nœud " +"courantes sont dérivées du fichier :file:`Parser/Python.asdl`, qui est " +"reproduit :ref:`ci-dessous `. Ils sont définis dans le " +"module C :mod:`_ast` et ré-exportés dans le module :mod:`ast`." #: ../Doc/library/ast.rst:36 msgid "" @@ -62,12 +77,22 @@ msgid "" "rules with alternatives (aka \"sums\"), the left-hand side class is " "abstract: only instances of specific constructor nodes are ever created." msgstr "" +"Il y a une classe définie pour chacun des symboles présents à gauche dans la " +"grammaire abstraite (par exemple, :class:`ast.stmt` ou :class:`ast.expr`). " +"En plus de cela, il y a une classe définie pour chacun des constructeurs " +"présentés à droite; ces classes héritent des classes situées à gauche dans " +"l'arbre. Par exemple, la classe :class:`ast.BinOp` hérite de la classe :" +"class:`ast.expr`. Pour les règles de réécriture avec alternatives (comme " +"*sums*), la partie gauche est abstraite : seules les instances des " +"constructeurs spécifiques aux nœuds sont créés." #: ../Doc/library/ast.rst:46 msgid "" "Each concrete class has an attribute :attr:`_fields` which gives the names " "of all child nodes." msgstr "" +"Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms " +"de tous les nœuds enfants." #: ../Doc/library/ast.rst:49 msgid "" @@ -75,6 +100,9 @@ msgid "" "the type as defined in the grammar. For example, :class:`ast.BinOp` " "instances have an attribute :attr:`left` of type :class:`ast.expr`." msgstr "" +"Chaque instance d'une classe concrète possède un attribut pour chaque nœud " +"enfant, du type défini par la grammaire. Par exemple, les instances :class:" +"`ast.BinOp` possèdent un attribut :attr:`left` de type :class:`ast.expr`." #: ../Doc/library/ast.rst:53 msgid "" @@ -84,6 +112,12 @@ msgid "" "lists. All possible attributes must be present and have valid values when " "compiling an AST with :func:`compile`." msgstr "" +"Si ces attributs sont marqués comme optionnels dans la grammaire (en " +"utilisant un point d'interrogation ``?``), la valeur peut être ``None``. Si " +"les attributs peuvent avoir zéro ou plus valeurs (marqués avec un astérisque " +"``*``), les valeurs sont représentées par des listes Python. Tous les " +"attributs possibles doivent être présents et avoir une valeur valide pour " +"compiler un AST avec :func:`compile`." #: ../Doc/library/ast.rst:62 msgid "" @@ -93,29 +127,44 @@ msgid "" "`col_offset` is the UTF-8 byte offset of the first token that generated the " "node. The UTF-8 offset is recorded because the parser uses UTF-8 internally." msgstr "" +"Les instances des sous-classes :class:`ast.expr` et :class:`ast.stmt` " +"possèdent les attributs :attr:`lineno` et :attr:`col_offset`. L'attribut :" +"attr:`lineno` est le numéro de ligne dans le code source (indexé à partir de " +"1 tel que la première ligne est la ligne 1) et l'attribut :attr:`col_offset` " +"qui représente le décalage UTF-8 en byte du premier jeton qui a généré le " +"nœud. Le décalage UTF-8 est enregistré parce que l'analyseur syntaxique " +"utilise l'UTF-8 en interne." #: ../Doc/library/ast.rst:69 msgid "" "The constructor of a class :class:`ast.T` parses its arguments as follows:" msgstr "" +"Le constructeur d'une classe :class:`ast.T` analyse ses arguments comme " +"suit :" #: ../Doc/library/ast.rst:71 msgid "" "If there are positional arguments, there must be as many as there are items " "in :attr:`T._fields`; they will be assigned as attributes of these names." msgstr "" +"S'il y a des arguments positionnels, il doit y avoir autant de termes dans :" +"attr:`T._fields`; ils sont assignés comme attributs portant ces noms." #: ../Doc/library/ast.rst:73 msgid "" "If there are keyword arguments, they will set the attributes of the same " "names to the given values." msgstr "" +"S'il y a des arguments nommés, ils définissent les attributs de mêmes noms " +"avec les valeurs données." #: ../Doc/library/ast.rst:76 msgid "" "For example, to create and populate an :class:`ast.UnaryOp` node, you could " "use ::" msgstr "" +"Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " +"utiliser : ::" #: ../Doc/library/ast.rst:88 msgid "or the more compact ::" @@ -127,7 +176,7 @@ msgstr "Grammaire abstraite" #: ../Doc/library/ast.rst:99 msgid "The abstract grammar is currently defined as follows:" -msgstr "" +msgstr "La grammaire abstraite est actuellement définie comme suit :" #: ../Doc/library/ast.rst:106 msgid ":mod:`ast` Helpers" @@ -138,18 +187,25 @@ msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" msgstr "" +"À part la classe nœud, le module :mod:`ast` définit ces fonctions et classes " +"utilitaires pour traverser les arbres syntaxiques abstraits :" #: ../Doc/library/ast.rst:113 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." msgstr "" +"Analyse le code source en un nœud AST. Équivalent à ``compile(source, " +"filename, mode, ast.PyCF_ONLY_AST)``." #: ../Doc/library/ast.rst:117 ../Doc/library/ast.rst:135 msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string due to stack depth limitations in Python's AST compiler." msgstr "" +"Il est possible de faire planter l'interpréteur Python avec des chaînes " +"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " +"la limitation de la profondeur de la pile d'appels." #: ../Doc/library/ast.rst:124 msgid "" @@ -158,6 +214,11 @@ msgid "" "following Python literal structures: strings, bytes, numbers, tuples, lists, " "dicts, sets, booleans, and ``None``." msgstr "" +"Évalue de manière sûre un nœud expression ou une chaîne de caractères " +"contenant une expression littérale Python ou un conteneur. La chaîne de " +"caractères ou le nœud fourni peut seulement faire partie des littéraux " +"Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, " +"dictionnaires, ensembles, booléens, et ``None``." #: ../Doc/library/ast.rst:129 msgid "" @@ -166,10 +227,15 @@ msgid "" "capable of evaluating arbitrarily complex expressions, for example involving " "operators or indexing." msgstr "" +"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères " +"contenant des valeurs Python de sources non fiable sans avoir besoin " +"d'analyser les valeurs elles-mêmes. Cette fonction n'est pas capable " +"d'évaluer des expressions complexes arbitraires, par exemple impliquant des " +"opérateurs ou de l'indexation." #: ../Doc/library/ast.rst:139 msgid "Now allows bytes and set literals." -msgstr "Accepte maintenant les *bytes* et *sets* écrits littéralement." +msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*." #: ../Doc/library/ast.rst:145 msgid "" @@ -178,10 +244,15 @@ msgid "" "`Module` node), or ``None`` if it has no docstring. If *clean* is true, " "clean up the docstring's indentation with :func:`inspect.cleandoc`." msgstr "" +"Renvoie la *docstring* du *node* donné (qui doit être un nœud de type :class:" +"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" +"`Module`), ou ``None`` s'il n'a pas de *docstring*. Si *clean* est vrai, " +"cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect." +"cleandoc`." #: ../Doc/library/ast.rst:151 msgid ":class:`AsyncFunctionDef` is now supported." -msgstr "" +msgstr ":class:`AsyncFunctionDef` est maintenant gérée" #: ../Doc/library/ast.rst:157 msgid "" @@ -191,30 +262,47 @@ msgid "" "adds these attributes recursively where not already set, by setting them to " "the values of the parent node. It works recursively starting at *node*." msgstr "" +"Lorsque l'on compile un arbre avec :func:`compile`, le compilateur attend " +"les attributs :attr:`lineno` et :attr:`col_offset` pour tous les nœuds qui " +"les supportent. Il est fastidieux de les remplir pour les nœuds générés, " +"cette fonction utilitaire ajoute ces attributs de manière récursive là où " +"ils ne sont pas déjà définis, en les définissant comme les valeurs du nœud " +"parent. Elle fonctionne récursivement en démarrant de *node*." #: ../Doc/library/ast.rst:166 msgid "" "Increment the line number of each node in the tree starting at *node* by " "*n*. This is useful to \"move code\" to a different location in a file." msgstr "" +"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en " +"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un " +"endroit différent dans un fichier." #: ../Doc/library/ast.rst:172 msgid "" "Copy source location (:attr:`lineno` and :attr:`col_offset`) from *old_node* " "to *new_node* if possible, and return *new_node*." msgstr "" +"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud " +"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " +"*new_node*." #: ../Doc/library/ast.rst:178 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." msgstr "" +"Produit un n-uplet de ``(fieldname, value)`` pour chaque champ de ``node." +"_fields`` qui est présent dans *node*." #: ../Doc/library/ast.rst:184 msgid "" "Yield all direct child nodes of *node*, that is, all fields that are nodes " "and all items of fields that are lists of nodes." msgstr "" +"Produit tous les nœuds enfants directs de *node*, c'est à dire, tous les " +"champs qui sont des nœuds et tous les éléments des champs qui sont des " +"listes de nœuds." #: ../Doc/library/ast.rst:190 msgid "" @@ -222,6 +310,10 @@ msgid "" "(including *node* itself), in no specified order. This is useful if you " "only want to modify nodes in place and don't care about the context." msgstr "" +"Produit récursivement tous les nœuds enfants dans l'arbre en commençant par " +"*node* (*node* lui-même est inclus), sans ordre spécifique. C'est utile " +"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " +"contexte." #: ../Doc/library/ast.rst:197 msgid "" @@ -229,12 +321,18 @@ msgid "" "visitor function for every node found. This function may return a value " "which is forwarded by the :meth:`visit` method." msgstr "" +"Classe de base pour un visiteur de nœud, qui parcourt l'arbre syntaxique " +"abstrait et appelle une fonction de visite pour chacun des nœuds trouvés. " +"Cette fonction peut renvoyer une valeur qui est transmise par la méthode :" +"meth:`visit`." #: ../Doc/library/ast.rst:201 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." msgstr "" +"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite " +"à la sous-classe." #: ../Doc/library/ast.rst:206 msgid "" @@ -242,16 +340,23 @@ msgid "" "`self.visit_{classname}` where *classname* is the name of the node class, " "or :meth:`generic_visit` if that method doesn't exist." msgstr "" +"Visite un nœud. L'implémentation par défaut appelle la méthode :samp:`self." +"visit_{classname}` où *classname* représente le nom de la classe du nœud, " +"ou :meth:`generic_visit` si cette méthode n'existe pas." #: ../Doc/library/ast.rst:212 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "" +"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud." #: ../Doc/library/ast.rst:214 msgid "" "Note that child nodes of nodes that have a custom visitor method won't be " "visited unless the visitor calls :meth:`generic_visit` or visits them itself." msgstr "" +"Notons que les nœuds enfants qui possèdent une méthode de visite spéciale ne " +"seront pas visités à moins que le visiteur n'appelle la méthode :meth:" +"`generic_visit` ou ne les visite lui-même." #: ../Doc/library/ast.rst:218 msgid "" @@ -259,12 +364,17 @@ msgid "" "during traversal. For this a special visitor exists (:class:" "`NodeTransformer`) that allows modifications." msgstr "" +"N'utilisez pas :class:`NodeVisitor` si vous souhaitez appliquer des " +"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial " +"existe (:class:`NodeTransformer`) qui permet les modifications." #: ../Doc/library/ast.rst:225 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." msgstr "" +"Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique " +"abstrait et permet les modifications des nœuds." #: ../Doc/library/ast.rst:228 msgid "" @@ -274,12 +384,20 @@ msgid "" "location, otherwise it is replaced with the return value. The return value " "may be the original node in which case no replacement takes place." msgstr "" +"Le :class:`NodeTransformer` traverse l'AST et utilise la valeur renvoyée par " +"les méthodes du visiteur pour remplacer ou supprimer l'ancien nœud. Si la " +"valeur renvoyée par la méthode du visiteur est ``None``, le nœud est " +"supprimé de sa position, sinon il est remplacé par la valeur de retour. La " +"valeur de retour peut être le nœud original et dans ce cas, il n'y a pas de " +"remplacement. " #: ../Doc/library/ast.rst:234 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" msgstr "" +"Voici un exemple du *transformer* qui réécrit les occurrences du " +"dictionnaire (``foo``) en ``data['foo']`` : ::" #: ../Doc/library/ast.rst:246 msgid "" @@ -287,6 +405,9 @@ msgid "" "either transform the child nodes yourself or call the :meth:`generic_visit` " "method for the node first." msgstr "" +"Gardez en tête que si un nœud sur lequel vous travaillez a des nœuds " +"enfants, vous devez transformer également ces nœuds enfant vous-même ou " +"appeler d'abord la méthode :meth:`generic_visit` sur le nœud." #: ../Doc/library/ast.rst:250 msgid "" @@ -294,6 +415,9 @@ msgid "" "statement nodes), the visitor may also return a list of nodes rather than " "just a single node." msgstr "" +"Pour les nœuds qui font partie d'une collection d'instructions (cela " +"s'applique à tous les nœuds instruction), le visiteur peut aussi renvoyer la " +"liste des nœuds plutôt qu'un seul nœud." #: ../Doc/library/ast.rst:254 msgid "Usually you use the transformer like this::" @@ -308,9 +432,19 @@ msgid "" "numbers and column offsets are not dumped by default. If this is wanted, " "*include_attributes* can be set to ``True``." msgstr "" +"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile " +"à des fins de débogage. La chaîne de caractères renvoyée présente les noms " +"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on " +"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme " +"``False``. Les attributs comme les numéros de ligne et les décalages de " +"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, " +"l'option *include_attributes* peut être définie comme ``True``." #: ../Doc/library/ast.rst:270 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." msgstr "" +"`Green Tree Snakes `_, une " +"ressource documentaire externe, qui possède plus de détails pour travailler " +"avec des ASTs Python."