Make merge (#1639)

Automerge of PR #1639 by @JulienPalard #1636 Closes #1636
This commit is contained in:
Julien Palard 2021-05-26 19:39:06 +02:00 committed by GitHub
commit dafa30ed3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-24 17:33+0100\n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"PO-Revision-Date: 2021-04-09 22:48+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -243,11 +243,11 @@ msgstr ""
"L'instruction :keyword:`continue`, également empruntée au C, fait passer la "
"boucle à son itération suivante ::"
#: tutorial/controlflow.rst:223
#: tutorial/controlflow.rst:224
msgid ":keyword:`!pass` Statements"
msgstr "L'instruction :keyword:`!pass`"
#: tutorial/controlflow.rst:225
#: tutorial/controlflow.rst:226
msgid ""
"The :keyword:`pass` statement does nothing. It can be used when a statement "
"is required syntactically but the program requires no action. For example::"
@ -256,12 +256,12 @@ msgstr ""
"lorsqu'une instruction est nécessaire pour fournir une syntaxe correcte, "
"mais qu'aucune action ne doit être effectuée. Par exemple ::"
#: tutorial/controlflow.rst:232
#: tutorial/controlflow.rst:233
msgid "This is commonly used for creating minimal classes::"
msgstr ""
"On utilise couramment cette instruction pour créer des classes minimales ::"
#: tutorial/controlflow.rst:238
#: tutorial/controlflow.rst:239
msgid ""
"Another place :keyword:`pass` can be used is as a place-holder for a "
"function or conditional body when you are working on new code, allowing you "
@ -273,11 +273,11 @@ msgstr ""
"permettant ainsi de construire votre code à un niveau plus abstrait. "
"L'instruction :keyword:`!pass` est alors ignorée silencieusement ::"
#: tutorial/controlflow.rst:249
#: tutorial/controlflow.rst:250
msgid "Defining Functions"
msgstr "Définir des fonctions"
#: tutorial/controlflow.rst:251
#: tutorial/controlflow.rst:252
msgid ""
"We can create a function that writes the Fibonacci series to an arbitrary "
"boundary::"
@ -285,7 +285,7 @@ msgstr ""
"On peut créer une fonction qui écrit la suite de Fibonacci jusqu'à une "
"limite imposée ::"
#: tutorial/controlflow.rst:271
#: tutorial/controlflow.rst:272
msgid ""
"The keyword :keyword:`def` introduces a function *definition*. It must be "
"followed by the function name and the parenthesized list of formal "
@ -297,7 +297,7 @@ msgstr ""
"paramètres. L'instruction qui constitue le corps de la fonction débute à la "
"ligne suivante et doit être indentée."
#: tutorial/controlflow.rst:276
#: tutorial/controlflow.rst:277
msgid ""
"The first statement of the function body can optionally be a string literal; "
"this string literal is the function's documentation string, or :dfn:"
@ -316,7 +316,7 @@ msgstr ""
"naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une "
"bonne pratique que de documenter le code que vous écrivez."
#: tutorial/controlflow.rst:283
#: tutorial/controlflow.rst:284
msgid ""
"The *execution* of a function introduces a new symbol table used for the "
"local variables of the function. More precisely, all variable assignments "
@ -342,7 +342,7 @@ msgstr ""
"instruction :keyword:`global` et, pour les variables des fonctions "
"englobantes, désignées dans une instruction :keyword:`nonlocal`)."
#: tutorial/controlflow.rst:294
#: tutorial/controlflow.rst:295
msgid ""
"The actual parameters (arguments) to a function call are introduced in the "
"local symbol table of the called function when it is called; thus, arguments "
@ -359,7 +359,7 @@ msgstr ""
"s'appelle elle-même par récursion, une nouvelle table de symboles locaux est "
"créée pour cet appel."
#: tutorial/controlflow.rst:301
#: tutorial/controlflow.rst:302
msgid ""
"A function definition associates the function name with the function object "
"in the current symbol table. The interpreter recognizes the object pointed "
@ -372,7 +372,7 @@ msgstr ""
"référence à une même fonction, ils peuvent alors tous être utilisés pour "
"appeler la fonction ::"
#: tutorial/controlflow.rst:312
#: tutorial/controlflow.rst:313
msgid ""
"Coming from other languages, you might object that ``fib`` is not a function "
"but a procedure since it doesn't return a value. In fact, even functions "
@ -391,7 +391,7 @@ msgstr ""
"Vous pouvez le constater, si vous y tenez vraiment, en utilisant :func:"
"`print` ::"
#: tutorial/controlflow.rst:323
#: tutorial/controlflow.rst:324
msgid ""
"It is simple to write a function that returns a list of the numbers of the "
"Fibonacci series, instead of printing it::"
@ -399,14 +399,14 @@ msgstr ""
"Il est facile d'écrire une fonction qui renvoie une liste de la série de "
"Fibonacci au lieu de l'afficher ::"
#: tutorial/controlflow.rst:339
#: tutorial/controlflow.rst:340
msgid "This example, as usual, demonstrates some new Python features:"
msgstr ""
"Cet exemple, comme d'habitude, illustre de nouvelles fonctionnalités de "
"Python :"
# énumération --> pas de majuscule et point-virgule en fin de proposition.
#: tutorial/controlflow.rst:341
#: tutorial/controlflow.rst:342
msgid ""
"The :keyword:`return` statement returns with a value from a function. :"
"keyword:`!return` without an expression argument returns ``None``. Falling "
@ -418,7 +418,7 @@ msgstr ""
"``None`` ;"
# fin d'énumération --> pas de majuscule et point final.
#: tutorial/controlflow.rst:345
#: tutorial/controlflow.rst:346
msgid ""
"The statement ``result.append(a)`` calls a *method* of the list object "
"``result``. A method is a function that 'belongs' to an object and is named "
@ -444,11 +444,11 @@ msgstr ""
"liste. Dans cet exemple, elle est l'équivalent de ``result = result + [a]``, "
"en plus efficace."
#: tutorial/controlflow.rst:360
#: tutorial/controlflow.rst:361
msgid "More on Defining Functions"
msgstr "Davantage sur la définition des fonctions"
#: tutorial/controlflow.rst:362
#: tutorial/controlflow.rst:363
msgid ""
"It is also possible to define functions with a variable number of arguments. "
"There are three forms, which can be combined."
@ -456,11 +456,11 @@ msgstr ""
"Il est également possible de définir des fonctions avec un nombre variable "
"d'arguments. Trois syntaxes peuvent être utilisées, éventuellement combinées."
#: tutorial/controlflow.rst:369
#: tutorial/controlflow.rst:370
msgid "Default Argument Values"
msgstr "Valeur par défaut des arguments"
#: tutorial/controlflow.rst:371
#: tutorial/controlflow.rst:372
msgid ""
"The most useful form is to specify a default value for one or more "
"arguments. This creates a function that can be called with fewer arguments "
@ -470,12 +470,12 @@ msgstr ""
"certains arguments. Ceci crée une fonction qui peut être appelée avec moins "
"d'arguments que ceux présents dans sa définition. Par exemple ::"
#: tutorial/controlflow.rst:387
#: tutorial/controlflow.rst:388
msgid "This function can be called in several ways:"
msgstr "Cette fonction peut être appelée de plusieurs façons :"
# énumération --> pas de majuscule
#: tutorial/controlflow.rst:389
#: tutorial/controlflow.rst:390
msgid ""
"giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``"
msgstr ""
@ -483,7 +483,7 @@ msgstr ""
"want to quit?')`` ;"
# énumération --> pas de majuscule et point-virgule en fin de proposition.
#: tutorial/controlflow.rst:391
#: tutorial/controlflow.rst:392
msgid ""
"giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', "
"2)``"
@ -492,7 +492,7 @@ msgstr ""
"overwrite the file?', 2)`` ;"
# fin d'énumération --> pas de majuscule et point final.
#: tutorial/controlflow.rst:393
#: tutorial/controlflow.rst:394
msgid ""
"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come "
"on, only yes or no!')``"
@ -500,7 +500,7 @@ msgstr ""
"en fournissant tous les arguments : ``ask_ok('OK to overwrite the file?', 2, "
"'Come on, only yes or no!')``."
#: tutorial/controlflow.rst:396
#: tutorial/controlflow.rst:397
msgid ""
"This example also introduces the :keyword:`in` keyword. This tests whether "
"or not a sequence contains a certain value."
@ -508,7 +508,7 @@ msgstr ""
"Cet exemple présente également le mot-clé :keyword:`in`. Celui-ci permet de "
"tester si une séquence contient une certaine valeur."
#: tutorial/controlflow.rst:399
#: tutorial/controlflow.rst:400
msgid ""
"The default values are evaluated at the point of function definition in the "
"*defining* scope, so that ::"
@ -516,11 +516,11 @@ msgstr ""
"Les valeurs par défaut sont évaluées lors de la définition de la fonction "
"dans la portée de la *définition*, de telle sorte que ::"
#: tutorial/controlflow.rst:410
#: tutorial/controlflow.rst:411
msgid "will print ``5``."
msgstr "affiche ``5``."
#: tutorial/controlflow.rst:412
#: tutorial/controlflow.rst:413
msgid ""
"**Important warning:** The default value is evaluated only once. This makes "
"a difference when the default is a mutable object such as a list, "
@ -534,11 +534,11 @@ msgstr ""
"arguments qui lui sont passés au fil des appels successifs ::"
# pas de majuscule : ok
#: tutorial/controlflow.rst:425
#: tutorial/controlflow.rst:426
msgid "This will print ::"
msgstr "affiche ::"
#: tutorial/controlflow.rst:431
#: tutorial/controlflow.rst:432
msgid ""
"If you don't want the default to be shared between subsequent calls, you can "
"write the function like this instead::"
@ -546,11 +546,11 @@ msgstr ""
"Si vous ne voulez pas que cette valeur par défaut soit partagée entre des "
"appels successifs, vous pouvez écrire la fonction de cette façon ::"
#: tutorial/controlflow.rst:444
#: tutorial/controlflow.rst:445
msgid "Keyword Arguments"
msgstr "Les arguments nommés"
#: tutorial/controlflow.rst:446
#: tutorial/controlflow.rst:447
msgid ""
"Functions can also be called using :term:`keyword arguments <keyword "
"argument>` of the form ``kwarg=value``. For instance, the following "
@ -560,7 +560,7 @@ msgstr ""
"`arguments nommés <keyword argument>` sous la forme ``kwarg=value``. Par "
"exemple, la fonction suivante ::"
#: tutorial/controlflow.rst:455
#: tutorial/controlflow.rst:456
msgid ""
"accepts one required argument (``voltage``) and three optional arguments "
"(``state``, ``action``, and ``type``). This function can be called in any "
@ -570,11 +570,11 @@ msgstr ""
"(``state``, ``action`` et ``type``). Cette fonction peut être appelée de "
"n'importe laquelle des façons suivantes ::"
#: tutorial/controlflow.rst:466
#: tutorial/controlflow.rst:467
msgid "but all the following calls would be invalid::"
msgstr "mais tous les appels qui suivent sont incorrects ::"
#: tutorial/controlflow.rst:473
#: tutorial/controlflow.rst:474
msgid ""
"In a function call, keyword arguments must follow positional arguments. All "
"the keyword arguments passed must match one of the arguments accepted by the "
@ -593,7 +593,7 @@ msgstr ""
"recevoir une valeur plus d'une fois, comme l'illustre cet exemple incorrect "
"du fait de cette restriction ::"
#: tutorial/controlflow.rst:489
#: tutorial/controlflow.rst:490
msgid ""
"When a final formal parameter of the form ``**name`` is present, it receives "
"a dictionary (see :ref:`typesmapping`) containing all keyword arguments "
@ -612,15 +612,15 @@ msgstr ""
"formels (``*name`` doit être présent avant ``**name``). Par exemple, si vous "
"définissez une fonction comme ceci ::"
#: tutorial/controlflow.rst:506
#: tutorial/controlflow.rst:507
msgid "It could be called like this::"
msgstr "Elle pourrait être appelée comme ceci ::"
#: tutorial/controlflow.rst:514
#: tutorial/controlflow.rst:515
msgid "and of course it would print:"
msgstr "et, bien sûr, elle affiche :"
#: tutorial/controlflow.rst:527
#: tutorial/controlflow.rst:528
msgid ""
"Note that the order in which the keyword arguments are printed is guaranteed "
"to match the order in which they were provided in the function call."
@ -628,11 +628,11 @@ msgstr ""
"Notez que Python garantit que l'ordre d'affichage des arguments est le même "
"que l'ordre dans lesquels ils sont fournis lors de l'appel à la fonction."
#: tutorial/controlflow.rst:531
#: tutorial/controlflow.rst:532
msgid "Special parameters"
msgstr "Paramètres spéciaux"
#: tutorial/controlflow.rst:533
#: tutorial/controlflow.rst:534
msgid ""
"By default, arguments may be passed to a Python function either by position "
"or explicitly by keyword. For readability and performance, it makes sense to "
@ -647,11 +647,11 @@ msgstr ""
"définition de la fonction pour déterminer si les éléments sont transmis par "
"position seule, par position ou nommé, ou seulement nommé."
#: tutorial/controlflow.rst:539
#: tutorial/controlflow.rst:540
msgid "A function definition may look like:"
msgstr "Voici à quoi ressemble une définition de fonction :"
#: tutorial/controlflow.rst:550
#: tutorial/controlflow.rst:551
msgid ""
"where ``/`` and ``*`` are optional. If used, these symbols indicate the kind "
"of parameter by how the arguments may be passed to the function: positional-"
@ -663,11 +663,11 @@ msgstr ""
"fonction : position seule, position ou nommé, et seulement nommé. Les "
"paramètres par mot-clé sont aussi appelés paramètres nommés."
#: tutorial/controlflow.rst:557
#: tutorial/controlflow.rst:558
msgid "Positional-or-Keyword Arguments"
msgstr "Les arguments positionnels-ou-nommés"
#: tutorial/controlflow.rst:559
#: tutorial/controlflow.rst:560
msgid ""
"If ``/`` and ``*`` are not present in the function definition, arguments may "
"be passed to a function by position or by keyword."
@ -675,11 +675,11 @@ msgstr ""
"Si ``/`` et ``*`` ne sont pas présents dans la définition de fonction, les "
"arguments peuvent être passés à une fonction par position ou par nommés."
#: tutorial/controlflow.rst:564
#: tutorial/controlflow.rst:565
msgid "Positional-Only Parameters"
msgstr "Paramètres positionnels uniquement"
#: tutorial/controlflow.rst:566
#: tutorial/controlflow.rst:567
msgid ""
"Looking at this in a bit more detail, it is possible to mark certain "
"parameters as *positional-only*. If *positional-only*, the parameters' order "
@ -698,7 +698,7 @@ msgstr ""
"des paramètres. S'il n'y a pas de ``/`` dans la définition de fonction, il "
"n'y a pas de paramètres « positionnels uniquement »."
#: tutorial/controlflow.rst:574
#: tutorial/controlflow.rst:575
msgid ""
"Parameters following the ``/`` may be *positional-or-keyword* or *keyword-"
"only*."
@ -706,11 +706,11 @@ msgstr ""
"Les paramètres qui suivent le ``/`` peuvent être *positionnels-ou-nommés* ou "
"*nommés-uniquement*."
#: tutorial/controlflow.rst:578
#: tutorial/controlflow.rst:579
msgid "Keyword-Only Arguments"
msgstr "Arguments nommés uniquement"
#: tutorial/controlflow.rst:580
#: tutorial/controlflow.rst:581
msgid ""
"To mark parameters as *keyword-only*, indicating the parameters must be "
"passed by keyword argument, place an ``*`` in the arguments list just before "
@ -721,11 +721,11 @@ msgstr ""
"``*`` dans la liste des arguments juste avant le premier paramètre "
"*uniquement nommé*."
#: tutorial/controlflow.rst:586
#: tutorial/controlflow.rst:587
msgid "Function Examples"
msgstr "Exemples de fonctions"
#: tutorial/controlflow.rst:588
#: tutorial/controlflow.rst:589
msgid ""
"Consider the following example function definitions paying close attention "
"to the markers ``/`` and ``*``::"
@ -733,7 +733,7 @@ msgstr ""
"Considérons l'exemple suivant de définitions de fonctions en portant une "
"attention particulière aux marqueurs ``/`` et ``*`` ::"
#: tutorial/controlflow.rst:604
#: tutorial/controlflow.rst:605
msgid ""
"The first function definition, ``standard_arg``, the most familiar form, "
"places no restrictions on the calling convention and arguments may be passed "
@ -743,7 +743,7 @@ msgstr ""
"familière, n'impose aucune restriction sur la convention d'appel et les "
"arguments peuvent être passés par position ou nommés ::"
#: tutorial/controlflow.rst:614
#: tutorial/controlflow.rst:615
msgid ""
"The second function ``pos_only_arg`` is restricted to only use positional "
"parameters as there is a ``/`` in the function definition::"
@ -751,7 +751,7 @@ msgstr ""
"La deuxième fonction ``pos_only_arg`` restreint le passage aux seuls "
"arguments par position car il y a un ``/`` dans la définition de fonction ::"
#: tutorial/controlflow.rst:625
#: tutorial/controlflow.rst:626
msgid ""
"The third function ``kwd_only_args`` only allows keyword arguments as "
"indicated by a ``*`` in the function definition::"
@ -759,7 +759,7 @@ msgstr ""
"La troisième fonction ``kwd_only_args`` n'autorise que les arguments nommés "
"comme l'indique le ``*`` dans la définition de fonction ::"
#: tutorial/controlflow.rst:636
#: tutorial/controlflow.rst:637
msgid ""
"And the last uses all three calling conventions in the same function "
"definition::"
@ -767,7 +767,7 @@ msgstr ""
"Et la dernière utilise les trois conventions d'appel dans la même définition "
"de fonction ::"
#: tutorial/controlflow.rst:656
#: tutorial/controlflow.rst:657
msgid ""
"Finally, consider this function definition which has a potential collision "
"between the positional argument ``name`` and ``**kwds`` which has ``name`` "
@ -777,7 +777,7 @@ msgstr ""
"potentielle entre l'argument positionnel ``name`` et ``**kwds`` qui a "
"``name`` comme mot-clé ::"
#: tutorial/controlflow.rst:661
#: tutorial/controlflow.rst:662
msgid ""
"There is no possible call that will make it return ``True`` as the keyword "
"``'name'`` will always bind to the first parameter. For example::"
@ -785,7 +785,7 @@ msgstr ""
"Il n'y a pas d'appel possible qui renvoie ``True`` car le mot-clé ``'name'`` "
"est toujours lié au premier paramètre. Par exemple ::"
#: tutorial/controlflow.rst:670
#: tutorial/controlflow.rst:671
msgid ""
"But using ``/`` (positional only arguments), it is possible since it allows "
"``name`` as a positional argument and ``'name'`` as a key in the keyword "
@ -795,7 +795,7 @@ msgstr ""
"puisqu'il permet d'utiliser ``name`` comme argument positionnel et "
"``'name'`` comme mot-clé dans les arguments nommés ::"
#: tutorial/controlflow.rst:677
#: tutorial/controlflow.rst:678
msgid ""
"In other words, the names of positional-only parameters can be used in "
"``**kwds`` without ambiguity."
@ -803,11 +803,11 @@ msgstr ""
"En d'autres termes, les noms des paramètres seulement positionnels peuvent "
"être utilisés sans ambiguïté dans ``**kwds``."
#: tutorial/controlflow.rst:682
#: tutorial/controlflow.rst:683
msgid "Recap"
msgstr "Récapitulatif"
#: tutorial/controlflow.rst:684
#: tutorial/controlflow.rst:685
msgid ""
"The use case will determine which parameters to use in the function "
"definition::"
@ -815,12 +815,12 @@ msgstr ""
"Le cas d'utilisation détermine les paramètres à utiliser dans la définition "
"de fonction ::"
#: tutorial/controlflow.rst:688
#: tutorial/controlflow.rst:689
msgid "As guidance:"
msgstr "Quelques conseils :"
# énumération --> pas de majuscule et point-virgule en fin de proposition.
#: tutorial/controlflow.rst:690
#: tutorial/controlflow.rst:691
msgid ""
"Use positional-only if you want the name of the parameters to not be "
"available to the user. This is useful when parameter names have no real "
@ -835,7 +835,7 @@ msgstr ""
"de prendre certains paramètres positionnels et mots-clés arbitraires ;"
# énumération --> pas de majuscule et point-virgule en fin de proposition.
#: tutorial/controlflow.rst:695
#: tutorial/controlflow.rst:696
msgid ""
"Use keyword-only when names have meaning and the function definition is more "
"understandable by being explicit with names or you want to prevent users "
@ -847,7 +847,7 @@ msgstr ""
"l'argument qui est passé ;"
# fin d'énumération
#: tutorial/controlflow.rst:698
#: tutorial/controlflow.rst:699
msgid ""
"For an API, use positional-only to prevent breaking API changes if the "
"parameter's name is modified in the future."
@ -855,11 +855,11 @@ msgstr ""
"dans le cas d'une API, utilisez les paramètres seulement positionnels pour "
"éviter de casser l'API si le nom du paramètre est modifié dans l'avenir."
#: tutorial/controlflow.rst:704
#: tutorial/controlflow.rst:705
msgid "Arbitrary Argument Lists"
msgstr "Listes d'arguments arbitraires"
#: tutorial/controlflow.rst:709
#: tutorial/controlflow.rst:710
msgid ""
"Finally, the least frequently used option is to specify that a function can "
"be called with an arbitrary number of arguments. These arguments will be "
@ -872,7 +872,7 @@ msgstr ""
"nombre variable d'arguments, zéro ou plus arguments normaux peuvent "
"apparaître ::"
#: tutorial/controlflow.rst:718
#: tutorial/controlflow.rst:719
msgid ""
"Normally, these ``variadic`` arguments will be last in the list of formal "
"parameters, because they scoop up all remaining input arguments that are "
@ -884,11 +884,11 @@ msgstr ""
"parce qu'ils agrègent toutes les valeurs suivantes. Tout paramètre placé "
"après le paramètre ``*arg`` ne pourra être utilisé que par son nom ::"
#: tutorial/controlflow.rst:735
#: tutorial/controlflow.rst:736
msgid "Unpacking Argument Lists"
msgstr "Séparation des listes d'arguments"
#: tutorial/controlflow.rst:737
#: tutorial/controlflow.rst:738
msgid ""
"The reverse situation occurs when the arguments are already in a list or "
"tuple but need to be unpacked for a function call requiring separate "
@ -905,7 +905,7 @@ msgstr ""
"l'opérateur ``*`` pour séparer les arguments présents dans une liste ou un "
"*n*-uplet ::"
#: tutorial/controlflow.rst:753
#: tutorial/controlflow.rst:754
msgid ""
"In the same fashion, dictionaries can deliver keyword arguments with the "
"``**``\\ -operator::"
@ -913,11 +913,11 @@ msgstr ""
"De la même façon, les dictionnaires peuvent fournir des arguments nommés en "
"utilisant l'opérateur ``**`` ::"
#: tutorial/controlflow.rst:769
#: tutorial/controlflow.rst:770
msgid "Lambda Expressions"
msgstr "Fonctions anonymes"
#: tutorial/controlflow.rst:771
#: tutorial/controlflow.rst:772
msgid ""
"Small anonymous functions can be created with the :keyword:`lambda` keyword. "
"This function returns the sum of its two arguments: ``lambda a, b: a+b``. "
@ -935,7 +935,7 @@ msgstr ""
"définition de fonction normale. Comme les fonctions imbriquées, les "
"fonctions lambda peuvent référencer des variables de la portée englobante ::"
#: tutorial/controlflow.rst:788
#: tutorial/controlflow.rst:789
msgid ""
"The above example uses a lambda expression to return a function. Another "
"use is to pass a small function as an argument::"
@ -944,11 +944,11 @@ msgstr ""
"Une autre utilisation classique est de donner une fonction minimaliste "
"directement en tant que paramètre ::"
#: tutorial/controlflow.rst:800
#: tutorial/controlflow.rst:801
msgid "Documentation Strings"
msgstr "Chaînes de documentation"
#: tutorial/controlflow.rst:807
#: tutorial/controlflow.rst:808
msgid ""
"Here are some conventions about the content and formatting of documentation "
"strings."
@ -956,7 +956,7 @@ msgstr ""
"Voici quelques conventions concernant le contenu et le format des chaînes de "
"documentation."
#: tutorial/controlflow.rst:810
#: tutorial/controlflow.rst:811
msgid ""
"The first line should always be a short, concise summary of the object's "
"purpose. For brevity, it should not explicitly state the object's name or "
@ -970,7 +970,7 @@ msgstr ""
"si le nom est un verbe qui décrit une opération). La convention veut que la "
"ligne commence par une majuscule et se termine par un point."
#: tutorial/controlflow.rst:816
#: tutorial/controlflow.rst:817
msgid ""
"If there are more lines in the documentation string, the second line should "
"be blank, visually separating the summary from the rest of the description. "
@ -982,7 +982,7 @@ msgstr ""
"Les autres lignes peuvent alors constituer un ou plusieurs paragraphes "
"décrivant le mode d'utilisation de l'objet, ses effets de bord, etc."
#: tutorial/controlflow.rst:821
#: tutorial/controlflow.rst:822
msgid ""
"The Python parser does not strip indentation from multi-line string literals "
"in Python, so tools that process documentation have to strip indentation if "
@ -1010,15 +1010,15 @@ msgstr ""
"début de ligne doivent être supprimées. L'équivalent des espaces doit être "
"testé après expansion des tabulations (normalement remplacées par 8 espaces)."
#: tutorial/controlflow.rst:833
#: tutorial/controlflow.rst:834
msgid "Here is an example of a multi-line docstring::"
msgstr "Voici un exemple de chaîne de documentation multi-lignes ::"
#: tutorial/controlflow.rst:851
#: tutorial/controlflow.rst:852
msgid "Function Annotations"
msgstr "Annotations de fonctions"
#: tutorial/controlflow.rst:859
#: tutorial/controlflow.rst:860
msgid ""
":ref:`Function annotations <function>` are completely optional metadata "
"information about the types used by user-defined functions (see :pep:`3107` "
@ -1028,7 +1028,8 @@ msgstr ""
"optionnelles décrivant les types utilisés par une fonction définie par "
"l'utilisateur (voir les :pep:`3107` et :pep:`484` pour plus d'informations)."
#: tutorial/controlflow.rst:863
#: tutorial/controlflow.rst:864
#, fuzzy
msgid ""
":term:`Annotations <function annotation>` are stored in the :attr:"
"`__annotations__` attribute of the function as a dictionary and have no "
@ -1037,7 +1038,7 @@ msgid ""
"the value of the annotation. Return annotations are defined by a literal ``-"
">``, followed by an expression, between the parameter list and the colon "
"denoting the end of the :keyword:`def` statement. The following example has "
"a positional argument, a keyword argument, and the return value annotated::"
"a required argument, an optional argument, and the return value annotated::"
msgstr ""
"Les :term:`annotations <function annotation>` sont stockées dans l'attribut :"
"attr:`__annotations__` de la fonction, sous la forme d'un dictionnaire, et "
@ -1048,11 +1049,11 @@ msgstr ""
"points de fin de l'instruction :keyword:`def`. L'exemple suivant a un "
"paramètre positionnel, un paramètre nommé et la valeur de retour annotés ::"
#: tutorial/controlflow.rst:885
#: tutorial/controlflow.rst:886
msgid "Intermezzo: Coding Style"
msgstr "Aparté : le style de codage"
#: tutorial/controlflow.rst:890
#: tutorial/controlflow.rst:891
msgid ""
"Now that you are about to write longer, more complex pieces of Python, it is "
"a good time to talk about *coding style*. Most languages can be written (or "
@ -1067,7 +1068,7 @@ msgstr ""
"votre code plus facile aux autres est toujours une bonne idée et adopter un "
"bon style de codage peut énormément vous y aider."
#: tutorial/controlflow.rst:896
#: tutorial/controlflow.rst:897
msgid ""
"For Python, :pep:`8` has emerged as the style guide that most projects "
"adhere to; it promotes a very readable and eye-pleasing coding style. Every "
@ -1079,11 +1080,11 @@ msgstr ""
"Chaque développeur Python se doit donc de la lire et de s'en inspirer autant "
"que possible ; voici ses principaux points notables :"
#: tutorial/controlflow.rst:901
#: tutorial/controlflow.rst:902
msgid "Use 4-space indentation, and no tabs."
msgstr "Utilisez des indentations de 4 espaces et pas de tabulation."
#: tutorial/controlflow.rst:903
#: tutorial/controlflow.rst:904
msgid ""
"4 spaces are a good compromise between small indentation (allows greater "
"nesting depth) and large indentation (easier to read). Tabs introduce "
@ -1094,13 +1095,13 @@ msgstr ""
"le code plus facile à lire). Les tabulations introduisent de la confusion et "
"doivent être proscrites autant que possible."
#: tutorial/controlflow.rst:907
#: tutorial/controlflow.rst:908
msgid "Wrap lines so that they don't exceed 79 characters."
msgstr ""
"Faites en sorte que les lignes ne dépassent pas 79 caractères, au besoin en "
"insérant des retours à la ligne."
#: tutorial/controlflow.rst:909
#: tutorial/controlflow.rst:910
msgid ""
"This helps users with small displays and makes it possible to have several "
"code files side-by-side on larger displays."
@ -1109,7 +1110,7 @@ msgstr ""
"écran et, pour les autres, cela leur permet de visualiser plusieurs fichiers "
"côte à côte."
#: tutorial/controlflow.rst:912
#: tutorial/controlflow.rst:913
msgid ""
"Use blank lines to separate functions and classes, and larger blocks of code "
"inside functions."
@ -1117,16 +1118,16 @@ msgstr ""
"Utilisez des lignes vides pour séparer les fonctions et les classes, ou pour "
"scinder de gros blocs de code à l'intérieur de fonctions."
#: tutorial/controlflow.rst:915
#: tutorial/controlflow.rst:916
msgid "When possible, put comments on a line of their own."
msgstr ""
"Lorsque c'est possible, placez les commentaires sur leurs propres lignes."
#: tutorial/controlflow.rst:917
#: tutorial/controlflow.rst:918
msgid "Use docstrings."
msgstr "Utilisez les chaînes de documentation."
#: tutorial/controlflow.rst:919
#: tutorial/controlflow.rst:920
msgid ""
"Use spaces around operators and after commas, but not directly inside "
"bracketing constructs: ``a = f(1, 2) + g(3, 4)``."
@ -1134,7 +1135,7 @@ msgstr ""
"Utilisez des espaces autour des opérateurs et après les virgules, mais pas "
"juste à l'intérieur des parenthèses : ``a = f(1, 2) + g(3, 4)``."
#: tutorial/controlflow.rst:922
#: tutorial/controlflow.rst:923
msgid ""
"Name your classes and functions consistently; the convention is to use "
"``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for "
@ -1147,7 +1148,7 @@ msgstr ""
"toujours ``self`` comme nom du premier argument des méthodes (voyez :ref:"
"`tut-firstclasses` pour en savoir plus sur les classes et les méthodes)."
#: tutorial/controlflow.rst:927
#: tutorial/controlflow.rst:928
msgid ""
"Don't use fancy encodings if your code is meant to be used in international "
"environments. Python's default, UTF-8, or even plain ASCII work best in any "
@ -1157,7 +1158,7 @@ msgstr ""
"utilisé dans des environnements internationaux. Par défaut, Python travaille "
"en UTF-8. Pour couvrir tous les cas, préférez le simple ASCII."
#: tutorial/controlflow.rst:931
#: tutorial/controlflow.rst:932
msgid ""
"Likewise, don't use non-ASCII characters in identifiers if there is only the "
"slightest chance people speaking a different language will read or maintain "
@ -1167,11 +1168,11 @@ msgstr ""
"variables s'il est envisageable qu'une personne parlant une autre langue "
"lise ou doive modifier votre code."
#: tutorial/controlflow.rst:937
#: tutorial/controlflow.rst:938
msgid "Footnotes"
msgstr "Notes"
#: tutorial/controlflow.rst:938
#: tutorial/controlflow.rst:939
msgid ""
"Actually, *call by object reference* would be a better description, since if "
"a mutable object is passed, the caller will see any changes the callee makes "

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"PO-Revision-Date: 2020-09-30 14:26+0200\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -713,12 +713,12 @@ msgstr ""
"contenir n'importe quel opérateur, pas seulement des comparaisons."
#: tutorial/datastructures.rst:662
#, fuzzy
msgid ""
"The comparison operators ``in`` and ``not in`` check whether a value occurs "
"(does not occur) in a sequence. The operators ``is`` and ``is not`` compare "
"whether two objects are really the same object; this only matters for "
"mutable objects like lists. All comparison operators have the same "
"priority, which is lower than that of all numerical operators."
"whether two objects are really the same object. All comparison operators "
"have the same priority, which is lower than that of all numerical operators."
msgstr ""
"Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur est "
"présente ou non dans une séquence. Les opérateurs ``is`` et ``is not`` "
@ -727,7 +727,7 @@ msgstr ""
"comparaison ont la même priorité, qui est plus faible que celle des "
"opérateurs numériques."
#: tutorial/datastructures.rst:668
#: tutorial/datastructures.rst:667
msgid ""
"Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` "
"is less than ``b`` and moreover ``b`` equals ``c``."
@ -735,7 +735,7 @@ msgstr ""
"Les comparaisons peuvent être enchaînées. Par exemple, ``a < b == c`` teste "
"si ``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``."
#: tutorial/datastructures.rst:671
#: tutorial/datastructures.rst:670
msgid ""
"Comparisons may be combined using the Boolean operators ``and`` and ``or``, "
"and the outcome of a comparison (or of any other Boolean expression) may be "
@ -753,7 +753,7 @@ msgstr ""
"Comme toujours, des parenthèses peuvent être utilisées pour exprimer "
"l'instruction désirée."
#: tutorial/datastructures.rst:678
#: tutorial/datastructures.rst:677
msgid ""
"The Boolean operators ``and`` and ``or`` are so-called *short-circuit* "
"operators: their arguments are evaluated from left to right, and evaluation "
@ -770,7 +770,7 @@ msgstr ""
"tant que booléen, la valeur de retour d'un opérateur en circuit court est "
"celle du dernier argument évalué."
#: tutorial/datastructures.rst:685
#: tutorial/datastructures.rst:684
msgid ""
"It is possible to assign the result of a comparison or other Boolean "
"expression to a variable. For example, ::"
@ -778,7 +778,7 @@ msgstr ""
"Il est possible d'affecter le résultat d'une comparaison ou d'une autre "
"expression booléenne à une variable. Par exemple ::"
#: tutorial/datastructures.rst:693
#: tutorial/datastructures.rst:692
msgid ""
"Note that in Python, unlike C, assignment inside expressions must be done "
"explicitly with the :ref:`walrus operator <why-can-t-i-use-an-assignment-in-"
@ -791,11 +791,11 @@ msgstr ""
"erreurs fréquentes que l'on rencontre en C, lorsque l'on tape ``=`` alors "
"que l'on voulait faire un test avec ``==``."
#: tutorial/datastructures.rst:703
#: tutorial/datastructures.rst:702
msgid "Comparing Sequences and Other Types"
msgstr "Comparer des séquences avec d'autres types"
#: tutorial/datastructures.rst:704
#: tutorial/datastructures.rst:703
msgid ""
"Sequence objects typically may be compared to other objects with the same "
"sequence type. The comparison uses *lexicographical* ordering: first the "
@ -824,7 +824,7 @@ msgstr ""
"caractères utilise le code Unicode des caractères. Voici quelques exemples "
"de comparaisons entre séquences de même type ::"
#: tutorial/datastructures.rst:724
#: tutorial/datastructures.rst:723
msgid ""
"Note that comparing objects of different types with ``<`` or ``>`` is legal "
"provided that the objects have appropriate comparison methods. For example, "
@ -838,11 +838,11 @@ msgstr ""
"etc. Dans les autres cas, au lieu de donner un ordre imprévisible, "
"l'interpréteur lève une exception :exc:`TypeError`."
#: tutorial/datastructures.rst:732
#: tutorial/datastructures.rst:731
msgid "Footnotes"
msgstr "Notes"
#: tutorial/datastructures.rst:733
#: tutorial/datastructures.rst:732
msgid ""
"Other languages may return the mutated object, which allows method chaining, "
"such as ``d->insert(\"a\")->remove(\"b\")->sort();``."

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-17 16:05+0100\n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"PO-Revision-Date: 2021-03-24 19:55+0100\n"
"Last-Translator: Thibaut HUBERT <thibauthubert@msn.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -361,9 +361,10 @@ msgid "Exception Chaining"
msgstr "Chaînage d'exceptions"
#: tutorial/errors.rst:275
#, fuzzy
msgid ""
"The :keyword:`raise` statement allows an optional :keyword:`from` which "
"enables chaining exceptions. For example::"
"The :keyword:`raise` statement allows an optional :keyword:`from<raise>` "
"which enables chaining exceptions. For example::"
msgstr ""
"L'instruction :keyword:`raise` autorise un :keyword:`from` optionnel qui "
"permet de chaîner les exceptions. Par exemple ::"
@ -495,6 +496,17 @@ msgstr ""
"que la clause :keyword:`!finally` a été exécutée."
#: tutorial/errors.rst:408
#, fuzzy
msgid ""
"If the :keyword:`!finally` clause executes a :keyword:`break`, :keyword:"
"`continue` or :keyword:`return` statement, exceptions are not re-raised."
msgstr ""
"Si dans l'exécution d'un bloc :keyword:`!try`, on atteint une instruction :"
"keyword:`break`, :keyword:`continue` ou :keyword:`return`, alors la clause :"
"keyword:`!finally` s'exécute juste avant l'exécution de :keyword:`!break`, :"
"keyword:`!continue` ou :keyword:`!return`."
#: tutorial/errors.rst:412
msgid ""
"If the :keyword:`!try` statement reaches a :keyword:`break`, :keyword:"
"`continue` or :keyword:`return` statement, the :keyword:`!finally` clause "
@ -506,7 +518,7 @@ msgstr ""
"keyword:`!finally` s'exécute juste avant l'exécution de :keyword:`!break`, :"
"keyword:`!continue` ou :keyword:`!return`."
#: tutorial/errors.rst:414
#: tutorial/errors.rst:418
msgid ""
"If a :keyword:`!finally` clause includes a :keyword:`!return` statement, the "
"returned value will be the one from the :keyword:`!finally` clause's :"
@ -518,15 +530,15 @@ msgstr ""
"keyword:`!finally`, et non la valeur du :keyword:`!return` de la clause :"
"keyword:`!try`."
#: tutorial/errors.rst:420
#: tutorial/errors.rst:424
msgid "For example::"
msgstr "Par exemple ::"
#: tutorial/errors.rst:431
#: tutorial/errors.rst:435
msgid "A more complicated example::"
msgstr "Un exemple plus compliqué ::"
#: tutorial/errors.rst:456
#: tutorial/errors.rst:460
msgid ""
"As you can see, the :keyword:`finally` clause is executed in any event. "
"The :exc:`TypeError` raised by dividing two strings is not handled by the :"
@ -539,7 +551,7 @@ msgstr ""
"`except` et est donc propagée après que la clause :keyword:`!finally` a été "
"exécutée."
#: tutorial/errors.rst:461
#: tutorial/errors.rst:465
msgid ""
"In real world applications, the :keyword:`finally` clause is useful for "
"releasing external resources (such as files or network connections), "
@ -549,11 +561,11 @@ msgstr ""
"utile pour libérer des ressources externes (telles que des fichiers ou des "
"connexions réseau), quelle qu'ait été l'utilisation de ces ressources."
#: tutorial/errors.rst:469
#: tutorial/errors.rst:473
msgid "Predefined Clean-up Actions"
msgstr "Actions de nettoyage prédéfinies"
#: tutorial/errors.rst:471
#: tutorial/errors.rst:475
msgid ""
"Some objects define standard clean-up actions to be undertaken when the "
"object is no longer needed, regardless of whether or not the operation using "
@ -565,7 +577,7 @@ msgstr ""
"que l'opération ayant utilisé l'objet ait réussi ou non. Regardez l'exemple "
"suivant, qui tente d'ouvrir un fichier et d'afficher son contenu à l'écran ::"
#: tutorial/errors.rst:479
#: tutorial/errors.rst:483
msgid ""
"The problem with this code is that it leaves the file open for an "
"indeterminate amount of time after this part of the code has finished "
@ -581,7 +593,7 @@ msgstr ""
"objets comme des fichiers d'une façon qui assure qu'ils seront toujours "
"nettoyés rapidement et correctement. ::"
#: tutorial/errors.rst:489
#: tutorial/errors.rst:493
msgid ""
"After the statement is executed, the file *f* is always closed, even if a "
"problem was encountered while processing the lines. Objects which, like "

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-17 16:05+0100\n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"PO-Revision-Date: 2020-12-23 19:23+0100\n"
"Last-Translator: Jules Lasne <jules.lasne@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -657,7 +657,7 @@ msgstr ""
"Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en "
"tapant simplement ::"
#: tutorial/inputoutput.rst:486
#: tutorial/inputoutput.rst:487
msgid ""
"Another variant of the :func:`~json.dumps` function, called :func:`~json."
"dump`, simply serializes the object to a :term:`text file`. So if ``f`` is "
@ -668,7 +668,7 @@ msgstr ""
"file>`. Donc si ``f`` est un :term:`fichier texte <text file>` ouvert en "
"écriture, il est possible de faire ::"
#: tutorial/inputoutput.rst:492
#: tutorial/inputoutput.rst:493
msgid ""
"To decode the object again, if ``f`` is a :term:`text file` object which has "
"been opened for reading::"
@ -676,7 +676,7 @@ msgstr ""
"Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` "
"ouvert en lecture ::"
#: tutorial/inputoutput.rst:497
#: tutorial/inputoutput.rst:498
msgid ""
"This simple serialization technique can handle lists and dictionaries, but "
"serializing arbitrary class instances in JSON requires a bit of extra "
@ -688,11 +688,11 @@ msgstr ""
"plus de travail. La documentation du module :mod:`json` explique comment "
"faire."
#: tutorial/inputoutput.rst:503
#: tutorial/inputoutput.rst:504
msgid ":mod:`pickle` - the pickle module"
msgstr "Le module :mod:`pickle`"
#: tutorial/inputoutput.rst:505
#: tutorial/inputoutput.rst:506
msgid ""
"Contrary to :ref:`JSON <tut-json>`, *pickle* is a protocol which allows the "
"serialization of arbitrarily complex Python objects. As such, it is "

View file

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-24 09:01+0200\n"
"POT-Creation-Date: 2021-05-19 22:36+0200\n"
"PO-Revision-Date: 2019-12-12 15:21+0100\n"
"Last-Translator: Vincent Poulailleau <vpoulailleau@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
@ -171,12 +171,12 @@ msgid "Managing Packages with pip"
msgstr "Gestion des paquets avec *pip*"
#: tutorial/venv.rst:95
#, fuzzy
msgid ""
"You can install, upgrade, and remove packages using a program called :"
"program:`pip`. By default ``pip`` will install packages from the Python "
"Package Index, <https://pypi.org>. You can browse the Python Package Index "
"by going to it in your web browser, or you can use ``pip``'s limited search "
"feature:"
"by going to it in your web browser."
msgstr ""
"Vous pouvez installer, mettre à jour et supprimer des paquets en utilisant "
"un programme appelé :program:`pip`. Par défaut, ``pip`` installe les paquets "
@ -184,24 +184,25 @@ msgstr ""
"Package Index avec un navigateur ou utiliser la fonction de recherche "
"(assez) limitée de ``pip`` ::"
#: tutorial/venv.rst:111
#: tutorial/venv.rst:100
#, fuzzy
msgid ""
"``pip`` has a number of subcommands: \"search\", \"install\", \"uninstall\", "
"\"freeze\", etc. (Consult the :ref:`installing-index` guide for complete "
"documentation for ``pip``.)"
"``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\", "
"etc. (Consult the :ref:`installing-index` guide for complete documentation "
"for ``pip``.)"
msgstr ""
"``pip`` a plusieurs sous-commandes : ``search``, ``install``, ``uninstall``, "
"``freeze``, etc. Consultez le guide :ref:`installing-index` pour une "
"documentation exhaustive sur ``pip``."
#: tutorial/venv.rst:115
#: tutorial/venv.rst:104
msgid ""
"You can install the latest version of a package by specifying a package's "
"name:"
msgstr ""
"Vous pouvez installer la dernière version d'un paquet en indiquant son nom ::"
#: tutorial/venv.rst:126
#: tutorial/venv.rst:115
msgid ""
"You can also install a specific version of a package by giving the package "
"name followed by ``==`` and the version number:"
@ -209,7 +210,7 @@ msgstr ""
"Vous pouvez installer une version spécifique d'un paquet en donnant le nom "
"du paquet suivi de ``==`` et du numéro de version souhaitée ::"
#: tutorial/venv.rst:137
#: tutorial/venv.rst:126
msgid ""
"If you re-run this command, ``pip`` will notice that the requested version "
"is already installed and do nothing. You can supply a different version "
@ -221,7 +222,7 @@ msgstr ""
"différent pour récupérer cette version ou lancer ``pip install --upgrade`` "
"pour mettre à jour le paquet à la dernière version ::"
#: tutorial/venv.rst:152
#: tutorial/venv.rst:141
msgid ""
"``pip uninstall`` followed by one or more package names will remove the "
"packages from the virtual environment."
@ -229,18 +230,18 @@ msgstr ""
"``pip uninstall`` suivi d'un ou plusieurs noms de paquets les supprime de "
"votre environnement virtuel."
#: tutorial/venv.rst:155
#: tutorial/venv.rst:144
msgid "``pip show`` will display information about a particular package:"
msgstr "``pip show`` affiche des informations à propos d'un paquet précis :"
#: tutorial/venv.rst:172
#: tutorial/venv.rst:161
msgid ""
"``pip list`` will display all of the packages installed in the virtual "
"environment:"
msgstr ""
"``pip list`` liste tous les paquets installés dans l'environnement virtuel ::"
#: tutorial/venv.rst:184
#: tutorial/venv.rst:173
msgid ""
"``pip freeze`` will produce a similar list of the installed packages, but "
"the output uses the format that ``pip install`` expects. A common convention "
@ -250,7 +251,7 @@ msgstr ""
"l'affichage adopte un format que ``pip install`` peut lire. La convention "
"habituelle est de mettre cette liste dans un fichier ``requirements.txt`` :"
#: tutorial/venv.rst:196
#: tutorial/venv.rst:185
msgid ""
"The ``requirements.txt`` can then be committed to version control and "
"shipped as part of an application. Users can then install all the necessary "
@ -261,7 +262,7 @@ msgstr ""
"utilisateurs peuvent alors installer tous les paquets nécessaires à "
"l'application avec ``install -r`` :"
#: tutorial/venv.rst:213
#: tutorial/venv.rst:202
msgid ""
"``pip`` has many more options. Consult the :ref:`installing-index` guide "
"for complete documentation for ``pip``. When you've written a package and "