From 9b64cb5f8fee216498992218540491206b6b6b70 Mon Sep 17 00:00:00 2001 From: Jean-Abou-Samra <37271310+Jean-Abou-Samra@users.noreply.github.com> Date: Wed, 20 Oct 2021 00:01:45 +0200 Subject: [PATCH] Traduction de tutorial/controlflow.po (#1715) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automerge of PR #1715 by @Jean-Abou-Samra #1714 J'ai essayé de suivre les termes proposés dans #1710. Closes #1714. Co-authored-by: Christophe Nanteuil <35002064+christopheNan@users.noreply.github.com> --- tutorial/controlflow.po | 97 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 89 insertions(+), 8 deletions(-) diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index c131d738..3a2a49bc 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-23 16:16+0200\n" -"PO-Revision-Date: 2021-09-04 02:09+0200\n" +"PO-Revision-Date: 2021-10-16 23:16+0200\n" "Last-Translator: Jean Abou Samra \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" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0\n" #: tutorial/controlflow.rst:5 msgid "More Control Flow Tools" @@ -60,6 +60,9 @@ msgid "" "specific types or attributes, you may also find the :keyword:`!match` " "statement useful. For more details see :ref:`tut-match`." msgstr "" +"Pour les comparaisons avec beaucoup de constantes, ainsi que les tests " +"d'appartenance à un type ou de forme d'un attribut, l'instruction :keyword:`!" +"match` décrite plus bas peut se révéler utile (voir :ref:`tut-match`)." #: tutorial/controlflow.rst:46 msgid ":keyword:`!for` Statements" @@ -167,15 +170,14 @@ msgstr "" "paramètre est :func:`sum` ::" #: tutorial/controlflow.rst:157 -#, fuzzy msgid "" "Later we will see more functions that return iterables and take iterables as " "arguments. In chapter :ref:`tut-structures`, we will discuss in more detail " "about :func:`list`." msgstr "" "Plus loin nous voyons d'autres fonctions qui donnent des itérables ou en " -"prennent en paramètre. Si vous vous demandez comment obtenir une liste à " -"partir d'un *range*, voici la solution ::" +"prennent en paramètre. De plus amples détails sur :func:`list` sont donnés " +"dans :ref:`tut-structures`." #: tutorial/controlflow.rst:164 msgid "" @@ -274,9 +276,8 @@ msgstr "" "L'instruction :keyword:`!pass` est alors ignorée silencieusement ::" #: tutorial/controlflow.rst:251 -#, fuzzy msgid ":keyword:`!match` Statements" -msgstr "L'instruction :keyword:`!pass`" +msgstr "L'instruction :keyword:`!match`" #: tutorial/controlflow.rst:253 msgid "" @@ -286,28 +287,47 @@ msgid "" "it can also extract components (sequence elements or object attributes) from " "the value into variables." msgstr "" +"L'instruction ``match`` réalise un filtrage par motif. Elle confronte la " +"valeur d'une expression à plusieurs filtres successifs donnés par les " +"instructions ``case``. L'instruction ``match`` peut faire penser au " +"``switch`` que l'on trouve dans les langages C, Java, JavaScript et autres. " +"Elle est cependant bien plus générale : les filtres définissent des formes " +"possibles en imposant des conditions, et permettent d'extraire dans des " +"variables des composantes de la valeur, comme les éléments d'une séquence ou " +"les attributs d'un objet." #: tutorial/controlflow.rst:259 msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" +"Dans sa plus simple expression, une instruction ``match`` compare une valeur " +"à des littéraux :" #: tutorial/controlflow.rst:272 msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." msgstr "" +"Remarquez l'emploi du signe souligné ``_`` dans le dernier bloc, qui est " +"normalement un nom de variable spécial. Ici, c'est un filtre *attrape-tout*, " +"c'est-à-dire qu'il accepte toutes les valeurs. Si aucun des filtres dans les " +"``case`` ne fonctionne, aucune des branches indentées sous les ``case`` " +"n'est exécutée." #: tutorial/controlflow.rst:275 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" +"On peut combiner plusieurs littéraux en un seul filtre avec le signe ``|``, " +"qui se lit OU." #: tutorial/controlflow.rst:280 msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" msgstr "" +"Les filtres peuvent prendre une forme similaire aux affectations multiples, " +"et provoquer la liaison de variables :" #: tutorial/controlflow.rst:296 msgid "" @@ -318,6 +338,12 @@ msgid "" "which makes it conceptually similar to the unpacking assignment ``(x, y) = " "point``." msgstr "" +"Observez bien cet exemple ! Le premier filtre contient simplement deux " +"littéraux. C'est une sorte d'extension des filtres littéraux. Mais les deux " +"filtres suivants mélangent un littéral et un nom de variable. Si un tel " +"filtre réussit, il provoque l'affectation à la variable. Le quatrième filtre " +"est constitué de deux variables, ce qui le fait beaucoup ressembler à " +"l'affectation multiple ``(x, y) = point``." #: tutorial/controlflow.rst:303 msgid "" @@ -325,6 +351,10 @@ msgid "" "followed by an argument list resembling a constructor, but with the ability " "to capture attributes into variables::" msgstr "" +"Si vous structurez vos données par l'utilisation de classes, vous pouvez " +"former des filtres avec le nom de la classe suivi d'une liste d'arguments. " +"Ces filtres sont semblables à l'appel d'un constructeur, et permettent de " +"capturer des attributs." #: tutorial/controlflow.rst:324 msgid "" @@ -335,6 +365,13 @@ msgid "" "\"y\"), the following patterns are all equivalent (and all bind the ``y`` " "attribute to the ``var`` variable)::" msgstr "" +"Un certain nombre de classes natives, notamment les classes de données, " +"prennent en charge le filtrage par arguments positionnels en définissant un " +"ordre des attributs. Vous pouvez ajouter cette possibilité à vos propres " +"classes en y définissant l'attribut spécial ``__match_args__``. Par exemple, " +"le mettre à ``(\"x\", \"y\")`` rend tous les filtres ci-dessous équivalents " +"(en particulier, tous provoquent la liaison de l'attribut ``y`` à la " +"variable ``var``)." #: tutorial/controlflow.rst:335 msgid "" @@ -346,12 +383,22 @@ msgid "" "(recognized by the \"(...)\" next to them like ``Point`` above) are never " "assigned to." msgstr "" +"Une méthode préconisée pour lire les filtres est de les voir comme une " +"extension de ce que l'on peut placer à gauche du signe ``=`` dans une " +"affectation. Cela permet de visualiser quelles variables sont liées à quoi. " +"Seuls les noms simples, comme ``var`` ci-dessus, sont des variables " +"susceptibles d'être liées à une valeur. Il n'y a jamais de liaison pour les " +"noms qualifiés (avec un point, comme dans ``truc.machin``), les noms " +"d'attributs (tels que ``x=`` et ``y=`` dans l'exemple précédent) et les noms " +"de classes (identifiés par les parenthèses à leur droite, comme ``Point``)." #: tutorial/controlflow.rst:342 msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of " "points, we could match it like this::" msgstr "" +"On peut imbriquer les filtres autant que de besoin. Ainsi, on peut lire une " +"courte liste de points comme ceci :" #: tutorial/controlflow.rst:357 msgid "" @@ -359,10 +406,15 @@ msgid "" "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" +"Un filtre peut comporter un ``if``, qui introduit ce que l'on appelle une " +"garde. Si le filtre réussit, la garde est alors testée et, si elle s'évalue " +"à une valeur fausse, l'exécution continue au bloc ``case`` suivant. Les " +"variables sont liées avant l'évaluation de la garde, et peuvent être " +"utilisées à l'intérieur." #: tutorial/controlflow.rst:367 msgid "Several other key features of this statement:" -msgstr "" +msgstr "Voici quelques autres éléments sur cette instruction :" #: tutorial/controlflow.rst:369 msgid "" @@ -370,6 +422,10 @@ msgid "" "meaning and actually match arbitrary sequences. An important exception is " "that they don't match iterators or strings." msgstr "" +"Comme dans les affectations multiples, les filtres de *n*-uplet et de liste " +"sont totalement équivalents et autorisent tous les types de séquences. " +"Exception importante, ils n'autorisent pas les itérateurs ni les chaînes de " +"caractères." #: tutorial/controlflow.rst:373 msgid "" @@ -378,6 +434,12 @@ msgid "" "also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items " "without binding the remaining items." msgstr "" +"Les filtres de séquence peuvent faire intervenir l'affectation étoilée : " +"``[x, y, *reste]`` ou ``(x, y, *reste)`` ont le même sens que dans une " +"affectation avec ``=``. Le nom de variable après l'étoile peut aussi être " +"l'attrape-tout ``_``. Ainsi, ``(x, y, *_)`` est un filtre qui reconnaît les " +"séquences à deux éléments ou plus, en capturant les deux premiers et en " +"ignorant le reste." #: tutorial/controlflow.rst:378 msgid "" @@ -386,34 +448,53 @@ msgid "" "sequence patterns, extra keys are ignored. An unpacking like ``**rest`` is " "also supported. (But ``**_`` would be redundant, so it not allowed.)" msgstr "" +"Il existe les filtres d'association, qui ressemblent syntaxiquement aux " +"dictionnaires. Par exemple, le filtre ``{\"bande_passante\": b, \"latence\": " +"l}`` extrait les valeurs des clés ``\"bande_passante\"`` et ``\"latence\"`` " +"dans un dictionnaire ou une autre table de correspondances. Contrairement " +"aux filtres de séquence, les clés absentes du filtre sont ignorées et le " +"filtre réussit tout de même. L'affectation double-étoilée (``**reste``) " +"fonctionne aussi (cependant, ``**_`` serait redondant et n'est donc pas " +"permis)." #: tutorial/controlflow.rst:383 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "" +"On peut capturer la valeur d'une partie d'un filtre avec le mot-clé ``as``, " +"par exemple :" #: tutorial/controlflow.rst:387 msgid "" "will capture the second element of the input as ``p2`` (as long as the input " "is a sequence of two points)" msgstr "" +"Ce filtre, lorsqu'il est comparé à une séquence de deux points, réussit et " +"capture le second dans la variable ``p2``." #: tutorial/controlflow.rst:390 msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" +"La plupart des littéraux sont comparés par égalité. Néanmoins, les " +"singletons ``True``, ``False`` et ``None`` sont comparés par identité." #: tutorial/controlflow.rst:393 msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" msgstr "" +"Les filtres peuvent contenir des noms qui se réfèrent à des constantes. Ces " +"noms doivent impérativement être qualifiés (contenir un point) pour ne pas " +"être interprétés comme des variables de capture." #: tutorial/controlflow.rst:410 msgid "" "For a more detailed explanation and additional examples, you can look into :" "pep:`636` which is written in a tutorial format." msgstr "" +"Pour plus d'explications et d'exemples, lire la :pep:`636` (en anglais), qui " +"est écrite sous forme de tutoriel." #: tutorial/controlflow.rst:416 msgid "Defining Functions"